Я бы порекомендовал act_as_ferret, поскольку я использую его для проекта Scrumpad на работе. Индексация может выполняться как отдельный процесс, который гарантирует, что при повторной индексации мы все еще можем использовать наше приложение. Это может сократить время простоя сайта. Также поиск намного быстрее. Вы можете выполнять поиск по нескольким моделям одновременно, и ваши результаты сортируются по полям, которые вы предпочитаете.

ел бы сделать полнотекстовый поиск данных в моем приложении Ruby on Rails. Какие варианты существуют?

Ответы на вопрос(7)

Решение Вопроса

и у каждого есть свои сильные и слабые стороны. Если вы хотите добавить полнотекстовый поиск, было бы целесообразно немного изучить каждый из них и попробовать их, чтобы увидеть, насколько хорошо он работает для вас в вашей среде.

MySQL имеет встроенную поддержку полнотекстового поиска. Он имеет онлайн-поддержку, что означает, что при добавлении новых записей в базу данных они автоматически индексируются и будут доступны в результатах поиска.документация имеет больше деталей.

acts_as_tsearch предлагает обертку для аналогичных встроенных функций для последних версийPostgreSQL

Для других баз данных вам придется использовать другое программное обеспечение.

Lucene популярный поисковый сервис, написанный на Java. Вы можете использовать Lucene через его поисковый серверSolr с использованием Railsacts_as_solr.

Если вы не хотите использовать Java, есть порт Lucene для Ruby, который называетсяхорек, Поддержка Rails добавлена ​​с помощьюacts_as_ferret плагин.

Xapian это еще один хороший вариант и поддерживается в Rails с использованиемacts_as_xapian плагин.

Наконец, мой предпочтительный выборсфинкс с помощьюUltrasphinx плагин. Это очень быстро и имеет много возможностей для индексирования и поиска в ваших базах данных, но больше не поддерживается активно.

Еще один плагин для СфинксаДумающий Сфинкс который имеет много положительногоОбратная связь, Немного проще начать использовать Thinking Sphinx, чем Ultrasphinx. Я бы посоветовал изучить оба плагина, чтобы определить, какой из них лучше подходит для вашего проекта.

Ultra Sphinx больше не поддерживается. Думающий сфинкс - его замена. Хотя в настоящее время в нем отсутствуют некоторые функции, такие как выдержка, которую имел Ultra sphinx, он компенсирует это другими функциями.

список различных вариантов поиска Ruby on Rails в этом другом вопросе, Я не уверен, как или если объединить наши вопросы.

 sock17 сент. 2008 г., 18:52
Это более полный список, но в нем отсутствуют некоторые подробности о сильных и слабых сторонах каждого из них; этот вопрос также. Я хотел бы видеть список каждого плагина с информацией о его сильных и слабых сторонах, а также ссылки на документацию и учебные пособия.

поскольку я использую его для проекта Scrumpad на работе. Индексация может выполняться как отдельный процесс, который гарантирует, что при повторной индексации мы все еще можем использовать наше приложение. Это может сократить время простоя сайта. Также поиск намного быстрее. Вы можете выполнять поиск по нескольким моделям одновременно, и ваши результаты сортируются по полям, которые вы предпочитаете.

нтегрируется с Rails, используя mixin act_as_ferret. Взгляни на "Как интегрировать хорька с рельсами". Альтернативасфинкс.

скринкаст об использовании плагина Thinking Sphinx для создания решения для полнотекстового поиска.

какую базу данных вы используете. Я бы порекомендовал использовать Solr, поскольку он предлагает много хороших вариантов. Недостатком является то, что вы должны запустить отдельный процесс для него. Я также использовал Ferret, но обнаружил, что он менее стабилен с точки зрения многопоточного доступа к индексу. Я не пробовал Sphinx, потому что он работает только с MySQL и Postgres.

Ваш ответ на вопрос