@Oleg-Ukraine

Точное совпадение фразы ElasticSearch?

Как в ElasticSearch найти документы, в которых присутствует нужное поле и точно совпадает с поисковым значением(не длиннее не короче).

match, match_phrase - похожи на like в разной его вариации.
terms (по крайней мере из коробки) не обрабатывает поля с разделиталями типа (-) и есть проблемы с поиском в camelcase, возможно это можно как-то обойти, если да, то буду признателен консультацию.
  • Вопрос задан
  • 4897 просмотров
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
У еластика есть набор фильтров в анализаторе, привязанный в мапинге, которые разделяют слова на термы и их преобразуют к какому-то одному виду. Например, из слова "IBM-xStation" делают два терма "ibm" и "xstation". И если вы ищете по термам, то нужно учитывать то, как сами слова разбиты на них.
Если же вас не устраивает стандартное термообразование, то его всегда можно поменять, например отменив приведение к нижнему регистру и считая тире частью слова.

В общем, кидейте сюда свой мапинг, и то, что хотите получить в результате, будем посмотреть.

Ну и самому почитать - https://www.elastic.co/guide/en/elasticsearch/refe...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
un1t
@un1t
Нужно настрить маппинг для данного поля указав analyzer=keyword, а потом фильтровать через term.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы