Elasticsearch 7的text类型字段是否支持整句检索?
Elasticsearch text类型字段整句检索答疑
text类型字段不仅支持单个分词检索,也支持完整句子检索,只要满足查询匹配规则即可命中结果。
核心原理说明
text类型字段的读写都会经过配置的分词器处理,以默认标准分析器为例:
- 写入文档时,内容
my name is aditya会被拆解为my、name、is、aditya四个小写token,存入倒排索引 - 检索时,输入的查询内容也会用相同的分析器处理,再和倒排索引中的token做匹配
不同查询方式的整句匹配效果
- 普通
match查询:只要查询句子拆解出的token有任意一个和文档匹配就会命中,整句完全匹配的文档会获得更高的相关性得分,排在结果前列 match_phrase短语查询:要求查询句子拆解出的token必须按顺序连续出现在文档的分词结果中,仅会命中完全符合语序的文档,可实现近似keyword的整句匹配效果,同时保留text类型的大小写不敏感、忽略标点等特性
注意:和keyword类型的整句完全匹配不同,text类型的整句检索不受大小写、多余空格影响。比如查询
My Name Is Aditya也可以命中内容为my name is aditya的text字段文档,但keyword类型会因为大小写不一致匹配失败。
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

