在bool
查询中,我尝试匹配匹配field1
或{field2, field3, field4}
中任意两个的文档。我知道我可以使用minimum_should_match: 2
达到第二个条件但是如何确保should
的{{1}}子句被排除在minimum_should_match之外?
答案 0 :(得分:0)
您可以将查询重写为包含两个查询的bool:
field1的匹配查询
包含必须部分中字段2,3和4的多重匹配的bool查询,以及不包括field1的must_not。
以下是一个例子:
GET test/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"field1": "value"
}
},
{
"bool": {
"must": [
{
"multi_match": {
"query": "value",
"fields": [
"field2",
"field3",
"field4"
]
}
}
],
"must_not": [
{
"match": {
"field1": "value"
}
}
]
}
}
]
}
}
}