我对弹性搜索非常陌生,我对如何在每个处理的文档中检索匹配术语的数量感兴趣。 我知道我可以获得一个分数,但我希望获得每个文档的匹配数量,是否可能?
在mguillermin回答后编辑
我期待的是查询我的索引,并同时接收每个文档结果的tf,而不是简单地找到单个文档的术语频率
由于
答案 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)"
}
]
}