Ранее я реализовал поиск при вводе с использованием префиксного запроса, но затем возникло много проблем из-за полей в моем индексе: -
Предположим, мое индексное имя jaipur
и содержит поле title
, которое анализируется на основе языкового анализатора.
Так что, если индекс предназначен для english
языка, то слова со стеблем ниже будут храниться как ниже
original word stemmed form
nutritional nutrit
suggestions suggest
recommendation recommend
Теперь, используя префиксный запрос, когда я ищу до nutrit
или suggest
, он дает мне результат, но как только набирает следующий символ после основанной формы
как nutriti
или suggestio
мои результаты исчезают, так как эти токены отсутствуют в моем инвертированном индексе, а запросы префиксов не анализируются.
Я прочитал много документации по эластичному поиску, и кажется, что Индекс времени решения
решит мою проблему, но недостатком является то, что она требует повторной индексации целых данных, и у меня в индексе более миллиарда документов, мы хотели избежать повторной индексации, что также было одной из причин, по которым мы ранее решение на основе выбранного префикса .
Кто-нибудь может подсказать, есть ли альтернативы? Дайте мне знать, если потребуется дополнительная информация.
Примечание: - Я использую версию ES 1.7.4.