Интересности      Книги      Утилиты    

24 августа 2011 г.

Lucene vs / and Solr

imageimage

Многие наверное задавались таким же вопросом как и я: Когда лучше использовать Lucene, а когда лучше использовать Solr. Конечно ответ интуитивно очевиден, но хочется знать наверняка и прояснить для себя детали.

Что такое Solr?

Apache Solr – это веб-сервис, уже реализованная поисковая система, такой себе HTTP враппер над Lucene с уже реализованными дополнительными функциями. Среди этих функции, которые мы получаем из коробки – XML/HTTP, Json API,  hit highlighting, faceted search, caching, replication, админка сервиса и т.д.

В то время как Lucene – это библиотека, не приложение, Solr – веб-приложение, которое можно развернуть на одном из серверов приложений для java (servlet container), например Jetty, Tomcat и т.д.

Solr и Lucene – достаточно активные Apache проекты, с хорошим комьюнити.

В каких случаях тогда лучше использовать Lucene?

Lucene лучше подходит тогда когда есть необходимость встроить поиск в свое приложение, например десктоп приложение, или же когда есть специфические требования к поиску, которые требуют доступа к классам Lucene. Solr же подходит лучше когда у нас сайт или сервисы, и нам необходимо работать с ним как с black box.

В случае Lucene и в случае Solr взаимодействовать с ними из .NET достаточно просто. Для Lucene – есть Lucene.NET. Это порт java библиотеки Lucene, как и любой порт он отстает по версиям, но развивается. У Lucene .NET текущая версия – 2.9.2, у Lucene – 3.3. С Solr придется взаимодействовать как и с любым другим веб-сервисом, так что то что он написан на java – не имеет значения, кроме как требования к деплойменту.

В планах для Lucene.NET – релиз версии 3.

Хотя не стоит забывать о том что в каждом конкретном случае необходимо подумать подходит ли Solr/Lucene для конкретного решения. Ведь существует еще MS SQL Server Full-Text Search. И кто сказал что критерии выбора в каждом конкретном решении, только технические. Возможно, если ваша платформа работает полностью на MS стеке то MS SQL Server Full-Text Search – ваш выбор. Хотя многие утверждают что Solr/Lucene значительно мощнее по своим фичам чем MS SQL Server Full-Text, но для конкретных проектов может оказаться лучше использовать MS SQL Server Full-Text Search.

Из полезных ссылок:

Apache Lucene - http://lucene.apache.org/java/docs/index.html
Lucene.NET - http://incubator.apache.org/lucene.net/
Lucene.NET NuGet package - http://nuget.org/List/Packages/Lucene
Solr - http://lucene.apache.org/solr/
Туториал на въезжание в Solr - http://lucene.apache.org/solr/tutorial.html

3 комментария:

  1. 1. Привет, а вы elasticsearch случаем не смотрели/пробовали?
    2. Это интересная тема, как вы смотрите расказать про нее на Kiev ALT.NET?

    ОтветитьУдалить
  2. solr rus tutorialhttp://samonesoznanie.blogspot.com/2012/04/solr-lucene.html 

    ОтветитьУдалить
  3. solr rus tutorial http://samonesoznanie.blogspot.com/2012/04/solr-lucene.html 
     
    EDITED

    ОтветитьУдалить