ElasticSearch фильтр по нескольким ключевым словам - PullRequest
0 голосов
/ 01 июля 2019

В 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]"

Какой будет правильный способ отфильтровать документы, которые не содержат эти два тега?Обратите внимание, что реальный запрос может содержать и другие предложения «следует».

...