2016-12-01 5 views
1

Ich habe einen Anwendungsfall für Lucene, in dem die erforderlichen Suchtypen sehr einfach sind. Ich werde wahrscheinlich die DOCS_ONLY-Indizierung ohne gespeicherte Felder oder komplizierte Add-Ons verwenden. Die Dokumente sind unstrukturierter englischer Text.Lucene für Komprimierungsverhältnis optimieren

Für diesen Anwendungsfall ist das wichtigste zu optimierende Element die Komprimierungsrate der Originaldokumente zur Größe des Index auf der Festplatte. Der Lucene-Index sollte so klein wie möglich sein, selbst auf Kosten einer erhöhten Such- und Aktualisierungslatenz.

Ich frage mich, wie ich Lucene (jede Version) konfigurieren sollte, um dies zu erreichen. Insbesondere welcher Codec sollte verwendet werden? Gibt es einen, der die Komprimierung über die Suchgeschwindigkeit betont? Gibt es noch andere Einstellungen, die ich optimieren kann, um die Komprimierung der Buchungsliste zu optimieren?

tl; dr: Für die Indexierung von DOCS_ONLY in Lucene, wie kann ich den Index so klein wie möglich machen?

Antwort

2

Im Allgemeinen ist die Schlüsselidee zur Verringerung der Indexgröße: - Speichern Sie so wenig wie möglich, indexieren Sie so wenig wie möglich.

Wenige Fragen, die zuerst kommen, bevor Sie eine richtige Antwort auf Ihre Frage erhalten. Zum Beispiel, wie groß ist Ihr Index und wie viel erwarten Sie, dass er wächst? Ich frage das, weil es wahrscheinlich nicht Ihre Zeit wert ist zu versuchen, die Indexgröße unter einen bestimmten Schwellenwert zu reduzieren.

ich vorher gesehen haben, Menschen zu reduzieren bis zu 40% -50% Indexgröße von SimpleAnalyzer mit den Dokumenten in Index zu schreiben, anstatt mit StandardAnalyzer (was mehr Speicher dauert in der Regel), aber dass die Suchleistung beeinflusst. Sie haben in Ihrem Beitrag erwähnt, dass Sie bereit sind, die Suchzeit zu erhöhen, aber sind Sie bereit, die Suchleistung zu opfern? Dies ist eine sehr wichtige Frage. Es lohnt sich nicht, die Größe des Index zu reduzieren, wenn Sie bereits einen Schwellenwert erreicht haben!

Es gibt noch andere Faktoren, die ich gesehen habe, wie Menschen ihre Größe ändern. Zum Beispiel, nach den Dokumenten speichern Sie ein Byte pro Dokument im Index. Sogar manchmal sagen Leute, um numerische Daten zu komprimieren (ich habe mich selbst nie überprüft), kann die Basis der Zahl geändert werden, die im Index indiziert/gespeichert wird.

Darüber hinaus denke ich, dass diese beiden folgenden Beiträge in SO hilfreich für Sie sein werden.

(1) SOLR index size reduction (2) How to reduce the size of a generated Lucene/Solr index?

Sie können diese post lesen.

+0

Die genaue Größe ist zu diesem Zeitpunkt schwer zu sagen, aber in Bezug auf die Größe des Rohdokuments 100gb + liegt nicht außerhalb der Möglichkeiten. Updates und Löschungen werden nicht sehr oft vorkommen. – pg1989