Плагин Ruby on Rails act_as_ferret сильно глючит?
-
09-09-2019 - |
Вопрос
Я выполняю очень простой поиск в своей БД, используя act_as_ferret.Я поместил это в свою модель «Место проведения»:
acts_as_ferret :fields => [:name, :city]
И это в моем действии поиска контроллера:
@t = Venue.find_by_contents(params[:search]+'~')
а затем я просто визуализирую результаты.
render :text => @t.to_json, :success => true, :status => :ok
Если я проведу быстрый тест:
http://localhost:3000/venue/list?search=The
В своем журнале я вижу, что к индексу выполняется правильный запрос «The~».Однако я не получаю никаких результатов.У меня определенно есть несколько «Площадок» со словом «The» в поле названия.
Поскольку это очень простой поиск и довольно часто используется act_as_ferret, я попытался перестроить индекс, чтобы проверить, не поврежден ли он....никаких шансов
Есть идеи?
Спасибо!
Решение
Да, Ferret был очень известен своими повреждениями индексов.
Я рекомендую переключиться на другой поисковый плагин, например Думающий Сфинкс.Ты можешь посмотри Railscast об этом чтобы узнать больше.
Другие советы
Я думаю, проблема может заключаться в том, что «the» определяется как стоп-слово — чрезвычайно распространенное слово, которое не индексируется, потому что оно просто возвращает каждый документ.Вы можете настроить список стоп-слов.
Я бы рассмотрел возможность использования Solr, если у вас проблемы с Ferret.