Полный поиск текста с помощью Rails
Я искал поиск плагинов/драгоценных камней для Rails. Большинство статей сравнивают Ferret (Lucene) с Ultrasphinx или, возможно, с мышлением Sphinx, но никто не говорит о SearchLogic. Кто-нибудь знает, как это сравнивается? Что вы используете и как оно работает?
Ответы
Ответ 1
-
thinking_sphinx и sphinx работают красиво, без индексирования, запроса, установки проблем когда-либо (установка 5 или 6, включая создание slicehost)
-
Почему не все используют sphinx, например, Craigslist? читайте здесь о своих ограничениях (год и пол старых статей. Разработчик sphinx, Aksyonoff, работает над этим, и он вкладывает в функции и надежность и исправляет ошибки в удивительном темпе)
http://codemonkey.ravelry.com/2008/01/09/sphinx-for-search/
http://www.ibm.com/developerworks/opensource/library/os-php-apachesolr/
Сравнение полнотекстовой поисковой системы - Lucene, Sphinx, Postgresql, MySQL?
-
ferret: простая установка, не работает должным образом, очень медленная индексация (один mysql db: sphinx: 3 секунды, хорек: 50 минут). Хорошо документированные проблемы (коррупция индекса) на серверах drb в производстве под нагрузкой. Сказав это, я использую его в develometn, так как действия - as_ferret вышли 3 года назад, и это хорошо послужило мне. Несоблюдение портер-стриминга является преимуществом в некоторых контекстах.
-
Lucene and Solr - горилла/мак-грузовик/супертяжелый весе с открытым исходным кодом. Команды сделали внушительное количество новых функций в релиз solr 14:
-
act-as-solr: хорошо работает, как только кошка или пристань на месте, но иногда это боль. A-A-S fork by mattmatt является основной вилкой, но проект относительно не поддерживается.
-
re the tomcat install: SOLR/lucene, несомненно, лучшая база знаний/поддержка поисковой системы любого программного пакета, который я видел (я думаю, я не удивлен), окно поиска здесь:
http://www.lucidimagination.com/
-
Добавьте вспять новую оболочку ruby, создайте на solr-ruby. Выглядит многообещающе, но я не смог установить его на OSX. Индексирует все объекты ruby, а не только базы данных через AR
-
одна вещь, которая действительно поучительна, - установить 2 плагина поиска, например. сфинкса и SOLR, сфинкса и хорька, и посмотреть, какие разные результаты они вернут. Это так же просто, как @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/
Ответ 2
Во-первых, моя явная предвзятость: я создал и поддерживал мыслительный сфинкс.
Как бы то ни было, я фактически видел, как Бэн Джонсон (создатель SearchLogic) присутствовал на встрече в Нью-Йорке в Рубине вчера вечером. SearchLogic - это только SQL-код, поэтому, если вы не имеете дело с массивными таблицами, а рейтинги релевантности не нужны, то это может быть именно то, что вы ищете. Синтаксис довольно чистый.
Однако, если вы хотите, чтобы весь запрос был обработан кодом, который не является вашим собственным, тогда Sphinx или Solr (который, как мне кажется, Lucene под капотом), вероятно, будут работать лучше.
Ответ 3
SearchLogic - хороший плагин, но на самом деле предназначен для того, чтобы сделать ваш поисковый код более читаемым, он не обеспечивает автоматическую индексацию, которую делает Sphinx. Я не использовал Ферре, но Сфинкс невероятно мощный.
http://railscasts.com/episodes/120-thinking-sphinx
Отличное введение, чтобы увидеть, насколько он гибкий.
Ответ 4
Я не использовал SearchLogic, но могу сказать, что Lucene - очень зрелый проект, который реализуется на многих языках. Он быстрый и гибкий, и API с удовольствием работает. Это хорошая ставка.
Ответ 5
Учитывая, что этот вопрос по-прежнему высоко оценен в google для полнотекстового поиска, я бы очень хотел сказать, что Sunspot еще сильнее сегодня, если вы заинтересованы в добавлении полнотекстового поиска в ваше приложение Rails (и хотели бы, чтобы у вас был Solr). Вы можете проверить полный учебник по этому здесь.
И пока мы на нем, другой претендент, прибывший в поле, ElasticSearch, который должен быть в режиме реального времени полнотекстовый поисковик, построенный на вершине Луцен (но по-разному по сравнению с Solr). ElasticSearch включает в себя готовые очертания и репликацию на несколько узлов, более быстрый поиск в режиме реального времени, "перколяторы", чтобы вы могли получать уведомления, когда что-то, что соответствует вашим критериям, становится доступным, и оно очень быстро движется со многими другими функциями. Легко построить что-то поверх него, поскольку API мертв просто и полностью основан на REST, используя JSON в качестве формата. Можно сказать, что вам даже не нужен плагин для его использования.
Ответ 6
Лично я не беспокоюсь о агностиках базы данных для веб-приложений и вполне доволен использованием полнотекстового поиска в pg83. Преимущество в том, что если и когда вы измените свой фреймворк/язык, вы все равно будете иметь полный текстовый поиск.
Ответ 7
Для тех, кто ищет простой поисковый камень без каких-либо зависимостей, посмотрите acts_as_indexed