Elasticsearch脚本查询无痛指数函数

Elasticsearch脚本查询无痛指数函数,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,使用Elasticsearch和无痛搜索,有没有实现指数函数的方法?我好像什么也找不到。我有这样的东西 bdy = { "from" : 0, "size" : 10, "query": { "function_score": { "query": { "bool": { "must": must_terms }

使用Elasticsearch和无痛搜索,有没有实现指数函数的方法?我好像什么也找不到。我有这样的东西

bdy = {
    "from" : 0,
    "size" : 10,
    "query": {
        "function_score": {
            "query": {
                "bool": {
                    "must": must_terms
                }
            },
            "script_score": {
                "script": {
                "lang": "expression",
                "source": "doc['release_year'].value"
              }
            }
        }
    }
}
"source": "Math.exponential(1/doc['release_year'].value)"
我想在源代码字段中添加一些更复杂的数学,如下所示

bdy = {
    "from" : 0,
    "size" : 10,
    "query": {
        "function_score": {
            "query": {
                "bool": {
                    "must": must_terms
                }
            },
            "script_score": {
                "script": {
                "lang": "expression",
                "source": "doc['release_year'].value"
              }
            }
        }
    }
}
"source": "Math.exponential(1/doc['release_year'].value)"
可能吗?或者在elasticsearch中是否有其他脚本语言可以实现这一点

更新

看起来我可以用

"lang": "expression"
"source": "_score/10 + 1/(1+ exp(-(doc['release_year'].value*a)))"


如果有人有其他选择,那就太酷了。

你可以用
Math.exp()


请在此处查看完整的无痛API:

您可以使用与
Math.exp()相同的无痛方式来完成此操作。

请参见此处的完整无痛API: