2
我想獲取以特定前綴開頭的Lucene索引中所有單詞的列表。我一直在尋找一種方法來查詢索引中的條款(我需要條款,我不關心它們來自的文檔),但沒有成功。 任何想法?Lucene:查找以特定前綴開頭的所有單詞
我想獲取以特定前綴開頭的Lucene索引中所有單詞的列表。我一直在尋找一種方法來查詢索引中的條款(我需要條款,我不關心它們來自的文檔),但沒有成功。 任何想法?Lucene:查找以特定前綴開頭的所有單詞
Got it! FilteredTermEnum
子類(FuzzyTermEnum
,RegexTermEnum
,WildcardTermEnum
)正是我所需要的。
這裏有一個簡單的例子:
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());