查找Lucene索引的术语列表

查找Lucene索引的术语列表,lucene,Lucene,是否可以将Lucene索引中所有术语的列表提取为字符串列表?我在文档中找不到该功能。谢谢 Lucene 3: C#: 爪哇: IndexReader indexReader = IndexReader.open(path); TermEnum termEnum = indexReader.terms(); while (termEnum.next()) { Term term = termEnum.term(); System.out.println(term.text

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

Lucene 3:

  • C#:

  • 爪哇:

    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(特定字段的所有术语):

  • Python:

在Lucene 4(和5)中:

编辑:

现在看来这是“正确”的方法(Lucene 6及以上):


假设字段名是“字段”。在Jackrabbit中,它是“全文”。@RobAu
SlowCompositeReaderWrapper
现在在6.1.0中不推荐使用。你知道如何在6.4.1中做到这一点吗?Lucene团队似乎养成了一个非常坏的习惯,在不更新Javadoc的情况下拒绝使用新的方式或方法!
 Terms terms = SlowCompositeReaderWrapper.wrap(directoryReader).terms("field"); 
LuceneDictionary ld = new LuceneDictionary( indexReader, "field" );
BytesRefIterator iterator = ld.getWordsIterator();
BytesRef byteRef = null;
while ( ( byteRef = iterator.next() ) != null )
{
    String term = byteRef.utf8ToString();
}