我已经用Lucene索引了一组文本文件。另外,我已经存储了TermVectors。但是我想知道O(1)中某些文档中某些术语的出现频率。可能吗?

我的意思是,是否有一个函数(术语词,整数docNum)返回文档docNum中词的频率?

最佳答案

没有现成的功能,您必须编写一些代码。首先使用IndexReader.termDocs(Term)。这将为您提供一个TermDocs实例,该实例通常是Lucene的类似Cursor的对象。现在调用TermDocs.skipTo(int),然后调用TermDocs.next(),然后调用TermDocs.freq()。如果您一开始就确定您的文件中包含您的用语,就是这样。否则,请在每个步骤之后检查是否可以继续。 Javadocs编写精良,涉及每个步骤。

10-06 09:24