ルーセン:特定のプレフィックスで始まるすべての単語を見つけます
-
04-10-2019 - |
質問
特定のプレフィックスから始まるルーセンインデックスのすべての単語のリストを取得したいと思います。私はインデックス内の用語を照会する方法を探していました(私は用語が必要です、私は彼らが出身の文書については気にしません)が、成功することはありません。何か案は?
解決
とった! 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());
所属していません StackOverflow