multi_match 的 minimum_should_match
Posted feng07
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了multi_match 的 minimum_should_match相关的知识,希望对你有一定的参考价值。
minimum_should_match 只能用在multi_match里
可以这样写:
"query": "multi_match": "query":"徐峥沈腾黄渤吃火锅", "fields":["title"], "minimum_should_match":4
表示命中4个词的文档才会返回
也可以这样写:
"query": "multi_match": "query":"徐峥沈腾黄渤吃火锅", "fields":["title"], "minimum_should_match":"80%"
这里的80%是指query的分词个数的80%
我们调一下分词接口,看结果:
"tokens": [ "token": "徐峥", "start_offset": 0, "end_offset": 2, "type": "CN_WORD", "position": 0 , "token": "沈腾", "start_offset": 2, "end_offset": 4, "type": "CN_WORD", "position": 1 , "token": "黄渤", "start_offset": 4, "end_offset": 6, "type": "CN_WORD", "position": 2 , "token": "吃火锅", "start_offset": 6, "end_offset": 9, "type": "CN_WORD", "position": 3 ]
query被分成了4个词,所以minimum_should_match:"80%" 在这里等于 minimum_should_match:4*0.8。
还要注意下,这里的小数值会向下取整,也就是命中3个词的就会返回。
以上是关于multi_match 的 minimum_should_match的主要内容,如果未能解决你的问题,请参考以下文章
嵌套:QueryParsingException[[multi_match] 查询不支持 [fields]];