Wiem, że Lucene i Solr to dwa różne projekty Apache, które są stworzone do współpracy, ale nie rozumiem, jaki jest cel każdego projektu.
Do tej pory rozumiałem, że Lucene służy do tworzenia indeksu wyszukiwania, a Solr używa tego indeksu do przeprowadzania wyszukiwań. Mam rację, czy jest to zupełnie inne podejście?
Odpowiedzi:
@darkheir: Lucene i Solr to dwa różne projekty Apache, które są stworzone do współpracy, nie rozumiem, jaki jest cel każdego projektu.
1) Solr używa Lucene pod maską. Lucene nie ma pojęcia o API Solr.
2) Lucene to potężna struktura wyszukiwarki, która pozwala nam dodawać funkcje wyszukiwania do naszej aplikacji. Udostępnia łatwy w użyciu interfejs API, ukrywając wszystkie złożone operacje związane z wyszukiwaniem. Każda aplikacja może korzystać z tej biblioteki, nie tylko Solr.
3) Solr jest zbudowany wokół Lucene. To nie jest tylko wrapper http wokół Lucene, ale wiadomo, że dodaje więcej arsenału do Lucene . Solr jest gotowy do użycia po wyjęciu z pudełka. Jest to aplikacja internetowa, która oferuje powiązaną infrastrukturę i wiele innych funkcji oprócz tego, co oferuje Lucene.
@darkheir: Lucene służy do tworzenia indeksu wyszukiwania, a Solr używa tego indeksu do wyszukiwania. Mam rację, czy jest to zupełnie inne podejście?
4) Lucene nie tylko tworzy Indeks zużycia przez Solr . Lucene obsługuje wszystkie operacje związane z wyszukiwaniem. Każda aplikacja może korzystać z frameworka Lucene.
Przykładami są Solr, Elastic Search, LinkedIn (tak, pod maską) itp.
Przeczytaj ten artykuł: Lucene vs Solr
UPDATE (18.06.14)
Kiedy stosować Lucene?
Kiedy używać Solr?
UWAGA : Nie mam na myśli, że Solr jest trudny do dostosowania. Solr jest bardzo elastyczny i zapewnia wiele podłączanych punktów API, co pozwala na wrzucenie kodu.
Są ludzie, którzy należą do obozu „ trzeba używać Lucene ”, ale nadal wolą Solr od zwykłego Lucene, ponieważ jest łatwy w użyciu. Jednak nigdy nie powstrzymują się przed maksymalnym dostosowywaniem Solr.
BTW, widzę, że jest więcej zasobów na Solr (4.x) niż Lucene (4.x).
źródło
Lucene to niskopoziomowa biblioteka Java (z portami do .NET itp.), Która implementuje indeksowanie, analizowanie, wyszukiwanie itp.
Solr to samodzielny, wstępnie skonfigurowany produkt / aplikacja internetowa korzystająca z Lucene. Jeśli wolisz korzystać z HTTP API zamiast Java API, Solr jest dla Ciebie. Solr ma również kilka dodatkowych funkcji (np. Grupowanie ).
źródło
Źródło: Lucene-vs-solr - samouczek Lucene
źródło
Solr jest zbudowany na lucene, aby zapewnić platformę wyszukiwania.
Platforma wyszukiwania w następujących warstwach od dołu do góry:
Artykuł referencyjny: Wyszukiwanie korporacyjne
źródło
SOLR jest opakowaniem na indeks Lucene.
Łatwo to zrozumieć: SOLR to samochód, a Lucene to jego silnik . Musisz tylko wiedzieć, jak prowadzić samochód (SOLR), a także wiedzieć kilka rzeczy o silniku (Lucene) na wypadek, gdyby wystąpił problem z silnikiem twojego samochodu.
Życzymy bezpiecznej jazdy :)
źródło
Można to sobie wyobrazić w następujący sposób - Apache Lucene jest biblioteką używaną wewnętrznie przez Apache Solr. Jest napisany w języku Java i zapewnia niesamowite możliwości wyszukiwania pełnotekstowego i indeksowania. Potrafi analizować wiele języków z całego świata i przygotowywać tekst w tych językach do wydajnego i szybkiego wyszukiwania i analizy. Lucene to biblioteka - możesz jej użyć bezpośrednio w swojej aplikacji i zaimplementować wszystko samodzielnie, ale Apache Solr zapewnia wiele po wyjęciu z pudełka.
Wyszukiwarka Apache Solr zapewnia takie funkcje, jak interfejsy API HTTP, których można użyć do wysyłania do nich danych, a następnie wyszukiwania tych danych. Możesz sterować wyszukiwarkami za pomocą API, tworzyć rozproszone środowiska i automatycznie dystrybuować dane do wielu węzłów i wielu, wielu innych.
źródło
Dobre porównanie na temat celu świecenia i energii słonecznej można znaleźć tutaj:
http://www.lucenetutorial.com/lucene-vs-solr.html
TLDR: Lucence to tylko silnik, Solar to samochód, którym możesz prowadzić (wyposażony w rest-api itp.)
źródło