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?
Author: Andy Lester, 2009-08-16

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:

Podobne pytania:

 323
Author: Mauricio Scheffer,
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:

  1. Tworzenie i konfiguracja jest szybsza
  2. Znacznie lepsza (i szybsza) agregacja. To była dla nas zabójcza cecha.
  3. 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.
  4. Najlepsza dokumentacja jaką widziałem w aplikacji open source

Zalety Solr:

  1. można rozszerzyć.
  2. może trafić bezpośrednio z aplikacji internetowej, tzn. można mieć autouzupełnianie-Podobne wyszukiwania trafić na serwer Solr bezpośrednio przez AJAX.
 47
Author: larf311,
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.

 20
Author: Augiwan,
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.

 19
Author: lo_fye,
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.

 2
Author: Angsuman Chakraborty,
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