无论才能、知识多么卓著,如果缺乏热情,则无异纸上画饼充饥,无补于事。

script_fields自定义脚本不能使用内置函数

Elasticsearch | 作者 private | 发布于2021年06月10日 | 阅读数:103

es7中.score_script中能够使用es内置函数如 decayNumericGauss,sigmoid等,为什么在script_fields不能使用
 
如下
 "script_fields": {
        "test": {
            "script": {
                "source": "decayNumericGauss(1,2,3,4,5)"
            }
        }
    }
 
会报错:
Unknown call [decayNumericGauss] with [5] arguments
 
都是script painless 且都是内置函数,为什么script_fields中不能使用,是需要设置什么,还是es目前本身就不支持
已邀请:

Charele

赞同来自:

不能用的。虽然都是用painless来解析,但是不同情况下的上下文是不一样的。
 
你用score_script查询时,上下文是"score",
当用script_fields时,上下文是"field",
不同的上下文,加载的函数是不一样的。
就像同一个学校,小学生和中学生进去,上的课是不一样的。
 
当然了,实在想用,也不是不可能,因为有源码。
 

要回复问题请先登录注册