В 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]"
Какой будет правильный способ отфильтровать документы, которые не содержат эти два тега?Обратите внимание, что реальный запрос может содержать и другие предложения «следует».