解决:elasticsearch 更新报错:The number of object passed must be even but was [1]
生活随笔
收集整理的這篇文章主要介紹了
解决:elasticsearch 更新报错:The number of object passed must be even but was [1]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
1. 錯誤的代碼寫法:
@Autowiredprivate ElasticsearchOperations esOperations; public void updateAxxxData(List<AxxxModel> axxxs) {for (AxxxModel al : axxxs) {UpdateQuery update = new UpdateQuery();update.setIndexName("coll_axxxm_sxxxxxxx_es");update.setType("coll_axxxm_sxxxxxxx_es");UpdateRequest request = new UpdateRequest(); request.doc(al);update.setUpdateRequest(request);esOperations.update(update);}}2. 運行后報錯:
? java.lang.IllegalArgumentException: The number of object passed must be even but was [1]3. 報錯行為:? request.doc(al);
4. 把對象改為用Map,循環中代碼調整為:
UpdateQuery update = new UpdateQuery();update.setIndexName("coll_axxxm_sxxxxxxx_es");update.setType("coll_axxxm_sxxxxxxx_es");UpdateRequest request = new UpdateRequest();Map<String, Object> alMap = Maps.newHashMap();alMap.put("xxx_time", al.getXxx_time());alMap.put("xxx_id", al.getXxx_id());alMap.put("fxxx_id", al.getFxxx_id());request.doc(alMap);update.setUpdateRequest(request);esOperations.update(update);5. 以上報錯即消失。
?
總結
以上是生活随笔為你收集整理的解决:elasticsearch 更新报错:The number of object passed must be even but was [1]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c#中mysql远程连接方法及实例
- 下一篇: mysql中数据库覆盖导入的几种方式