Frage

Ich suche nach einem eigenständigen Volltextsuche-Server mit den folgenden Eigenschaften:

  • muss als Stand-alone-Server betreiben, die Suchanfragen von mehreren Clients dienen
  • Muss in der Lage „bulk Indizierung“ zu tun, indem die Indizierung das Ergebnis einer SQL-Abfrage: sagen „SELECT id, text_to_index aus Dokumenten;“
  • Müssen freie Software sein und auf Linux mit MySQL als Datenbank ausgeführt werden müssen
  • Muss schnell sein (Regeln aus MySQL internen Volltextsuche)

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

  • Solr (basierend auf Lucene)
  • Elasticsearch (auch auf Basis von Lucene)
  • Sphinx

Meine Fragen:

  • Wie vergleichen sie?
  • Habe ich verpasst keine Alternativen?
  • Ich weiß, dass jeder Anwendungsfall ist anders, aber es gibt bestimmte Fälle, in denen ich würde auf jeden Fall nicht will ein bestimmtes Paket benutzen?
War es hilfreich?

Lösung

Ich habe mit Solr erfolgreich seit fast 2 Jahren, und noch nie Sphinx verwendet, so dass ich bin natürlich voreingenommen. Ich werde jedoch versuchen, es Ziel zu halten, indem Sie die Dokumentation oder andere Personen zu zitieren. Ich werde auch Patches auf meine Antwort nehmen: -)

Similarities:

  • Sowohl Solr und Sphinx alle Ihre Anforderungen erfüllen. Sie sind schnell und entwickelt, um indizieren und durchsuchen große Körper von Daten effizient.
  • Sowohl eine lange Liste von High-Traffic-Sites haben mit ihnen ( Solr , Sphinx )
  • bietet Sowohl kommerzielle Unterstützung. ( Solr , Sphinx )
  • Beide bieten Client-API-Anbindungen für mehrere Plattformen / Sprachen ( Sphinx , Solr )
  • kann sowohl die Geschwindigkeit zu erhöhen verteilt und Kapazität ( Sphinx , Solr )

Hier sind einige Unterschiede:

Verwandte Fragen:

Andere Tipps

Wenn Sie die Suchfunktion in proprietärer Weise erweitern müssen, Sphinx ist die beste Wahl.

Sphinx Vorteile:

  1. Entwicklung und Einrichtung ist schneller
  2. Viel besser (und schneller) Aggregation. Dies war das Killer-Feature für uns.
  3. Nicht XML. Dies ist, was regiert schließlich aus Solr für uns. Wir hatten ziemlich große Ergebnismengen zurück (man denke Hunderte von Ergebnissen) und dann aggregieren sie uns seit Solr Aggregation fehlte. Die Höhe der Zeit zu und von XML serialisiert werden nur absolut getötet Leistung. Für kleine Ergebnisse setzt aber es war völlig in Ordnung.
  4. Best Dokumentation Ich habe in einer Open-Source-app gesehen

Solr Vorteile:

  1. Kann verlängert werden.
  2. Kann trifft es direkt von einem Web-App, das heißt, können Sie die automatische Vervollständigung artige haben sucht den Solr-Server direkt über AJAX getroffen.

Hinweis: Es gibt viele Anwender mit der gleichen Frage im Kopf

.

Also, auf den Punkt zu beantworten:

Welche und warum?

  • Mit Solr , wenn Sie beabsichtigen, es zu benutzen in Ihrem Web-App (Beispiel-Website Suchmaschine). Es wird auf jeden Fall groß ausfallen, dank seiner API. Sie müssen auf jeden Fall, dass die Leistung für einen Web-App.

  • Mit Sphinx , wenn Sie durch Tonnen von Dokumenten / Dateien ganz schnell durchsuchen möchten. Es Indizes wirklich schnell zu. Ich würde empfehlen, nicht in einer App zu verwenden, die JSON oder XML-Parsing beinhaltet, um die Suchergebnisse zu bekommen. Verwenden Sie es für direkte dB sucht. Es funktioniert auf MySQL.

Alternativen

Obwohl diese die Riesen sind, gibt es viel mehr. Auch gibt es diejenigen, die diese verwenden, um ihre benutzerdefinierten Rahmen treiben. Also würde ich sagen, dass Sie wirklich nicht verpasst haben. Zwar gibt es eine Elasticsearch , die eine gute Nutzerbasis hat.

Ich habe nun seit fast einem Jahr Sphinx gewesen verwendet wird, und es war erstaunlich. Ich kann Index 1,5 Millionen Dokumente in etwa einer Minute auf meinem MacBook, und noch schneller auf dem Server. Ich verwende Sphinx auch Suche nach Orten in bestimmten Breiten und Längen zu begrenzen, und es ist sehr schnell. Auch, wie Ergebnisse sortiert werden, ist sehr modifizierbar. Einfach & Setup zu installieren, wenn Sie ein Tutorial oder zwei lesen. Fast 1,0-Status, aber ihre Release Candidates wurden rock solid.

Lucene / Solr erscheint mehr vorgestellten und mit längeren Jahren im Geschäft und eine viel stärkeren User-Community zu sein. imho wenn Sie vorbei an den ersten Setup-Probleme zu bekommen scheint, als einige konfrontiert zu haben (wir nicht), dann würde ich sagen, Lucene / Solr die beste Wahl ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top