Доступно несколько вариантов, каждый из которых имеет свои сильные и слабые стороны. Если вы хотите добавить полнотекстовый поиск, было бы целесообразно немного изучить каждый из них и попробовать их, чтобы увидеть, насколько хорошо он работает для вас в вашей среде.
MySQL имеет встроенную поддержку полнотекстового поиска. Он имеет онлайн-поддержку, что означает, что при добавлении новых записей в базу данных они автоматически индексируются и будут доступны в результатах поиска. Документация содержит более подробную информацию.
acts_as_tsearch
предлагает оболочку для аналогичных встроенных функций для последних версий PostgreSQL
Для других баз данных вам придется использовать другое программное обеспечение.
Lucene - это популярный поисковый сервис, написанный на Java. Вы можете использовать Lucene через его поисковый сервер Solr с Rails, используя acts_as_solr
.
Если вы не хотите использовать Java, есть порт Lucene для Ruby с именем Ferret . Поддержка Rails добавлена с помощью плагина acts_as_ferret
.
Xapian - еще один хороший вариант, который поддерживается в Rails с использованием плагина acts_as_xapian
.
Наконец, мой предпочтительный выбор - Sphinx с использованием плагина Ultrasphinx . Он очень быстрый и имеет много опций для индексирования и поиска в ваших базах данных, но больше не поддерживается.
Еще один плагин для Sphinx - это Thinking Sphinx , который имеет много положительных отзывов . Немного проще начать использовать Thinking Sphinx, чем Ultrasphinx. Я бы посоветовал изучить оба плагина, чтобы определить, какой из них лучше подходит для вашего проекта.