Разница между сольром и люценом


163

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

Я понял до сих пор, что Lucene используется для создания поискового индекса, а Solr использует этот индекс для выполнения поиска. Я прав или это совершенно другой подход?


5
Разве lucene.apache.org/solr (и эквивалентная страница для Lucene) не отвечает на это?
NPE

Да, вы правы, страница функций solr проясняет разницу. Если я понимаю, что могу использовать только Lucene, но Solr нужен Lucene для работы.
darkheir

2
В отличие от Lucene, Solr - это веб-приложение (WAR), которое может быть развернуто в любом контейнере сервлетов, например, Jetty, Tomcat, Resin и т. Д. Solr может быть установлен и использоваться не программистами. Люсена не может. Больше на lucenetutorial.com/lucene-vs-solr.html
Счастливчик

Ответы:


229

@darkheir: Lucene и Solr - два разных проекта Apache, которые созданы для совместной работы, я не понимаю, какова цель каждого проекта.

1) Solr использует Lucene под капотом. Lucene не имеет ни малейшего представления о Solr API.

2) Lucene - это мощная платформа для поисковых систем, которая позволяет нам добавлять возможности поиска в наше приложение. Он предоставляет простой в использовании API, скрывая все сложные операции, связанные с поиском. Любое приложение может использовать эту библиотеку, а не только Solr.

3) Solr построен вокруг Lucene. Это не просто http-оболочка вокруг Lucene, но известно, что она добавляет больше арсенала в Lucene . Solr готов к использованию из коробки. Это веб-приложение, которое предлагает связанную инфраструктуру и намного больше функций в дополнение к тому, что предлагает Lucene.

@darkheir: Lucene используется для создания поискового индекса, а Solr использует этот индекс для выполнения поиска. Я прав или это совершенно другой подход?

4) Lucene не просто создает индекс для потребления Solr . Lucene обрабатывает все операции, связанные с поиском. Любое приложение может использовать фреймворк Lucene.

Примерами являются Solr, Elastic Search, LinkedIn (да, под капотом) и т. Д.

Проверьте эту статью: Lucene vs Solr

ОБНОВЛЕНИЕ (18.06.14)

Когда использовать Lucene?

  • Вы поисковый инженер И
  • Вы программист И
  • Вы хотите полный контроль почти над всеми внутренностями Lucene AND
  • Ваши требования требуют от вас всяческих отвратительных настроек в Lucene AND
  • Вы готовы позаботиться об элементах инфраструктуры поиска, таких как масштабирование, распределение и т. Д.

Когда использовать Solr?

  • По крайней мере, одно из вышеперечисленного не имело смысла. ИЛИ
  • Вы хотите что-то, что готово использовать "из коробки" (даже без знания Java) ИЛИ
  • Ваши требования к инфраструктуре перевешивают требования к настройке поиска.

ПРИМЕЧАНИЕ : я не имею в виду, что Solr сложно настроить. Solr очень гибок и предоставляет множество подключаемых точек API, что позволяет вам добавить свой код.

Есть люди, попадающие в лагерь « должны использовать Lucene », но все же предпочитают Solr обычному Lucene, поскольку его легко использовать. Тем не менее, они никогда не сдерживают себя от настройки Solr в максимальной степени.

Кстати, я вижу, что в Solr (4.x) больше ресурсов, чем в Lucene (4.x).


31

Lucene - это низкоуровневая библиотека Java (с портами для .NET и т. Д.), Которая реализует индексирование, анализ, поиск и т. Д.

Solr - это отдельный предварительно настроенный продукт / веб-приложение, в котором используется Lucene. Если вы предпочитаете работать с HTTP API вместо Java API, Solr для вас. У Solr также есть некоторые дополнительные функции (например, группировка ).


21

Простой способ осмыслить отношения между Solr и Lucene - это автомобиль и его двигатель. Вы не можете управлять двигателем, но вы можете управлять автомобилем. Точно так же Lucene - это программная библиотека, которую вы не можете использовать как есть, тогда как Solr - это законченное приложение, которое вы можете использовать «из коробки».

Источник: Lucene-vs-solr - Lucene Tutorial


5
Который скопирован с lucenetutorial.com/lucene-vs-solr.html Пожалуйста, указывайте источник всякий раз, когда вы копируете вставить ответ, цитируя источник. ;)
Счастливчик

1
Страница, кажется, сейчас не в сети.
dev_feed

15

Solr построен на основе Lucene, чтобы обеспечить поисковую платформу.

Поиск платформы в следующих слоях снизу вверх:

  • Данные
    • Цель: представлять различные типы данных и источники
  • Построение документов
    • Цель: создание информации о документе для индексации
  • Индексирование и поиск
    • Цель: Построить и запросить индекс документа
  • Улучшение логики
    • Назначение: дополнительная логика для обработки поисковых запросов и результатов
  • Сервис поисковой платформы
    • Цель: добавить дополнительные функции ядра поисковой системы, чтобы обеспечить сервисную платформу.
  • Приложение пользовательского интерфейса
    • Назначение: интерфейс поиска конечного пользователя или приложения

стек Solr

Справочная статья: Поиск предприятия


12

SOLR - это оболочка над индексом Lucene.

Это легко понять: SOLR - это автомобиль, а Lucene - это его двигатель . Вам просто нужно знать, как водить автомобиль (SOLR), а также нужно знать кое-что о двигателе (Lucene) на случай, если возникнут какие-либо проблемы с двигателем вашего автомобиля.

Счастливого пути :)


3
Не говоря уже о том, что если бы вы были так склонны, вы могли бы построить свой собственный автомобиль, используя двигатель Lucene.
намеки

1

Вы можете представить это следующим образом - Apache Lucene - это библиотека, которая используется внутри Apache Solr. Он написан на Java и предоставляет потрясающие возможности полнотекстового поиска и индексации. Он может анализировать большое количество языков со всего мира и подготавливать текст на таких языках для эффективного и быстрого поиска и анализа. Lucene - это библиотека - вы можете использовать ее непосредственно в своем приложении и реализовывать все самостоятельно, но Apache Solr предоставляет многое из коробки.

Поисковая система Apache Solr предоставляет такие вещи, как HTTP API, которые вы можете использовать для отправки данных и последующего поиска по этим данным. Вы можете управлять поисковыми системами с помощью API, создавать распределенные среды и автоматически распределять данные по нескольким узлам и многим, многим другим.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.