ElasticSearch: эквивалентный оператор в ElasticSearch
Я пытаюсь найти запрос ElasticSearch, эквивалентный IN\NOT в SQL.
Я знаю, что мы можем использовать QueryString запрос с несколькими OR, чтобы получить тот же ответ, но это заканчивается множеством OR.
Может ли кто-нибудь поделиться примером?
Ответ 1
Подобно тому, что Крис предложил в качестве комментария, аналогичной заменой для IN является terms filter (запросы подразумевают подсчет очков, что может улучшить возвращенный заказ).
Важным выводом является то, что фильтр terms (и запрос на этот счет) работает с точными совпадениями. Это неявно операция or, аналогичная IN.
Если вы хотите инвертировать его, вы можете использовать фильтр not, но я бы предложил использовать немного более подробный bool/must_not фильтр (чтобы привыкнуть также использовать bool/must и bool).