我正在将 Elasticsearch 脚本从 Groovy 转换为 Painless。该脚本接受一个参数,该参数可以是整数或可转换为整数的字符串(即可以是123或"123")。
在 Groovy 中,执行my_val.toLong()转换两者都很好,但该方法在 Painless 中不可用。
是否有任何替代语法可以在 Painless 中做同样的事情?
我尝试使用(long) my_var进行显式转换,但我得到java.lang.String cannot be cast to java.lang.Number
简而言之,我想在 Painless 中执行以下操作并最终实现:
GET _search
{
"script_fields": {
"test": {
"script": {
"lang": "groovy",
"params": {
"my_val1": "123",
"my_val2": 123
},
"source": """
my_val1.toLong() == my_val2.toLong()
"""
}
}
}
}