13.multi_match实现dis_max+tie_breaker

主要知识点:

  • 基于multi_match语法实现dis_max+tie_breaker

   

1best_fields+tie_breaker

GET /forum/article/_search

{

"query": {

"multi_match": {

"query": "java solution",

"type":"best_fields",

"fields":[ "title^2", "content" ],

"tie_breaker": 0.3,

"minimum_should_match": "50%"

}

}

}

   

"fields":[ "title^2", "content" ],title的权重设为2

   

二、multi_match实现dis_max+tie_breaker

GET /forum/article/_search

{

"query": {

"dis_max": {

"tie_breaker": 0.7,

"queries": [{"match": {"title":

{"query": "java beginer","boost":2,"minimum_should_match": "50%"}}},

{"match": {"content":

{"query": "java beginer","boost":1,"minimum_should_match": "30%"}}}

]

}

}

}

minimum_should_match,主要是用来去长尾(long tail),什么是长尾?,比如你搜索5个关键词,但是很多结果是只匹配1个关键词的,其实跟你想要的结果相差甚远,这些结果就是长尾。

minimum_should_match,控制搜索结果的精准度,只有匹配一定数量的关键词的数据,才能返回。

原文地址:https://www.cnblogs.com/liuqianli/p/8485343.html