Я работаю над Elastic Search с рельсами. Ожидаемая особенность приложения состоит в том, чтобы перечислить, что другие пользователи набрали, когда пользователь начинает печатать с подобными словами (или алфавитом)
Допустим, у меня есть документ Active Record со столбцом с именем "content".
У меня много документов с содержимым, содержащим фразу «stackoverflow nice».
Когда пользователь начинает вводить "s", я хочу, чтобы область под текстовой областью была заполнена списками предложений или фраз, которые вводили люди.
Моя текущая конфигурация
class Document < ActiveRecord::Base
searchkick word_start: [:content]
end
И у меня есть несколько документов, у которых в столбце есть «stackoverflow nice» с другими группами слов.
Если я буду искать по приведенной ниже строке кода,
courses = Course.search "sta", fields: [:content], match: :word_middle
тогда я получу ожидаемый результат "курсов", которые содержат 'stackoverflow nice'.
Но некоторые пользователи могли набирать stackoverflow, другие - хороший stackoverflow.
По сути, мне бы хотелось, чтобы перечислять stackoverflow и stackoverflow хорошо, когда пользователь печатает, так как это сделали другие пользователи. То, что просто поразило меня, - это сохранить все ключевые слова в другой таблице базы данных и извлекать подобные записи при вводе пользователем, но я думаю, что есть лучший способ сделать это в сервисе ElasticSearch!
Пожалуйста, помогите мне!