java - 文档中术语的出现频率

标签 java lucene

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

我的意思是,是否有一个函数(Term term, Integer docNum)返回term的频率在文档docNum中?

最佳答案

没有现成的功能,您必须编写一些代码。首先使用 IndexReader.termDocs(Term)。这将为您提供一个 TermDocs 实例,它通常是 Lucene 的一个类似 Cursor 的对象。现在调用 TermDocs.skipTo(int),然后调用 TermDocs.next(),然后调用 TermDocs.freq()。如果您一开始就确定您的文档包含您的术语,那么就是这样;否则在每个步骤后检查是否可以继续。 Javadoc 对于所涉及的每个步骤都编写得很好。

关于java - 文档中术语的出现频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9659569/

相关文章:

elasticsearch - 是否可以取消删除 Elasticsearch 中的文档?

c# - Lucene.net 和部分 "starts with"词组搜索

Solr-以所有顺序包含所有术语的结果

javascript - 与客户端打印机通讯并打印A4纸

java - Tomcat 自动重新加载无法更改上下文中的类文件

java - 使用 jersey 2.0 时出现 NoSuchMethodError

java - 为什么在有界通配符泛型中不能有多个接口(interface)?

java - 在空对象引用上调用虚拟方法 'double android.location.Location.getLatitude()' 时出错

java - 维基百科Tokenizer Lucene

java - 为文档添加权重 Lucene 8