我是靠谱客的博主 善良花卷,这篇文章主要介绍【ES更新嵌套数组】,现在分享给大家,希望可以做个参考。

ES无法直接更新数组的,需要转成Map
直接上代码

// ES无法更新对象数组,需要转成 Map
        List<Map<String, Object>> result = Lists.newArrayList();
        Map<String, Object> map = Maps.newHashMap();
        Class<?> clazz;
        // 使用反射动态将Set中的属性值放入Map中
        for (Object obj : collect) {
            clazz = obj.getClass();
            // 遍历当前对象的属性值
            for (Field field : clazz.getDeclaredFields()) {
                field.setAccessible(true);
                String name = field.getName();
                Object value = null;
                try {
                    value = field.get(obj);
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
                map.put(name, value);
            }
            result.add(map);
            map = Maps.newHashMap();
        }
        map.put("brandName", result);
       ```

// 最后直接更新就行
UpdateRequest updateRequest = new UpdateRequest(indexValue, String.valueOf(id)).doc(updateMap).upsert(map);

最后

以上就是善良花卷最近收集整理的关于【ES更新嵌套数组】的全部内容,更多相关【ES更新嵌套数组】内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部