我是靠谱客的博主 善良花卷,最近开发中收集的这篇文章主要介绍【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更新嵌套数组】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部