Elasticsearch脚本查询无痛指数函数
使用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 }
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: