Elasticsearch如何返回每个文档的加工术语数

时间:2013-05-09 17:04:25

标签: elasticsearch frequency

我对弹性搜索非常陌生,我对如何在每个处理的文档中检索匹配术语的数量感兴趣。 我知道我可以获得一个分数,但我希望获得每个文档的匹配数量,是否可能?

在mguillermin回答后编辑

我期待的是查询我的索引,并同时接收每个文档结果的tf,而不是简单地找到单个文档的术语频率

由于

1 个答案:

答案 0 :(得分:4)

要检查单个文档,您可以使用explain API检索此类信息:http://www.elasticsearch.org/guide/reference/api/explain/

如果您需要将此信息与查询结果一起收集,则只需将"explain": true添加到发送到_search的正文中即可。例如:

{
    "explain": true,
    "query": {
        "term": {
           "description": "test"
        }
    }
}

使用此参数,您将获得每个hit关联的_explanation数据。例如:

"_explanation": {
   "value": 1.4845161,
   "description": "fieldWeight(description:test in 63), product of:",
   "details": [
      {
         "value": 1,
         "description": "tf(termFreq(description:test)=1)"
      },
      {
         "value": 5.9380646,
         "description": "idf(docFreq=23, maxDocs=3348)"
      },
      {
         "value": 0.25,
         "description": "fieldNorm(field=description, doc=63)"
      }
   ]
}