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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...