Здравствуйте, уже несколько дней мучаюсь над реализацией автодополнения.
К примеру у нас есть документ с title: "маша ходила за зайцем и искала помидор".
Я пытаюсь сделать так чтоб пользователь мог найти этот документ по таким запросам:
"маша искала помидор"
"муша помидыр искала"
"зайцем"
и тд
Пробовал разные вариации Suggests, и не как не получаеться добиться ожидаемого результата.
С последнего использовал completion suggester, но получилось искать только последовательно, (мжша ходила...) если пробовать "муша зайцем" - уже не находит документ.
Просьба направить меня в нужное русло. Документацию по suggesters прочитал несколько раз, но из-за слабого владения языком, видимо, утерял некоторые особенности, которе помогли бы мне в моей задачей
Забыл в самом сообщении написать, что это будет живой поиск. Юзер вводит текст, аяксом идут запросы на эластик. Пользователь сразу видит подсказки, основанные на самом тексте. (хороший пример - поисковые системы, которые предугадывают чуть ли не целые предложения по первым символам)
Каждая подсказка, это документ. По нажатию на подсказку, я беру _id документа и использую его в другом поиске.
На сколько я понял, обычный поиск не сильно годиться для этого, лучше использовать suggests.
п.с. только начал изучать эластик, и пытаюсь сделать все максимально правильно
Обычный поиск годится для того, что вы хотите добится, он просто не оптимизирован для работы в живом поиске. Suggester - оптимизирован (из него убраны все дополнительные функции, которые присутствуют в поиске) но он не предоставляет нужные вам функции.
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.