使用 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"
}