2010-10-26 6 views
4

Я собираюсь создать возможности поиска в своем приложении. Я хочу, чтобы поиск имел возможность охватывать несколько моделей.rails - Search Controller

Я думаю о добавлении контроллера поиска, которые затем решить, какие модели для поиска на основе параметров и т.д ...

Что вы думаете? Правильно ли работает контроллер поиска или есть что-то открытое, о котором я должен думать?

Благодаря

ответ

2

Я бы сказал избежать прокатки свой собственный поиск «двигатель», если у вас есть очень специфические потребности, которые не могут быть удовлетворены чем-то вроде Sphinx (также прочитать this)

+1

Спасибо. Я никогда не слышал о Сфинксе, звучит потрясающе. К сожалению, Хероку не поддерживает Сфинкса. Должен быть метод, чтобы заставить вас платить за свои поисковые службы $$$. – AnApprentice

+1

Вы также можете найти это полезным: http://stackoverflow.com/questions/2166378/are-there-other-search-options-for-heroku – Zabba

4

У вас есть несколько вариантов для поиска в рубинового мире как

  1. Sphinx
  2. Ферре
  3. Solr
  4. Endeca

Проходя документацию Heroku, Heroku предлагает с Solr, который является удивительной поисковой системой. http://docs.heroku.com/websolr и http://docs.heroku.com/full-text-search Подробнее об этом подробнее. Мы выбрали solr для поиска в одном из наших проектов, и мы использовали sunspot_rails, который прекрасно интегрируется с вашими моделями и переиндексируется при изменении вашего контента. Мы использовали драгоценный камень sunspot_rails от http://github.com/outoftime/sunspot, который также рекомендуется героку.

Предостережение состоит в том, что файловая система heroku является только для чтения и не позволяет запускать произвольные процессы, поэтому вам нужно выбрать один из них, например websolr (начиная с 20 $ в месяц), или создать свой собственный экземпляр ecazon ec2 и выполнить индексирование там. Так как геройку также работает на amazon ec2, латентность очень меньше.

Возвращаясь к альтернативам, Феррет, как известно, часто приводит к сбою/повреждению индексов. Сфинкс не поддерживается героикой. Endeca чертовски дороже, вы должны потратить большую часть своего бюджета, даже чтобы получить базовые результаты.