2016-10-26 57 views
0

我試圖在this答案中提供的方法對我的elasticsearch索引運行update by query。這是我一直在試圖運行查詢:通過elasticsearch中的查詢更新

curl -XPOST 'localhost:9200/my_index/_update_by_query' -d ' 
{ 
    "query":{ 
    "match":{ 
     "latest_uuid":"d56ffe2095f511e6bcdd0acbdf0298e3" 
    } 
    }, 
    "script" : "ctx._source.is_in_stock = \"false\";" 
}' 

但我不斷收到以下錯誤:

{ 
    "error": { 
     "root_cause": [ 
      { 
       "type": "class_cast_exception", 
       "reason": "java.lang.String cannot be cast to java.util.Map" 
      } 
     ], 
     "type": "class_cast_exception", 
     "reason": "java.lang.String cannot be cast to java.util.Map" 
    }, 
    "status": 500 
} 

什麼我錯在這裏做什麼?

+0

嘗試「_update_by_query?is_in_stock = false」並刪除腳本行,以查看問題是否爲腳本 –

回答

1

找到解決方案。

原來,我不得不使用下面的腳本:

"script":{"inline":"ctx._source.is_in_stock = false"} 
0

我想問題可能是\「假\」(字符串值),誰不希望被蒙上。

curl -XPOST 'localhost:9200/my_index/_update_by_query' -d ' 
{ 
    "query":{ 
    "match":{ 
     "latest_uuid":"d56ffe2095f511e6bcdd0acbdf0298e3" 
    } 
    }, 
    "script" : "ctx._source.is_in_stock = false;" 
}' 

您可以先試試。等待您的反饋! :)

+1

嗨,我發現問題並添加了相應的答案。謝謝您的幫助! :) –

+0

是的,我看到了,我們在同一時間發佈,GGWP! –

相關問題