如何获取由Lucene 4.4.0创建的索引目录中的所有术语

5

我正在使用Lucene 4.4来索引我的文档,现在我想通过IndexReader获取所有的术语。在旧版本中,我使用了以下代码:

IndexReader reader = new IndexReader.open(pathIndexDirectory);
TermEnum listTerm = reader.terms();

但是在4.4版本中我无法实现这个功能。现在该怎么办?


1
我也需要它:)) - ThiepLV
1个回答

8
所以我正在使用这种方式:
IndexReader reader = IndexReader.open(ramdir)
Fields fields = MultiFields.getFields(reader);
        for (String field : fields) {
            Terms terms = fields.terms(field);
            TermsEnum termsEnum = terms.iterator(null);
            int count = 0;
            while (termsEnum.next() != null) {
                count++;
            }
            System.out.println(count);
        }

您还可以使用terms.size()来获取当前字段的术语总数,而无需执行while循环。 - airin
1
这样会不会多次计算常见术语? - raven

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