minimum_should_match作用
我们先来看一个查询1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27GET 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":"30%"
}
}
}
],
"tie_breaker": 0.3
}
}
}
上面这个查询就是查询了title或者content中包含java beginner的内容,用了dis_max+tie_breaker查询,而且查询title的权重是2,还有一个搜索参数是 “minimum_should_match”,那么这个关键字是做什么用的呢
minimum_should_match: 去长尾,比如你搜素5个关键词,但是很多结果是只匹配一个关键词的,其实跟你想要的结果相差甚远,这些结果就是长尾
minimum_should_match,可以控制搜索结果的精准度,只有匹配一定数量的关键词数据,才能返回
multi_match语法
1 | GET /forum/article/_search |
type: 默认就是best_fields查询
title^2: 代表title的权重是2, 相当于上面的”boost”:2