Фильтр OpenSearch - как фильтровать результаты запросов, с примерами

Фильтр в OpenSearch - это применение некоторых условий внутри запроса, которые используются для сужения набора совпадающих результатов.

Для чего он используется?

При выполнении запроса OpenSearch по умолчанию вычисляет балл релевантности совпадающих документов. Однако в некоторых случаях вычисление баллов не требуется, например, если документ попадает в диапазон двух заданных временных меток. Для всех этих критериев "Да/Нет" используется условие фильтрации.

Примеры

Вернуть все результаты по заданному индексу, которые попадают в диапазон дат:

Примечания

  • Запросы используются для определения степени релевантности документа определенному запросу путем вычисления оценки для каждого документа, в то время как фильтры используются для соответствия определенным критериям и кэшируются для более быстрого выполнения.
  • Фильтры не участвуют в подсчете баллов и поэтому выполняются быстрее.

Общие проблемы

  • Наиболее распространенной проблемой, связанной с фильтрами, является их неправильное использование внутри запроса. При неправильном использовании фильтров производительность запроса может значительно снизиться. Поэтому фильтры должны использоваться везде, где есть возможность не вычислять оценку.
  • Другая проблема часто возникает при использовании фильтров диапазона дат, если для обозначения текущего времени используется "now". Следует отметить, что "сейчас" постоянно меняет временную метку, и поэтому OpenSearch не может использовать кэширование ответа, так как набор данных будет постоянно меняться.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий