Term query does not support array of values - Как решить это исключение Elasticsearch

Запрос термина возвращает документы, содержащие точный термин в указанном поле. Вы не можете использовать запрос термина для поиска в массиве значений полей.

Если вы хотите найти несколько значений, используйте запрос терминов вместо запроса терминов.

Как воспроизвести это исключение

Сопоставление индексов:

Сначала создадим индекс со следующим отображением, который содержит одно поле "name" типа keyword.

Индексируйте данные:

Затем мы проиндексируем некоторые примеры данных в только что созданном индексе.

Поисковый запрос:

Теперь попробуем найти несколько значений, используя приведенный ниже запрос:

Результат поиска:

При этом Elasticsearch выдаст ошибку о том, что запрос термина не поддерживает массив значений.

Как исправить это исключение

Если вы хотите искать несколько значений, используйте запрос терминов.

Используйте запрос терминов:

Контекст журнала

Лог "[term] query does not support array of values" имя класса TermQueryBuilder.java. Мы извлекли следующее из исходного кода Elasticsearch для тех, кто ищет более подробный контекст:

 

Понравилась статья? Поделиться с друзьями:
Добавить комментарий