2010-12-30 7 views
6

Ich denke darüber nach, Lucene in meinem Projekt zu verwenden, um sehr schnelle Suchen durchzuführen. Ich weiß, dass Lucene eigene Dateien erstellt, in denen alle Daten/Indizes gespeichert werden.Was sind die Nachteile von Lucene?

Ich frage mich, was sind die Schattenseiten der Verwendung von Lucene? Sind da irgendwelche?

Müssen Sie irgendetwas mit der Datei-Datenbank machen oder funktioniert es großartig ohne Hilfe von außen?

P.S. Ich weiß, dass es auch Lucene .NET gibt und ich wette, dass dort dieselben Regeln gelten.

Antwort

9

Lucene ist großartig. Sehr flexibel, überraschend schnell und eine solide API. Die Mailingliste ist sehr hilfreich.

Die Dateien benötigen ein wenig Wartung, aber es kann mit bereitgestellten Tools getan werden. Von grundlegender Bedeutung ist die gelegentliche Optimierung des Indexes, dies wird jedoch nur benötigt, wenn Sie den Index regelmäßig aktualisieren.

Ich würde vorschlagen, in Solr auch zu suchen. Es ist im Wesentlichen eine Webapp und Tools, die auf Lucene sitzen. Es erleichtert die Erstellung neuer Indizes, die Optimierung und die Master/Slave-Synchronisierung für einen skalierbaren Suchcluster. Dies hängt natürlich von Ihren tatsächlichen Bedürfnissen ab.

Für ein persönliches Beispiel, pflegte ich, um einen Suchindex für eine große, bekannte, Gaming-Firma zu pflegen. Der Index hatte Hunderttausende Einträge in mehreren Sprachen (weltweit) und Gebietsschemata. Es hat jeden Tag eine Million Suchvorgänge auf dem Cluster durchgeführt, ohne dass es eine CPU und eine vernünftige Speichermenge gab. Es wurde Last auf etwa 300 Millionen Suchen pro Tag getestet, auf der Hardware, die wir hatten, und würde linear skalieren, indem einfach weitere Boxen zum Cluser hinzugefügt wurden. Solr und Lucene waren die wichtigsten Werkzeuge dafür.

Wenn ich hatte, um einen Nachteil zu geben, wäre es Lernkurve. Es ist ziemlich viel zu verstehen, und wenn Sie eine wirklich optimierte Lösung wollen, müssen Sie es gut wissen. Dies geschieht jedoch mit jedem von Ihnen verwendeten Suchwerkzeug, wenn Sie es selbst tun. Die Dokumentation, die Wikis und die Mailingliste bieten eine Menge Unterstützung für diesen Hochlauf.

2

Ich habe begrenzte Erfahrung mit Lucene, bis jetzt war es aber großartig. Die Nachteile kann ich sehen, sind vor allem aus betriebswirtschaftlicher Sicht:

  1. Ich muss aktiv den Fall für mit Lucene zu meinem Chef machen, indem Standard wir SQL Server verwenden würden. Um den Schalter zu machen, muss ich ohne einen Zweifel beweisen, dass Lucene besser (und nicht gerade ähnlich) für den Gebrauch Fall tut, den wir haben. Ich denke, dieser geht zu dem "Niemand wurde jemals für Kauf IBM Ausrüstung" gefeuert.
  2. Laufende Entwicklung/Bugfixes für Lucene.Net insbesondere sind fraglich bei dieser Punkt, wieder ein zäherer Verkauf ohne dies. Ich hoffe die Community kann sammeln.
2

Lucene macht gute Arbeit für many people and companies. Ihre Laufleistung kann jedoch variieren. Ein mögliches Problem ist das Scoring-Modell von Lucene - Es verwendet eine Kombination aus TF/IDF und booleschem Scoring, während andere IR-Tools den probabilistischen BM25 verwenden, der stärker ist. Sie können jedoch seit Jahren mit Lucene arbeiten und die Suchergebnisse wären gut genug. Auch die Skalierung auf viele Millionen Dokumente ist nicht einfach.

Es läuft auf Ihren speziellen Anwendungsfall hinaus. Am besten starten Sie einen Test mit Solr und sehen, ob es scheint, um Ihre Bedürfnisse zu erfüllen.

2

Lucene haben Skalierbarkeitsproblem. Seine Leistung verschlechtert sich, wenn der Index größer und größer wird.

+1

Das ist kein spezifisches Lucene-Problem, das gleiche gilt für jedes Indizierungssystem. – bdargan