无法找到minimum_should_match文档中的默认值
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html
是0或者1,或者取决于查询是否只是should或filter上下文?
Nik*_*iev 24
默认值minimum_should_match取决于查询和上下文:
1:在查询上下文中并且should是单独的(否must或filter)1:在过滤器上下文中(例如filter,在bool查询的一部分内)0:在查询上下文中,有filter和bool(或0和must)可以在should查询的文档中找到:
如果bool查询在查询上下文中并且具有must或filter子句,则文档将匹配bool查询,即使这些查询都不匹配.在这种情况下,这些条款仅用于影响分数.如果bool查询是过滤器上下文或既没有必须或过滤,那么至少有一个should查询必须匹配文档才能匹配bool查询.可以通过设置minimum_should_match参数显式控制此行为.
查询上下文并且filter是孤立的:
POST _search
{
"query": {
"bool" : {
"should" : [
{ "term" : { "tag" : "wow" } },
{ "term" : { "tag" : "elasticsearch" } }
]
# default:
# "minimum_should_match" : 1
}
}
}
Run Code Online (Sandbox Code Playgroud)
查询上下文并should与bool:
POST _search
{
"query": {
"bool" : {
"must" : {
"term" : { "user" : "kimchy" }
},
"should" : [
{ "term" : { "tag" : "wow" } },
{ "term" : { "tag" : "elasticsearch" } }
]
# default:
# "minimum_should_match" : 0
}
}
}
Run Code Online (Sandbox Code Playgroud)
过滤上下文:
POST _search
{
"query": {
"bool": {
"filter": {
"bool": {
"must": {
"term" : { "user" : "kimchy" }
},
"should": [
{ "term" : { "tag" : "wow" } },
{ "term" : { "tag" : "elasticsearch" } }
]
# default (until ES 6.7):
# "minimum_should_match" : 1
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3685 次 |
| 最近记录: |