从多个文档添加术语频率(Solr)

时间:2015-01-09 22:50:53

标签: solr lucene

如何使用Solr数学运算或函数查询为查询返回的所有文档添加每个单词的术语频率(tf)值?

我知道有一些方法可以使用java迭代地添加术语向量,但如果索引很大或内存有限,则可能需要很长时间。 Solr具有原始术语频率值和添加正常字段值的能力,所以我认为它应该能够添加术语频率,我只是不知道如何。

另外,我不知道这些词是提前的,每个文件可以有任何单词组合。

对于此doc文档结果:

"docs": [
  {
    "id": 0,
    "content": [
      "FOO FOO BAR"
    ],
  },
  {
    "id": 0,
    "content": [
      "FOO BAR"
    ],
  },
]},"termVectors": [
"uniqueKeyFieldName",
[
  "0",
  [
    "FOO",
    [
      "tf",
      2
    ],
    "BAR",
    [
      "tf",
      1
    ],
],"1",
  [
    "FOO",
    [
      "tf",
      1
    ],
    "BAR",
    [
      "tf",
      1]]}

我想要这样的事情:

{"frequencies":{
"FOO" : 3
"BAR" : 2
}


更新: 我现在对使用Java的编程方法没问题,因为我认为SOLR不支持开箱即用的这样的操作。

2 个答案:

答案 0 :(得分:0)

totaltermfreq or ttf提供术语在索引中出现的总次数。

答案 1 :(得分:0)

您是否考虑过" facet"功能?