0
我寫了使用Groovy語言(datediff.groovy
)這個腳本:ElasticSearch:Groovy腳本無痛
(doc[secondDateField].date.millis - doc[firstDateField].date.millis)/3600000
它工作正常。不過,我打算將這些腳本移至painless
(datediff.painless
)。不過,我對straup獲得編譯錯誤:
[esn1] failed to load/compile script [datediff]: {
"type" : "script_exception",
"reason" : "compile error",
"caused_by" : {
"type" : "illegal_argument_exception",
"reason" : "Variable [secondDateField] is not defined."
},
"script_stack" : [
"(doc[secondDateField].date.mil ...",
" ^---- HERE"
],
"script" : "(doc[secondDateField].date.millis - doc[firstDateField].date.millis)/3600000",
"lang" : "painless"
}
它告訴我secondDateField
沒有定義。你能幫我解決嗎?
secondDateField
不是名爲secondDateField
的字段。這是一個腳本參數(如firstDateField
),並且doc [參數]應該訪問parameter
內容中設置的字段。如果secondDateField = "fieldOne"
,doc[secondDateField] => doc["fieldOne"]
...
'secondDateField'不是名爲'secondDateField'的字段。這是一個參數化腳本,它接收兩個參數,doc應該訪問'secondDateField'中設置的字段。如果'secondDateField =「fieldOne」','doc [secondDateField] => doc [「fieldOne」]' – Jordi
不知道如何無痛處理參數化腳本。對於那個很抱歉! – Kulasangar