asticsearch против solr относительно структуры данных / особенностей запроса - PullRequest
6 голосов
/ 09 декабря 2011

Я видел много вопросов (и хороших ответов), сравнивающих сценарии масштабируемости, скорости и развертывания дляasticsearch и Solr, но я не могу найти хорошую информацию относительно каких-либо различий или относительных преимуществ того, как запросы способны работа с индексированными данными.

В частности, меня интересуют различия междуasticsearch и Solr в следующих областях:

  1. возможности гранения : чем отличается обработка граней или они в основном одинаковы?

  2. обработка схемы : кажется, чтоasticsearch имеет преимущество в том, что схемы могут быть определены на лету через API остальных, тогда как Solr требует, чтобы они были предварительно определены в schemas.xml ( Хотя я не видел конкретного подтверждения этой разницы). Существуют ли существенные различия в том, как схемы используются помимо этого?

  3. индексные фильтры : существуют ли различия между тем, как данные могут быть оптимизированы для конкретных поисков? например Я видел упоминания о таких вещах, как дублирование полей и фильтры токенизации запросов для Solr, которые увеличивают настраиваемость алгоритма поиска, но не видели много информации такого же рода в отношении эластичного поиска, но, возможно, он просто обрабатывает все эти вещи автоматически?

  4. выразительность запроса : являются ли DSL запроса в основном такими же выразительными, как и другие, или есть принципиальные различия?

  5. «повышение» и / или настройка результатов : какие существуют возможности для жесткого кодирования или массирования результатов алгоритмического поиска?

Опять же, обратите внимание, что меня совсем не интересуют проблемы скорости / масштабируемости / производительности, а только выразительность структурирования поисковых данных и языка запросов. Возможно, весь этот вопрос можно обобщить так: есть поиск, который я могу выполнить, или структуру данных, которую я могу создать в эластичном поиске, которую я не могу воспроизвести в Solr, или наоборот?

1 Ответ

7 голосов
/ 10 декабря 2011
  1. фасетирование почти такое же, за исключением того, что ES позволяет это также с помощью динамических сценариев, а Solr допускает разбиение на фасеты.Также в Solr есть удобная схема фасетирования, позволяющая выполнять простой фасет в стиле поиска магазина (примечание: с ES это относительно просто, но не из коробки).ES-фасетирование может быть более мощным, так как нет необходимости привязывать фасеты к запросу фильтра.

  2. для схемы ES можно обновить через API!или определите его в файле и укажите для типа .для Solr вы создаете файл конфигурации для index .Кстати, с динамическими полями у вас есть менее строгая схема для Solr.

  3. ES пропускает только функцию автоподогрева (но это связано с производительностью, поэтому вам не интересно;)) и группировка поособенность.В противном случае оба используют аналогичные вещи Lucene.ES допускает много продвинутых комбинаций, как это возможно в люцене.Родительский дочерний элемент аналогичен группированию по признакам и не реализован в Solr IMO.

  4. Стандартный запрос для ES формулируется с помощью JSON, поэтому вы можете создавать практически все, что можно создать с помощьюLucene.В Solr вы можете делать много продвинутых вещей, но часто вам нужны фундаментальные знания о Solr, такие как локальные параметры и т. Д. Посмотрите на это хорошее обсуждение .

  5. Не понимаю этого:)

Есть ли поиск, который я могу выполнить, или структуру данных, которую я могу создать в эластичном поиске, которую я не могу воспроизвести в Solr, или наоборот?

В ES есть перколяционная функция, которую, вероятно, труднее реализовать с помощью Solr.В ES у вас также есть функция управления версиями для реализации оптимистической блокировки, у вас есть псевдонимы индекса и запрос сканирования для глубокой навигации по вашему индексу - не уверен, что Solr имеет подобные функции.Например, псевдоним помогает сделать реализацию скользящего индекса . относительно коротким.

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