Булевый поиск в Elasticsearch работает на основе четырёх логических условий: 2
- filter. 2 Используется для сокращения набора данных: документ либо подходит под фильтр, либо исключается им. 2 Фильтры можно применять для сокращения наборов данных по конкретной дате или диапазону дат, определённому месту или другим точным совпадениям. 2 Фильтры автоматически хранятся в кэше Elasticsearch, и при следующем запуске того же фильтра результаты мгновенно подтягиваются из кэша. 2
- must. 2 Указывает Elasticsearch, что в совпадении документов должны присутствовать все запросы, которые попадают под условие must. 2 Если запросов больше одного, то все они должны совпасть. 2
- mustnot. 2 Это противоположность условия must: Elasticsearch не может включать в совпадении документов ни один из запросов, которые попадают под условие mustnot. 2
- should. 2 В идеале совпадающие документы должны включать все запросы в условии should, но это не обязательно. 2 Чем больше запросов должно, тем выше итоговая оценка для документа. 2 По умолчанию любое совпадение должно содержать хотя бы один из запросов should, это минимальное значение можно изменить с помощью параметра minimumshouldmatch. 2
Булевый запрос позволяет комбинировать несколько поисковых запросов с логикой для сужения или расширения результатов поиска. 5