Wybór samodzielnego pełnotekstowego serwera wyszukiwania: Sphinx czy SOLR? [zamknięte]
Szukam samodzielnego pełnotekstowego serwera Wyszukiwania o następujących właściwościach:
- musi działać jako samodzielny serwer, który może obsługiwać żądania wyszukiwania od wielu klientów
- musi być w stanie wykonać "zbiorcze indeksowanie" indeksując wynik zapytania SQL: powiedz "SELECT id, text_to_index FROM documents;"
- musi być wolnym oprogramowaniem i musi działać na Linuksie z MySQL jako bazą danych
- musi być szybki (wyklucza wewnętrzny Pełny tekst MySQL Szukaj)
Alternatywy, które znalazłem, które mają te właściwości to:
- Solr (na bazie Lucenu) ElasticSearch (również na bazie Lucenu)
- Sfinks
Moje pytania:
- Jak się porównują?
- czy przegapiłem jakieś alternatywy?
- wiem, że każdy przypadek użycia jest inny, ale czy są pewne przypadki, w których zdecydowanie Nie {31]} chcę użyć określonego pakietu?
5 answers
Używam Solr z powodzeniem od prawie 2 lat i nigdy nie używałem Sphinx, więc jestem oczywiście stronniczy. Postaram się jednak zachować obiektywność, cytując dokumenty lub inne osoby. Ja też wezmę ł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 wyszukiwania dużych zbiorów danych.
[[6]}oba mają długą listę witryn o dużym natężeniu ruchu korzystających z nich (Solr , Sfinks )
- obie oferują wsparcie komercyjne. (Solr, Sphinx )
- obie oferują powiązania API klienta dla kilku platform/języków (Sphinx, Solr )
- oba mogą być dystrybuowane w celu zwiększenia prędkości i pojemności (Sphinx, Solr )
Oto kilka różnic:
- W związku z tym, że nie jesteśmy w stanie sprostać wymaganiom naszych klientów, nie jesteśmy w stanie sprostać ich wymaganiom. Sphinx to GPLv2 . Oznacza to, że jeśli kiedykolwiek musisz osadzić lub rozszerzyć (nie tylko "używać") Sphinx w aplikacji komercyjnej, musisz kupić licencję komercyjną ( )
Solr jest łatwo osadzalny w aplikacjach Java.
Solr jest zbudowany na bazie Lucenu, który jest sprawdzoną technologią ponad 8 lat z Ogromna baza użytkowników (to tylko niewielka część). Ilekroć Lucene otrzymuje nową funkcję lub przyspieszenie, Solr również ją otrzymuje. Wielu deweloperów zobowiązujących się do Solr jest również Lucene
- Sphinx ściślej integruje się z RDBMSs, zwłaszcza z MySQL. Solr może być zintegrowany z Hadoop w celu tworzenia rozproszonych aplikacji Solr może być zintegrowany z Nutchem, aby szybko zbudować pełnowartościową wyszukiwarkę internetową z crawlerem. Solr może indeksować własne formaty, takie jak Microsoft Word, PDF itp. Sphinx nie może .
- Solr pochodzi z sprawdzania pisowni z box . Solr jest dostarczany z obsługą facet po wyjęciu z pudełka. Fasetowanie w Sfinksie wymaga więcej pracy.
- Sphinx nie pozwala na częściową aktualizację indeksu dla danych pól .
- W Sphinx, wszystkie identyfikatory dokumentów muszą być unikalnymi niezerowymi liczbami całkowitymi. Solr nie wymaga nawet unikalnego klucza do wielu operacji, a unikalnymi kluczami mogą być liczby całkowite lub ciągi znaków.
- Solr obsługuje zwijanie pola (obecnie tylko jako dodatkowy patch), aby uniknąć powielania podobnych wyników. Sfinks nie wydaje się dostarczać żadnej 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 prawie każdym rodzajem danych, dzięki czemu jest bardziej niezależny od jakiegokolwiek zewnętrznego magazynu danych i zapisuje dodatkową podróż. Solr, z wyjątkiem użycia embedded, działa w kontenerze Java web {[10] } takim jak Tomcat lub Jetty, które wymagają dodatkowa konfiguracja i strojenie (lub możesz użyć dołączonego Jetty i po prostu uruchomić go za pomocą
java -jar start.jar
). Sphinx nie ma dodatkowej konfiguracji.
Podobne pytania:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:09:56
Chyba że trzeba rozszerzyć funkcjonalność wyszukiwania w jakikolwiek zastrzeżony sposób, Sphinx jest najlepszym rozwiązaniem.
Zalety Sfinksa:
- Tworzenie i konfiguracja jest szybsza Znacznie lepsza (i szybsza) agregacja. To była dla nas zabójcza cecha.
- nie XML. To jest to, co ostatecznie wykluczyło Solr dla nas. Musieliśmy zwrócić dość duże zbiory wyników (pomyślmy o setkach wyników), a następnie agregować je samodzielnie, ponieważ brakowało agregacji Solr. Ilość czasu do serializowanie do i z XML po prostu absolutnie zabiło wydajność. W przypadku małych zestawów wyników było to całkowicie w porządku.
- Najlepsza dokumentacja jaką widziałem w aplikacji open source
Zalety Solr:
- można rozszerzyć.
- może trafić bezpośrednio z aplikacji internetowej, tzn. można mieć autouzupełnianie-Podobne wyszukiwania trafić na serwer Solr bezpośrednio przez AJAX.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-16 13:11:25
Uwaga: jest wielu użytkowników o tym samym pytaniu.
Więc odpowiadając na pytanie:
Które i dlaczego?
Użyj Solr , Jeśli zamierzasz używać go w swojej aplikacji internetowej(przykładowa wyszukiwarka stron). Na pewno okaże się świetny, dzięki swojemu API. Na pewno potrzebujesz tej mocy do aplikacji internetowej.
Użyj Sphinx, Jeśli chcesz szybko przeszukiwać mnóstwo dokumentów / plików. Indeksuje się bardzo szybko. I zaleca się, aby nie używać go w aplikacji, która wymaga JSON lub parsowania XML, aby uzyskać wyniki wyszukiwania. Użyj go do bezpośredniego wyszukiwania dB. Działa świetnie na MySQL.
Alternatywy
Chociaż są to giganci, jest ich dużo więcej. Są też tacy, którzy używają ich do zasilania swoich niestandardowych struktur. Więc, powiedziałbym, że naprawdę nie przegapiłeś żadnego. Chociaż istnieje jeden elasticsearch, który ma dobrą bazę użytkowników.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-29 07:56:04
Używam Sphinx od prawie roku i to było niesamowite. Mogę indeksować 1,5 miliona dokumentów w około minutę na moim MacBooku, a nawet szybciej na serwerze. Używam również Sfinksa, aby ograniczyć wyszukiwanie do miejsc w określonych szerokościach geograficznych i długościach geograficznych, i jest to bardzo szybkie. Również sposób klasyfikowania wyników jest bardzo zmienny. Łatwy w instalacji i konfiguracji, jeśli czytasz samouczek lub dwa. Stan prawie 1.0, ale ich kandydaci do wydania są solidni.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-16 13:21:22
Lucene / Solr wydaje się być bardziej wyróżniony i ma dłuższe lata w biznesie i znacznie silniejszą społeczność użytkowników. imho jeśli możesz ominąć początkowe problemy z konfiguracją, ponieważ niektórzy wydają się mieć do czynienia (nie my), powiedziałbym, że Lucene / Solr jest najlepszym rozwiązaniem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-13 04:57:36