Używam Solr z powodzeniem od prawie 2 lat i nigdy nie używałem Sphinxa, więc oczywiście jestem stronniczy. Postaram się jednak zachować obiektywizm, cytując dokumenty lub inne osoby. Wezmę też łatki do mojej odpowiedzi :-)
Podobieństwa:
- Zarówno Solr, jak i Sphinx spełniają wszystkie Twoje wymagania. Są szybkie i zaprojektowane do efektywnego indeksowania i przeszukiwania dużych zbiorów danych.
- Oba mają długą listę witryn o dużym natężeniu ruchu, które z nich korzystają (Solr , Sfinks )
- Obie obie oferują wsparcie komercyjne. (Solr , Sfinks )
- Oba oferują powiązania interfejsu API klienta dla kilku platform/języków (Sphinx , Solr )
- Oba mogą być dystrybuowane w celu zwiększenia szybkości i pojemności (Sphinx , Solr )
Oto kilka różnic:
- Solr, jako projekt Apache, jest oczywiście na licencji Apache2. Sphinx jest na GPLv2 . Oznacza to, że jeśli kiedykolwiek będziesz musiał osadzić lub rozszerzyć (a nie tylko „użyć”) Sphinxa w aplikacji komercyjnej, będziesz musiał kupić licencję komercyjną (uzasadnienie )
- Solr jest łatwy do osadzania w aplikacjach Java.
- Solr jest oparty na technologii Lucene, która jest sprawdzoną technologią ponad 8 lat z wielkim baza użytkowników (to tylko niewielka część). Za każdym razem, gdy Lucene dostaje nową funkcję lub przyspieszenie, Solr też je dostaje. Wielu deweloperów angażujących się w Solr to również osoby zaangażowane w Lucene.
- Sphinx ściślej integruje się z RDBMS, zwłaszcza z MySQL.
- Solr może być zintegrowany z Hadoop do tworzenia aplikacji rozproszonych
- Solr można zintegrować z Nutch, aby szybko zbudować w pełni pełnoprawna wyszukiwarka internetowa z robotem .
- Solr może indeksować zastrzeżone formaty, takie jak Microsoft Word, PDF itp. . Sphinx nie mogę .
- Solr zawiera sprawdzanie pisowni po wyjęciu z pudełka .
- Solr jest dostarczany z obsługą aspektów po wyjęciu z pudełka . Faceting w Sphinx zajmuje więcej pracy .
- Sphinx nie pozwala na częściowe aktualizacje indeksu dla danych pola .
- W Sphinx, wszystkie identyfikatory dokumentów muszą być unikatową niezerową liczbą całkowitą bez znaku liczby . Solr nie wymaga nawet unikalnego klucza do wielu operacji , a unikalne klucze mogą być liczbami całkowitymi lub łańcuchami.
- Solr obsługuje zwijanie pól (obecnie tylko jako dodatkowa poprawka), aby uniknąć powielania podobnych wyników. Wydaje się, że Sphinx nie zapewnia takiej funkcji.
- Podczas gdy Sphinx jest przeznaczony tylko do pobierania identyfikatorów dokumentów , w Solr możesz bezpośrednio uzyskać całe dokumenty z praktycznie dowolnym rodzajem danych, czyniąc go bardziej niezależnym od dowolnego zewnętrznego magazynu danych i oszczędzając dodatkową podróż w obie strony.
- Solr, z wyjątkiem sytuacji, gdy jest osadzony, działa w kontenerze internetowym Java
takie jak Tomcat lub Jetty, które wymagają dodatkowej specyficznej konfiguracji i strojenia
(lub możesz skorzystać z dołączonego molo
i po prostu uruchom go za pomocą
java -jar start.jar
). Sphinx nie ma dodatkowej konfiguracji.
Powiązane pytania:
- Wyszukiwanie pełnotekstowe za pomocą Rails
- Porównanie wyszukiwarek pełnotekstowych - Lucene, Sphinx, Postgresql, MySQL?