12 基于multi_match + best fields语法实现dis_max+tie_breaker
示例:
GET /forum/article/_search { "query": { "dis_max": { "queries": [ { "match": { "title": { "query": "java beginner", "minimum_should_match": "50%", "boost": 2 } } }, { "match": { "content": { "query": "java beginner", "minimum_should_match": "50%" } } } ], "tie_breaker": 0.3 } } }
简化:
GET /forum/_search { "query": { "multi_match": { "query": "java beginner", "type":"best_fields", "fields": [ "title^2", "content" ], "tie_breaker": 0.3, "minimum_should_match": "50%" } } }
minimum_should_match的主要用途 : 去长尾,long tail
长尾是什么呢,举个例子:假设搜索5个关键词,但是很多结果是只匹配1个关键词的,其实跟你想要的结果相差甚远,这些结果就是长尾
minimum_should_match,控制搜索结果的精准度,只有匹配一定数量的关键词的数据,才能返回
立志如山 静心求实
浙公网安备 33010602011771号