在 ElasticSearch 6.8 中,我索引了许多包含标签集合的文档。标签被映射为keyword
。
"tags": {
"type": "keyword"
},
这样做的时候
"query" : {
"bool" : {
"must" : { "match" : { "name" : "beach" } },
"filter" : {
"terms" : { "tags" : ["games", "cars"] }
}
}
}
我得到的文档至少包含这些标签之一。但是我想过滤掉所有不包含所有给定标签的文档。
我尝试过
"query" : {
"bool" : {
"must" : { "match" : { "name" : "beach" } },
"filter" : {
"terms" : {
"tags" : ["games", "cars"],
"minimum_should_match": 2
}
}
}
}
但是它会引发错误:"[terms] query does not support [minimum_should_match]"
哪种方法可以过滤掉不包含这两个标签的文档?请注意,实际查询也可能包含其他“ should”子句。