Сравнение Elastic Search и Sunspot по функциям - PullRequest
7 голосов
/ 06 февраля 2012

Не можете найти вопросы для сравнения относительно солнечного пятна (Solr) с Elastic Search (Lucene) Какими бы были «за» и «против» в обеих поисковых системах?

Я видел другие вопросы о VS, чтобы лучше разобраться в сравнении двух драгоценных камней, поэтому надеюсь, что это позволит лучше понять оба движка для новичков (как я). Я уже посмотрел на пятно, но у меня есть некоторые проблемы с ним. Поэтому я искал

против

Ответы [ 3 ]

10 голосов
/ 11 февраля 2012

Я начал работать над проектом, который требовал полнотекстового поиска в Ruby, поэтому, естественно, я начал с Solr + Sunspot, но не смог заставить его работать.Было трудно просто подключить их, а затем попытаться выяснить, правильно ли проиндексирован документ, выяснить путь к классам времени выполнения, чтобы я мог добавить дополнительные классы анализатора / токенизатора, отредактировать файл config.xml / schema.xml и т. Д. Четко выяснить numDocsсказал, что получил и проиндексировал их, но я не смог получить никаких результатов запроса.Я просто сдался через пару дней, это было своего рода адом конфигурации.

ElasticSearch + Tire был легким, чтобы его запустить и запустить, я заработал его через час.

Lucene - это просто поисковая библиотека Java, поэтому Solr был разработан как полнофункциональное поисковое приложение, но у Solr все еще есть ловушка типичного веб-приложения Java: слишком сложные XML-конфигурации, тяжелые схемы, ожидающие XML-документы для индексации, требующиеКонтейнер сервлетов Java (Jetty или Tomcat), который для меня просто становится слишком большим количеством точек отказа.

ElasticSearch также основан на Lucene, у него есть встроенный контейнер сервлетов, поэтому просто запускайте его как демон, используйте командуочень простой JSON + REST API, поэтому он отлично подходит для тестирования и более естественен для Ruby.Это без схемы, и он работал для меня даже без редактирования файла конфигурации.Все работало прекрасно.

Что мне действительно нужно, так это китайский поиск, и ElasticSearch уже упаковал SmartChineseAnalyzer Luecene в качестве плагина.Не уверен, насколько сложно будет настроить цепочку анализатора / токенизатора, если вам нужен такой уровень настройки.Документация по ElasticSearch и Tire является первоклассной.

Tire (библиотека Ruby для ElasticSearch)

https://github.com/karmi/tire

Вы можете попробовать демо, оно установит приложение rails searchapp, загрузитедвоичный файл ElasticSearch и запустите его, а затем автоматически запустите Webrick.

$ rails new searchapp -m https://raw.github.com/karmi/tire/master/examples/rails-application-template.rb

В моей системе он жаловался на отсутствие движка Javascript (Rails 3.2 больше не включает в себя гемububaracer по умолчанию), поэтому мне пришлось:

$ wget https://raw.github.com/karmi/tire/master/examples/rails-application-template.rb
$ nano rails-application-template.rb

добавить в файл gem 'therubyracer' (найдите gem 'tyre' и gem 'will_paginate'), затем ...

$ rails new searchapp -m rails-application-template.rb

Для разработки моего собственного приложения,Я только что загрузил тарбол ElasticSearch и запустил на переднем плане ключ -f (так что я могу легко остановить его с помощью Ctrl-C)

$ bin/elasticsearch -f

Вы можете установить плагин eleasticsearch-head, чтобы получить веб-администратораinterface

https://github.com/mobz/elasticsearch-head

Также кое-что, что я обнаружил: если у вас есть модели отношений «один ко многим», Tire не разрешит их для вас в результатах поиска, а просто выдастплоская коллекция.Ваши отношения has_many и own_to будут просто идентификаторами объектов в коллекции, а не полными объектами.

8 голосов
/ 06 февраля 2012

Я думаю, вы должны искать сравнение между Solr и упругим поиском. Фактически солнечное пятно основано на Solr, а Solr и упругий поиск основаны на Lucene. Это два разных проекта с похожими целями, оба построены на основе Lucene.

Вот два сравнения:

ElasticSearch, Sphinx, Lucene, Solr, Xapian. Что подходит для какого использования?

http://www.findbestopensource.com/article-detail/solr-vs-elasticsearch

2 голосов
/ 23 августа 2018

Вот наиболее полный актуальный пост по теме: http://solr -vs-elasticsearch.com /

Мои рекомендации по состоянию на май 2018 г.

Вот несколько простых советов, если сумасшедшая длинная сетка функций выше не помогло.

Выберите Solr, если выполнено любое из следующих действий ...

  • Ваша команда состоит в основном из программистов на Java
  • Вы уже используете ZooKeeper в своем стеке
  • Вы уже используете Java в своем стеке
  • Вы создаете поисковое приложение, которое имеет специфические и нюансированные требования к релевантности
  • Вы создаете поисковую систему для электронной коммерции, работы или продукта
  • Поиск является центральной частью вашего продукта и взаимодействия с пользователем, и существует организационный мандат для того, чтобы поиск был основным преимуществом

Выберите Elasticsearch, если выполнено любое из следующих действий ...

  • Ваша команда состоит в основном из Ruby / PHP / Python / программистов с полным стеком (а ваше приложение не имеет специфической и нюансированной релевантности требования)
  • Вы живете и дышите JSON
  • Вы уже используете Kibana / ELK для управления своими журналами
  • Ваше приложение сильно загружено аналитикой

Если есть сомнения ...

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...