pmi*_*hev 6 elasticsearch elasticsearch-painless
我正在将 Elasticsearch 脚本从 Groovy 转换为 Painless。该脚本接受一个参数,该参数可以是整数或可转换为整数的字符串(即可以是123或"123")。
在 Groovy 中,执行my_val.toLong()可以很好地转换两者,但该方法在 Painless 中不可用。
是否有任何替代语法可以在 Painless 中执行相同的操作?
我尝试使用(long) my_var进行显式转换,但我得到java.lang.String无法转换为 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()
"""
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于我可以看到这个问题仍然引起一些兴趣,最终我能找到的最好方法是:
Long.parseLong(params.my_val1.toString()) == Long.parseLong(params.my_val2.toString())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8707 次 |
| 最近记录: |