【发布时间】:2012-06-21 23:00:54
【问题描述】:
是否可以将 Lucene 索引中的所有术语列表提取为字符串列表?我在文档中找不到该功能。谢谢!
【问题讨论】:
标签: lucene
是否可以将 Lucene 索引中的所有术语列表提取为字符串列表?我在文档中找不到该功能。谢谢!
【问题讨论】:
标签: lucene
在 Lucene 4(和 5)中:
Terms terms = SlowCompositeReaderWrapper.wrap(directoryReader).terms("field");
编辑:
现在这似乎是“正确”的方式(Lucene 6 及更高版本):
LuceneDictionary ld = new LuceneDictionary( indexReader, "field" );
BytesRefIterator iterator = ld.getWordsIterator();
BytesRef byteRef = null;
while ( ( byteRef = iterator.next() ) != null )
{
String term = byteRef.utf8ToString();
}
【讨论】:
"field". 在 Jackrabbit 中是 "_:FULLTEXT".
SlowCompositeReaderWrapper 现在在 6.1.0 中已弃用。你知道在 6.4.1 中怎么做吗?
Lucene 3:
Java:
IndexReader indexReader = IndexReader.open(path);
TermEnum termEnum = indexReader.terms();
while (termEnum.next()) {
Term term = termEnum.term();
System.out.println(term.text());
}
termEnum.close();
indexReader.close();
Java(特定字段的所有术语):How can I get the list of unique terms from a specific field in Lucene?
【讨论】: