Многие наверное задавались таким же вопросом как и я: Когда лучше использовать 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
1. Привет, а вы elasticsearch случаем не смотрели/пробовали?
ОтветитьУдалить2. Это интересная тема, как вы смотрите расказать про нее на Kiev ALT.NET?
solr rus tutorialhttp://samonesoznanie.blogspot.com/2012/04/solr-lucene.html
ОтветитьУдалитьsolr rus tutorial http://samonesoznanie.blogspot.com/2012/04/solr-lucene.html
ОтветитьУдалитьEDITED