计算SOLR索引中单词的总频率

时间:2014-04-29 17:40:09

标签: solr word-frequency

如果我在SOLR索引中搜索单词,我会得到包含该单词的文档的文档计数,但如果该单词在文档中包含的次数较多,则每个文档的总计数仍为1。

我需要为每个返回的文档计算他们在字段中搜索到的单词的次数。

我阅读Word frequency in SolrSOLR term frequency并启用了术语向量组件,但它不起作用。

我以这种方式配置了我的字段:

<field name="text_text" type="textgen" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" />

但是,如果我进行以下查询:

http://localhost:8888/solr/sources/select?q=text_text%3A%22Peter+Pan%22&fl=text_text&wt=json&indent=true&tv.tf

我没有任何统计数据:

{
  "responseHeader":{
    "status":0,
    "QTime":1,
    "params":{
      "fl":"text_text",
      "tv.tf":"",
      "indent":"true",
      "q":"text_text:\"Peter Pan\"",
      "wt":"json"}},
  "response":{"numFound":12,"start":0,"docs":[
      {
        "text_text":"Text of the document"},
      {
        "text_text":"Text of the document"},
      {
        "text_text":"Text of the document"},
      {
        "text_text":"Text of the document"},
      {
        "text_text":"Text of the document"},
      {
        "text_text":"Text of the document"},
      {
        "text_text":"Text of the document"},
      {
        "text_text":"Text of the document"}]
  }}

我看到“numFound”值为12,但在所有12个文档中包含“Peter Pan”字样20次。

你能帮我找一下我错的地方吗?

非常感谢!

2 个答案:

答案 0 :(得分:0)

我认为首先你的例子是行不通的,因为“彼得潘”不是一个词或术语 - 这是一个短语。对于找到短语频率的挑战的一个很好的讨论在这里:

termfreq for a phrase

我会用一个单词而不是短语重新尝试你的例子,看看它是否适合你。

答案 1 :(得分:0)

尝试在响应中创建术语频率的这种结构:

http://localhost:8983/solr/core/select?indent=on&q=solr&fl=field,termfreq("field","term")&wt=json