2

我对弹性搜索很陌生,我对如何检索每个处理的文档中匹配词的数量很感兴趣。我知道我可以得到一个分数,但我希望得到每个文档的匹配数,这可能吗?

在 mguillermin 回答后编辑

我想要的是查询我的索引,并同时接收每个文档结果的 tf,而不是简单地找到单个文档的词频

谢谢

4

1 回答 1

4

要检查单个文档,您可以使用以下方法检索此类信息explain APIhttp ://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)"
      }
   ]
}
于 2013-05-13T11:42:07.260 回答