使用elasticsearch,我在一个通常有大量文本的字段上搜索索引,我只想知道每个文档匹配查询的次数。有人知道这样做的好方法吗?如果可能的话,我想通过得分值来做。例如,如果我搜索了#34; fox"在快速的棕色狐狸身上跳过懒惰的狐狸"我得到的东西包括:
" _score" :2.0
答案 0 :(得分:0)
默认的评分模型也将此考虑到图片中,但这不是唯一的帐户。 您正在寻找的是术语频率。 默认评分模型基于TF-IDF(术语频率和逆文档频率)以及字段长度。 您可以阅读更多相关信息here。
现在回到您的要求,您可以使用scripting module和function score query
{
"query": {
"function_score": {
"query": {
"match": {
"field": "fox"
}
},
"boost_mode": "replace",
"functions": [
{
"script_score": {
"script": "_index['field']['fox'].tf()"
}
}
]
}
}
}