Задача сделать поиск с запросом из двух одинаковых слов не равносильным поиску из одного.
То есть, если ищу пор-пор найти клен-клен, а не клен-дуб .
Управлять этим можно с помощью анализаторов и с помощью запросов.
Анализаторами мне это видится сложнее, есть ли комбинация запросов которая будет искать в документе два одинаковых слова, а не одно?
Или есть ли анализатор, которые индексировал клен-клен как {клен-клен, клен клен}, тогда мне не надо менять search анализатор.
Ага. Спасибо за подробный ответ, я посмотрела и вот не получается, чтобы на запрос клен был и клен-дуб и клен дуб и все где токен клен мог бы быть. Хочу не сужать выдачу , но если пользователь написал правильно через дефис - как оригинальное название, то выдаем только полное совпадение, если написал через пробел, то все, где слова по отдельности.
То есть, может быть в эластик просто добавить функцию, которая с неанализированными полями\токенами работает в первую очередь, атолько если в них нет ответа смотрит в анализированных? Реализовать можно и просто двумя запросами конечно...
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.