栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 前沿技术 > 大数据 > 大数据系统

Elasticsearch的Java客户端--文档操作--更新文档

大数据系统 更新时间:发布时间: 百科书网 趣学号

官方文档:

步骤
public static void main(String[] args) throws IOException {
        // 1.创建客户端
        RestClientBuilder clientBuilder = RestClient.builder(new HttpHost("127.0.0.1", 9200, "http"));
        RestHighLevelClient client = new RestHighLevelClient(clientBuilder);

        // 2.创建请求,指定文档的索引名称和id
        UpdateRequest request = new UpdateRequest("posts", "1");

        // 3.要更新的文档
        String jsonString = "{" +
                ""updated":"2017-01-01"," +
                ""reason":"daily update"" +
                "}";
        // 文档也可以以Map对象的形式提交,具体请参考 API
        request.doc(jsonString, XContentType.JSON);

        // 4.执行请求,返回响应
        UpdateResponse response = client.update(request, RequestOptions.DEFAULT);

        String id = response.getId();
        String index = response.getIndex();
        GetResult getResult = response.getGetResult();
        boolean exists = getResult.isExists();//文档是否存在

        // 5.关闭客户端
        client.close();
    }

上面更新文档的方式被称为提供部分文档的更新,ES客户端还支持一种脚本方式的更新

脚本方式
public static void main(String[] args) throws IOException {
        // 1.创建客户端
        RestClientBuilder clientBuilder = RestClient.builder(new HttpHost("127.0.0.1", 9200, "http"));
        RestHighLevelClient client = new RestHighLevelClient(clientBuilder);

        // 2.创建请求,指定文档的索引名称和id
        UpdateRequest request = new UpdateRequest("posts", "1");

        // 3.要更新的文档
        // 脚本执行时的参数
        HashMap parameters = new HashMap<>();
        parameters.put("count", 4);
        // 创建脚本
        script inline = new script(scriptType.INLINE, "painless",
                "ctx._source.field += params.count", parameters);
        request.script(inline);

        // 4.执行请求,返回响应
        UpdateResponse response = client.update(request, RequestOptions.DEFAULT);

        String id = response.getId();
        String index = response.getIndex();
        GetResult getResult = response.getGetResult();
        boolean exists = getResult.isExists();//文档是否存在

        // 5.关闭客户端
        client.close();
    }
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/280862.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号