2016-12-15 8 views
0

Ich möchte in der Suchantwort nur Dokumente mit angegebenen Doc-ID haben. In stackoverflow habe ich diese Frage gefunden (Lucene filter with docIds), aber soweit ich es verstehe, wird das zusätzliche Feld im Dokument erstellt und dann nach diesem Feld gesucht. Gibt es einen anderen Weg, damit umzugehen?Lucene: Filter Abfrage von Dokument-ID

+0

Warum möchten Sie beim Erstellen des Indexes kein zusätzliches Feld erstellen? –

+0

@WasiAhmad Ich dachte daran, Docid wiederzuverwenden, aber nach der Antwort auf meine Frage erkannte ich, dass es nicht so gut ist. –

Antwort

3

Lucenes Docids sind nur interne Schlüssel. Sie sollten sie nicht als Suchschlüssel verwenden oder für die spätere Verwendung speichern. Diese IDs können ohne Vorankündigung geändert werden. Sie werden beim Aktualisieren oder Reindizieren von Dokumenten geändert und können sich auch zu anderen Zeiten ändern, z. B. bei Segmentzusammenführungen.

Wenn Ihre Dokumente eine eindeutige Kennung haben sollen, sollten Sie diesen Schlüssel separat von der docId generieren und als Feld in Ihrem Dokument indizieren.