Elasticsearch:文档得分等于字段中的命中数
Elasticsearch: Having document score equal number of hits in field
我使用 elasticsearch 通过索引搜索通常包含大量文本的字段,我只想知道每个文档的查询匹配次数。任何人都知道这样做的好方法吗?如果可能的话,我想通过分值来做到这一点。例如,如果我在 "the quick brown fox jumped over the lazy fox" 上搜索 "fox",我会得到包含以下内容的内容:
“_分数”:2.0
默认评分模型也将此计入图片,但这并不是唯一的计分方式。
您正在寻找的是术语频率。
默认评分模型基于 TF-IDF(词频和逆文档频率)以及字段长度。
您可以阅读更多相关信息 here。
现在回到您的要求,您可以使用 scripting module and function score query
{
"query": {
"function_score": {
"query": {
"match": {
"field": "fox"
}
},
"boost_mode": "replace",
"functions": [
{
"script_score": {
"script": "_index['field']['fox'].tf()"
}
}
]
}
}
}
我使用 elasticsearch 通过索引搜索通常包含大量文本的字段,我只想知道每个文档的查询匹配次数。任何人都知道这样做的好方法吗?如果可能的话,我想通过分值来做到这一点。例如,如果我在 "the quick brown fox jumped over the lazy fox" 上搜索 "fox",我会得到包含以下内容的内容:
“_分数”:2.0
默认评分模型也将此计入图片,但这并不是唯一的计分方式。 您正在寻找的是术语频率。 默认评分模型基于 TF-IDF(词频和逆文档频率)以及字段长度。 您可以阅读更多相关信息 here。
现在回到您的要求,您可以使用 scripting module and function score query
{
"query": {
"function_score": {
"query": {
"match": {
"field": "fox"
}
},
"boost_mode": "replace",
"functions": [
{
"script_score": {
"script": "_index['field']['fox'].tf()"
}
}
]
}
}
}