通过Lucene索引查找术语列表

10

是否可以将Lucene索引中的所有术语提取为字符串列表?我在文档中没有找到这个功能。谢谢!

2个回答

17

在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();
}

1
假设字段名称为 "field"。在 Jackrabbit 中它是 "_:FULLTEXT" - user207421
@RobAu SlowCompositeReaderWrapper在6.1.0中已被弃用。您知道如何在6.4.1中处理吗? - Sundeep
4
Lucene团队似乎有一个很不好的习惯,即在弃用一些东西时并没有更新Javadoc以引导人们使用新的方式或方法! - Robert

12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接