使用 Elastic Search 修改查询分数
Modify Query Score with Elastic Search
我试图通过将 _score 乘以存储在每个文档中的单个值的平方根来修改 elasticsearch 中的搜索分数。下面是我正在使用的 JSON 查询。我哪里做错了?
{
"index": "resources",
"type": "page",
"from": "0",
"size": "20",
"body": {
"query": {
"match": {
"content": "baseball"
},
"function_score": {
"functions": [{
"script_score": {
"params": [],
"script": "_score * sqrt(page['obls'].value)"
}
}]
}
}
}
}
在此先感谢您的帮助!
如果您使用的是 1.4.X 我会使用 field value factor 函数,如下所示:
{
"query": {
"function_score": {
"query": {
"match": {
"content": "baseball"
}
},
"functions": [
{
"field_value_factor": {
"field": "obls",
"factor": 1,
"modifier": "sqrt"
}
}
]
}
},
"from": "0",
"size": "20"
}
我试图通过将 _score 乘以存储在每个文档中的单个值的平方根来修改 elasticsearch 中的搜索分数。下面是我正在使用的 JSON 查询。我哪里做错了?
{
"index": "resources",
"type": "page",
"from": "0",
"size": "20",
"body": {
"query": {
"match": {
"content": "baseball"
},
"function_score": {
"functions": [{
"script_score": {
"params": [],
"script": "_score * sqrt(page['obls'].value)"
}
}]
}
}
}
}
在此先感谢您的帮助!
如果您使用的是 1.4.X 我会使用 field value factor 函数,如下所示:
{
"query": {
"function_score": {
"query": {
"match": {
"content": "baseball"
}
},
"functions": [
{
"field_value_factor": {
"field": "obls",
"factor": 1,
"modifier": "sqrt"
}
}
]
}
},
"from": "0",
"size": "20"
}