Elasticsearch 无痛脚本错误
2022-09-02 00:33:49
我没有Java经验,我有一个关于弹性搜索无痛脚本语言的问题。(这个名字无痛,它没有很好地选择)。
对于以下代码,我得到错误:
{"lang": "painless",
"inline": "float price = doc['newPrice'] > 0.0 ? doc['price'] / doc['newPrice'] : 0; _score * params.constant * price",
"params": {"constant": 1.2}}}}
无法将 [>] 操作应用于类型 [org.elasticsearch.index.fielddata.ScriptDocValues.Doubles] 和 [java.lang.Double]。
我绑定将其转换为浮动,(浮动)doc['newPrice']>0,具有相同的错误。
然后我改成了"Double price = ((Double)doc['discountPrice'] > 0.0) ? doc['price'] / doc['discountPrice'] : 0; _score * params.constant * price",
并收到:
“无法从 [双倍] 施法到 [双倍]。
有人可以帮助我,尝试了很多类似错误的变化。该死的无痛语言...