2016-04-28 2 views
0

Nur immer mit Lucene in dem Griff (derzeit 4.6 verwenden).Gibt es eine optimale Möglichkeit, einen nicht defekten Lucene-Index in einem Verzeichnis zu erkennen?

Ein Lucene Index besteht aus verschiedenen Dateien (zunächst etwa 5, kann aber weniger sein) in einem Verzeichnis. Sie haben ziemlich kryptische Namen wie "_0.fdt", etc.

Ich frage mich nur, ob es eine allgemeine Möglichkeit gibt, den Inhalt eines Verzeichnisses zu testen, um festzustellen, ob es eine nicht-korrupte und daher nutzbare Lucene ist Index? Vielleicht unter der Annahme, dass v4.6 die einzige mögliche Version ist, mit der man sich möglicherweise befassen muss ...

Der Punkt ist wirklich, dass wenn ein Index gesehen werden kann, und wenn festgestellt wird, dass er erstellt wurde oder vor relativ kurzer Zeit aktualisiert, könnte ein Algorithmus feststellen, dass es wahrscheinlich nicht notwendig ist, den Index neu zu erstellen ... wohingegen, wenn er unlesbar/unbrauchbar ist, er vollständig gelöscht und neu aufgebaut werden muss.

Jeder bekam eine Ahnung, was ich bin rabbitting auf?

Antwort

2

CheckIndex enthält viele Werkzeuge, um Informationen über die Gesundheit des Index und Reparatursegmente zu bekommen. Die Klasse kann auch als Kommandozeilen-Tool ausgeführt werden, wenn das in Ihrem Fall praktischer ist, als Code zu schreiben.

Und natürlich den Versuch, eine Indexwriter öffnen sollte ein CorruptIndexException werfen, wenn der Index beschädigt ist. Sie könnten einfach die Ausnahme behandeln. Genau

+0

. Die "optimale" Möglichkeit, die Verfügbarkeit einer Ressource festzustellen, besteht darin, einfach zu versuchen, sie zu verwenden, und sich mit den Ausnahmen zu befassen, wenn sie auftreten. – EJP

+0

Vielen Dank. –

Verwandte Themen