微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Lucene中所有索引文档的每字段术语频率

如何解决Lucene中所有索引文档的每字段术语频率

| 我正在寻找一种在Lucene的类似字段中查找频率术语的方法。 假设我的字段是给定文档的以下字段: 文件1: / movie / actor / name0:汤姆 / movie / actor / name1:汤姆汤姆 / movie / actor / name2:汤姆汤姆汤姆 / movie / actor / nickname0:汤姆汤姆汤姆 / movie / actor / nickname1:汤姆汤姆 文件2: / movie / actor / name0:汤姆汤姆汤姆 / movie / actor / name1:汤姆 / movie / actor / nickname0:汤姆 文件3: / movie / actor / name0:汤姆 / movie / actor / nickname0:汤姆汤姆 / movie / actor / nickname1:汤姆汤姆汤姆 我想要以下输出: / movie / actor / name:16(所有nameX类型的总和) / movie / actor / nickname:11(与上述算法相同)。 我有一种方法可以有效地遍历所有的nicknameX和nameX,所以我在那里不需要帮助。我需要寻找频率一词的帮助。 现在,对于给定的字段(例如/ movie / actor / name),我首先创建一个新的termdocs,然后遍历/ movie / actor / name0,...,/ movie / actor / namen,并使用第一个字段名和给定的字段值(在上面的示例中,字段值为\“ tom \”),将termdocs的术语设置为该术语,并遍历每个文档计算freq() 明确地(针对一个字段):
TermDocs td = is.getIndexReader().termDocs();
for(int i=tmp2; i<=tmp; i++){
      Term thisterm = new Term(distinctf[i],fv);
      td.seek(thisterm);
      while(td.next()){ //loop through <document,frequency> enumeration (all docs in collection)
          sum+=td.freq();
      }
  }
return sum;
unique [i]是第i个不重复字段(例如/ movie / actor / namei) 谢谢!     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。