Frage

Ich möchte eine Liste aller Wörter in einem Lucene-Index erhalten, die mit einem bestimmten Präfix beginnen. Ich habe nach einer Möglichkeit gesucht, die Bedingungen in dem Index (Ich brauche die Bedingungen, ich über die Dokumente nicht kümmere sie sind aus) abzufragen, aber ohne Erfolg. Irgendwelche Ideen?

War es hilfreich?

Lösung

Verstanden! FilteredTermEnum Unterklassen (FuzzyTermEnum, RegexTermEnum, WildcardTermEnum) tun genau das, was ich brauche.

Hier ist ein kleines Beispiel:

FSDirectory dir = FSDirectory.open(new File("index"));
IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(),
    true, new IndexWriter.MaxFieldLength(20));
IndexReader reader = IndexReader.open(dir);

Document doc = new Document();
doc.add(new Field(
    "text",
    "Life #consists not in #holding good cards, but in playing those you hold well.",
    Field.Store.NO, Field.Index.ANALYZED));
writer.addDocument(doc);
writer.close();

WildcardTermEnum tagsEnum = new WildcardTermEnum(reader, new Term("text", "#*"));
do {
    System.out.println(tagsEnum.term());
} while (tagsEnum.next());
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top