2016-03-24 2 views
0

Ich möchte einen Lucene-Index in einem Stream speichern, anstatt direkt in ein Verzeichnis. So dass ich es in was auch immer ein Stream speichern kann. Soweit ich es verstanden habe, bietet das Objekt RAMDirecory nicht wirklich einen Stream für Ein- oder Ausgabe. Das habe ich zumindest aus der Dokumentation verstanden.Speichern Sie Lucene-Index zu einem Stream und nicht zu einem Verzeichnis

Muss ich meine eigene Verzeichnis Implementierung wie StreamDirectory implementieren? Vielen Dank im Voraus.

+0

nimmt Ihr Index Updates? – AndyPook

+0

Nicht für jetzt geplant. – HankTheTank

Antwort

0

Wirklich nicht sicher, warum Sie dies tun möchten. Füllen Sie einfach den Index mit FSDirectory; Rufen Sie Optimieren auf. Sicher, es ist kein einzelner Stream, aber es ist eine kleine Anzahl von Dateien.

Wenn es eine kleine Anzahl von Dokumenten ist (< 1M) serialisieren wie Sie wollen, dann in ein RamDirectory laden?

Sie müssten Ihr eigenes Verzeichnis erstellen. Eine einfache Möglichkeit, das Dateisystem zu abstrahieren, wäre eine darunter liegende Zip-Datei. Sie könnten dann einfach die erwarteten Dateien darin abstrahieren.

+0

Ich möchte den Index auf etwas anderes als eine Festplatte speichern. wie eine Datenbank oder ein Google-Laufwerk – HankTheTank

+0

Ich denke, dass Sie für eine Menge Schmerzen binden, um dies zu tun. Und sehr schlechte Leistung. Wenn Sie die tatsächliche Anforderung erklären könnten, können wir Ihnen vielleicht einen alternativen Ansatz anbieten – AndyPook