Плагин ruby ​​on rails, act_as_ferret, очень глючный? - PullRequest
0 голосов
/ 14 апреля 2009

Я делаю очень простой поиск в моей БД, используя 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

В своем журнале я вижу, что по индексу выполняется правильный запрос "~". Однако я не получаю результатов. У меня определенно есть несколько «Venues» со словом «The» в поле имени.

Так как это очень простой поиск, а act_as_ferret используется довольно редко, я попытался пересоздать индекс, чтобы увидеть, не был ли он поврежден ...

Есть идеи?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 14 апреля 2009

Да, Феррет был очень хорошо известен как искажающий индексы.

Я рекомендую переключиться на другой поисковый плагин, например Thinking Sphinx . Вы можете посмотреть Railscast об этом , чтобы узнать больше.

1 голос
/ 02 декабря 2009

Я думаю, что проблема может заключаться в том, что "the" определяется как стоп-слово - чрезвычайно распространенное слово, которое не индексируется, поскольку оно просто возвращает каждый документ. Вы можете настроить свой список стоп-слов.

Я бы посоветовал использовать Solr, если у вас проблемы с Ferret.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...