0
我有以下文件:腳本場數數組長度
{
"likes": {
"data": [
{
"name": "a"
},
{
"name": "b"
},
{
"name": "c"
}
]
}
}
我試圖運行update_by_query
,將增加一個名爲「LIKE_COUNT」字段的數組項數內likes.data
重要的是要知道,並非我的所有文檔都有likes.data
對象。
我試圖這樣:
POST /facebook/post/_update_by_query
{
"script": {
"inline": "if (ctx._source.likes != '') { ctx._source.like_count = ctx._source.likes.data.length }",
"lang": "painless"
}
}
但是,讓此錯誤消息:
{
"type": "script_exception",
"reason": "runtime error",
"script_stack": [
"ctx._source.like_count = ctx._source.likes.data.length }",
" ^---- HERE"
],
"script": "if (ctx._source.likes != '') { ctx._source.like_count = ctx._source.likes.data.length }",
"lang": "painless"
}
您是否試過'size()'而不是'length'? – Val
是的,得到相同的錯誤信息。如果我更新一個單獨的文檔(使用'.length'),但是當我嘗試運行'update_by_query'時,我得到這個錯誤信息。我懷疑這是因爲一些文檔沒有'likes'對象,但我有'if'語句來處理這個對象。 –
我認爲你的情況'ctx._source.likes!='''應該讀爲'ctx._source.likes!= null' – Val