Полнотекстовый поиск с помощью Rails - PullRequest
28 голосов
/ 15 июля 2009

Я искал плагины / гемы для Rails. В большинстве статей Ферре (Lucene) сравнивается с Ультрасфинксом или, возможно, Сфинксом с мыслями, но ни одна из них не говорит о SearchLogic . У кого-нибудь есть какие-либо подсказки относительно того, как это сравнивается? Что вы используете и как это работает?

Ответы [ 7 ]

27 голосов
/ 17 июля 2009
  • think_sphinx и sphinx работают прекрасно, никаких проблем с индексацией, запросом, установкой (5 или 6 установок, включая рабочий slicehost)

  • почему не все используют сфинкса, как, скажем, Craigslist? читайте здесь о его ограничениях (полтора года тому назад. Над этим работает разработчик сфинксов Аксёнофф, который внедряет функции, надежность и исправляет ошибки в удивительном темпе)

http://codemonkey.ravelry.com/2008/01/09/sphinx-for-search/

http://www.ibm.com/developerworks/opensource/library/os-php-apachesolr/

Сравнение полнотекстового поискового движка - Lucene, Sphinx, Postgresql, MySQL?

  • хорька: легкая установка, неправильно запускается, очень медленная индексация (одна база данных mysql: sphinx: 3 секунды, хорька: 50 минут). Хорошо задокументированные проблемы (повреждение индекса) на серверах drb в рабочей среде под нагрузкой. Сказав это, я использую его в develometn, так как act-as_ferret вышел 3 года назад, и он мне хорошо послужил. Несоблюдение правил портера является преимуществом в некоторых контекстах.

  • Lucene and Solr - чемпион по поиску горилл / маков / тяжеловесов с открытым исходным кодом. В выпуске Solr 14 команды реализовали впечатляющее количество новых функций:

  • действует как солр: работает хорошо, когда кот или причал на месте, но иногда это боль. Вилка A-A-S от mattmatt является основной вилкой, но проект относительно не поддерживается.

  • При установке tomcat: у SOLR / lucene, несомненно, лучшая база знаний / поисковая система поддержки среди всех программ, которые я когда-либо видел (я не удивлен), поле поиска здесь:

http://www.lucidimagination.com/

  • Sunspot - новая оболочка ruby, основанная на solr-ruby. Выглядит многообещающе, но я не смог заставить его установить на OSX. Индексирует все объекты ruby, а не только базы данных через AR

  • Одна вещь, которая действительно поучительна, это установить 2 поисковых плагина, например, sphinx и SOLR, sphinx и ferret, и посмотрите, какие разные результаты они возвращают. Это так же просто, как @sphinx_results - @ferret_results


только что видел этот пост и ответы

http://zooie.wordpress.com/2009/07/06/a-comparison-of-open-source-search-engines-and-indexing-twitter/

http://www.jroller.com/otis/entry/open_source_search_engine_benchmark

http://www.flax.co.uk/blog/2009/07/07/xapian-compared/

18 голосов
/ 16 июля 2009

Прежде всего, мой очевидный уклон: я создал и поддерживаю Думающего Сфинкса.

Когда это произошло, я на самом деле видел, как Бен Джонсон (создатель SearchLogic), присутствовавший на рубине Нью-Йорка, встретился об этом вчера вечером. SearchLogic предназначен только для SQL - поэтому, если вы не имеете дело с массивными таблицами и ранжирование по релевантности не требуется, тогда это может быть именно то, что вы ищете. Синтаксис тоже довольно чистый.

Однако, если вы хотите, чтобы весь анализ запросов обрабатывался не вашим собственным кодом, то Sphinx или Solr (я думаю, что Lucene под капотом), вероятно, будут работать лучше.

5 голосов
/ 15 июля 2009

SearchLogic - хороший плагин, но он действительно предназначен для того, чтобы сделать ваш код поиска более читабельным, он не обеспечивает автоматическую индексацию, как это делает Sphinx. Я не использовал Ферре, но Сфинкс невероятно силен.

http://railscasts.com/episodes/120-thinking-sphinx

Отличное введение, чтобы увидеть, насколько он гибок.

3 голосов
/ 06 августа 2011

Учитывая, что этот вопрос по-прежнему высоко ценится в Google для полнотекстового поиска, я действительно хотел бы сказать, что Sunspot сегодня еще сильнее, если вы заинтересованы в добавлении возможностей полнотекстового поиска в свои Rails. приложение (и хотел бы иметь Solr позади вас для этого). Вы можете проверить полное руководство по этому здесь .

И в то время как мы находимся в этом, другой претендент, который прибыл в область, является ElasticSearch , который стремится быть механизмом полнотекстового поиска в реальном времени, построенным поверх Lucene (но делающим вещи иначе по сравнению с Solr). ElasticSearch включает в себя готовый шардинг и репликацию на несколько узлов, более быстрый поиск в реальном времени, «перколяторы», позволяющие вам получать уведомления, когда что-то, что соответствует вашим критериям, становится доступным, и оно движется очень быстро с множеством других функций. С его помощью легко что-то построить, поскольку API очень прост и полностью основан на REST с использованием JSON в качестве формата. Можно сказать, что вам даже не нужен плагин для его использования.

3 голосов
/ 15 июля 2009

Я не использовал SearchLogic, но могу сказать, что Lucene - очень зрелый проект, который реализован на многих языках. Он быстрый и гибкий, а с API приятно работать. Это хорошая ставка.

1 голос
/ 16 июля 2009

Лично я не беспокоюсь об агностике баз данных для веб-приложений и очень доволен, используя полнотекстовый поиск в pg83. Преимущество в том случае, если и когда вы измените свой каркас / язык, у вас все равно будет полнотекстовый поиск.

0 голосов
/ 19 июля 2013

Для тех, кто ищет простой поисковый гем без каких-либо зависимостей, ознакомьтесь с acts_as_indexed

...