wake-up-neo.net

Auswählen eines eigenständigen Volltextsuchservers: Sphinx oder SOLR?

Ich suche einen eigenständigen Volltextsuchserver mit den folgenden Eigenschaften:

  • Muss als eigenständiger Server fungieren, der Suchanfragen von mehreren Clients verarbeiten kann
  • Muss in der Lage sein, "Bulk-Indizierung" durch Indizieren des Ergebnisses einer SQL-Abfrage durchzuführen: Sagen Sie "SELECT id, text_to_index FROM documents".
  • Muss freie Software sein und unter Linux mit MySQL als Datenbank ausgeführt werden
  • Muss schnell sein (schließt die interne Volltextsuche von MySQL aus)

Die Alternativen, die ich gefunden habe, die diese Eigenschaften haben, sind:

  • Solr (basierend auf Lucene)
  • ElasticSearch (auch basierend auf Lucene)
  • Sphinx

Meine Fragen:

  • Wie vergleichen sie?
  • Habe ich Alternativen verpasst?
  • Ich weiß, dass jeder Anwendungsfall anders ist, aber gibt es bestimmte Fälle, in denen ich definitiv nicht ein bestimmtes Paket verwenden möchte?
192
knorv

Ich benutze Solr seit fast 2 Jahren erfolgreich und habe Sphinx noch nie benutzt, daher bin ich offensichtlich voreingenommen. Ich werde jedoch versuchen, es objektiv zu halten, indem ich die Dokumente oder andere Leute zitiere. Ich werde auch Patches zu meiner Antwort nehmen :-)

Ähnlichkeiten:

  • Sowohl Solr als auch Sphinx erfüllen alle Ihre Anforderungen. Sie sind schnell und können große Datenmengen effizient indizieren und durchsuchen.
  • Beide haben eine lange Liste von stark frequentierten Sites, die sie verwenden ( Solr , Sphinx )
  • Beide bieten kommerzielle Unterstützung. ( Solr , Sphinx )
  • Beide bieten Client-API-Bindungen für mehrere Plattformen/Sprachen ( Sphinx , Solr )
  • Beide können verteilt werden, um Geschwindigkeit und Kapazität zu erhöhen ( Sphinx , Solr )

Hier sind einige Unterschiede:

Verwandte Fragen:

324

Sofern Sie die Suchfunktion nicht auf proprietäre Weise erweitern müssen, ist Sphinx die beste Wahl.

Vorteile von Sphinx:

  1. Entwicklung und Einrichtung sind schneller
  2. Viel bessere (und schnellere) Aggregation. Dies war das Killer-Feature für uns.
  3. Nicht XML. Dies ist es, was Solr letztendlich für uns ausschloss. Wir mussten ziemlich große Ergebnismengen zurückgeben (denken Sie an Hunderte von Ergebnissen) und diese dann selbst aggregieren, da die Solr-Aggregation fehlte. Die Zeit, die zum Serialisieren von und nach XML benötigt wird, hat die Leistung absolut beeinträchtigt. Für kleine Ergebnismengen war es jedoch vollkommen in Ordnung.
  4. Beste Dokumentation, die ich in einer Open Source App gesehen habe

Solr Vorteile:

  1. Kann verlängert werden.
  2. Kann direkt von einer Web-App aus aufgerufen werden, d. H. Sie können automatisch vervollständigte Suchvorgänge direkt über AJAX auf den Solr-Server ausführen lassen.
47
larf311

Hinweis: Es gibt viele Benutzer, die die gleiche Frage haben.

Um auf den Punkt zu antworten:

Welche und warum?

  • Verwenden Sie Solr , wenn Sie beabsichtigen, es in Ihrer Web-App (Beispielsuchmaschine) zu verwenden. Es wird auf jeden Fall großartig, dank seiner API. Diese Leistung benötigen Sie auf jeden Fall für eine Web-App.

  • Verwenden Sie Sphinx , wenn Sie sehr schnell in Tonnen von Dokumenten/Dateien suchen möchten. Es indiziert auch sehr schnell. Ich würde empfehlen, es nicht in einer App zu verwenden, die JSON beinhaltet oder XML analysiert, um die Suchergebnisse zu erhalten. Verwenden Sie es für die direkte dB-Suche. Es funktioniert hervorragend unter MySQL.

Alternativen

Obwohl dies die Giganten sind, gibt es noch viel mehr. Es gibt auch solche, die diese verwenden, um ihre benutzerdefinierten Frameworks zu unterstützen. Also, ich würde sagen, dass Sie wirklich keine verpasst haben. Obwohl es eine gibt elasticsearch die eine gute Nutzerbasis hat.

20
Augiwan

Ich benutze Sphinx seit fast einem Jahr und es war erstaunlich. Ich kann auf meinem MacBook 1,5 Millionen Dokumente in etwa einer Minute und auf dem Server sogar noch schneller indizieren. Ich verwende Sphinx auch, um die Suche auf Orte in bestimmten Breiten- und Längengraden zu beschränken, und das geht sehr schnell. Außerdem ist die Rangfolge der Ergebnisse sehr gut einstellbar. Einfach zu installieren und einzurichten, wenn Sie ein oder zwei Tutorials lesen. Fast 1.0 Status, aber ihre Release Candidates waren absolut solide.

19
lo_fye

Lucene/Solr scheint stärker vertreten zu sein und hat längere Geschäftsjahre und eine viel stärkere Benutzergemeinschaft. imho, wenn Sie die anfänglichen Einrichtungsprobleme überwinden können, mit denen einige konfrontiert zu sein scheinen (nicht wir), dann würde ich sagen, dass Lucene/Solr Ihre beste Wahl ist.