match query
会对查询的语句进行分词处理。得到一个个词项,
只要任何一个词项与该文档匹配,那么该文档就会被返回。
eg:
首先查看下分词结果:
再看查询结果,为了方便查看结果,这里用了_source
进行过滤
默认情况下,各个词项之间是 OR 的关系,如果想要修改,也可以修改为 AND
match_phrase query
类似上面的 match query,不同点在于:
1. 分词后的词项顺序需要和文档中的词项一致
2. 所有的词项都必须出现在文档中
关于顺序,测试如下:
其中的 slop 是指关键字之间的最小距离,表现在 分词后各个词项之间的 position 的差值
查询短语分词之后的 position 之间的间隔要满足 slop 的要求
match_phrase_prefix query
类似 match_phrase query 但是多了一个通配符
优点是:支持最后一个词项的前缀匹配
缺点是:通配符号的匹配耗性能,效率较低。
multi_match query
match 查询的升级版,指定多个查询的域
在不确定关键字的位置时使用
eg:
这种查询方式还可以指定字段的权重