elasticsearch6实战教程学习笔记(九) — idea + Java实战 2 — 文档的增删改

上篇使用idea创建了一个简单的 maven工程,连接elasticsearch,并使用get方法获取了一个 document:
elasticsearch6实战教程学习笔记(八) — idea + Java实战 1 — get查询
本篇介绍elasticsearch的增、删、改。


1 增加一个文档

增加一个id为7,name为Huge,age为28的文档(因为之前没有设置mauanx的dynamic,所以可以不按字段添加文档)。代码如下:

     // 添加文档
    @Test
    public void esInsert() throws IOException {
        // 指定es集群;查看 elasticsearch.yml -- put("cluster.name",集群名称)
        Settings settings = Settings.builder().put("cluster.name","elastricsearch").build();

        // 创建访问es服务器的客户端
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddresses(new TransportAddress(InetAddress.getByName("192.168.180.235"),9300));

        // 设置参数
        XContentBuilder doc = XContentFactory.jsonBuilder()
                                .startObject()
                                .field("id","7")
                                .field("name","Huge")
                                .field("age",28)
                                .endObject();

        // 添加文档:指定索引和type、id + 设置参数
        IndexResponse response = client.prepareIndex("mauanx","user","7")
                                    .setSource(doc).get();

        // 输出操作状态
        System.out.println(response.status());
        client.close();
    }

最后输出响应的状态,操作成功会显示“CREATED”,如下图所示。
插入文档成功的status


2 批量添加文档(bulk)

批量增加,文档与文档间用于逗号分隔。

    @Test
    public void esBulk() throws IOException {
        // 指定es集群;查看 elasticsearch.yml -- put("cluster.name",集群名称)
        Settings settings = Settings.builder().put("cluster.name","elastricsearch").build();

        // 创建访问es服务器的客户端
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddresses(new TransportAddress(InetAddress.getByName("192.168.180.235"),9300));

        // 批量添加
        BulkRequestBuilder builder = client.prepareBulk();
        builder.add(client.prepareIndex("mauanx","user","8").setSource(
                                                                            XContentFactory.jsonBuilder()
                                                                                    .startObject()
                                                                                    .field("id","8")
                                                                                    .field("name","Huge")
                                                                                    .field("age",26)
                                                                                    .endObject()
                                                                            )
        );
        BulkResponse br = builder.get();
        
        // 输出操作状态
        // 1. 输出status
        System.out.println(br.status());
        // 2. 使用hasFailures判断时候失败,失败时为true
        if (br.hasFailures()){
            System.out.println("失败...");
        }
        // 查询插入状态
        client.close();
    }

若成功,则status返回“OK”。


3 更新文档

使用update修改muaunx的user中id为7的文档,name修改为Gina,age修改为18。代码如下:

@Test
    public void esUpdate() throws IOException, ExecutionException, InterruptedException {
        // 指定es集群;查看 elasticsearch.yml -- put("cluster.name",集群名称)
        Settings settings = Settings.builder().put("cluster.name","elastricsearch").build();

        // 创建访问es服务器的客户端
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddresses(new TransportAddress(InetAddress.getByName("192.168.180.235"),9300));

        // 修改文档:指定索引和type + id,修改内容
        UpdateRequest request = new UpdateRequest();
        request.index("mauanx")
                .type("user")
                .id("7")
                .doc(
                        XContentFactory.jsonBuilder().startObject()
                                .field("name","Gina")
                                .field("age",18)
                                .endObject()
                );
        UpdateResponse response = client.update(request).get();
        
        // 输出操作状态
        System.out.println(response.status());
        client.close();
    }

成功返回为“OK”。


4 删除文档

删除id为7的文档。

@Test
    public void esDelete() throws IOException {
        // 指定es集群;查看 elasticsearch.yml -- put("cluster.name",集群名称)
        Settings settings = Settings.builder().put("cluster.name","elastricsearch").build();

        // 创建访问es服务器的客户端
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddresses(new TransportAddress(InetAddress.getByName("192.168.180.235"),9300));

        // 删除文档:指定 id
        DeleteResponse response = client.prepareDelete("mauanx","user","7").get();

        // 输出操作状态
        System.out.println(response.status());
        client.close();
    }

结果忘记存图了,盲猜成功返回为“OK”或者“DELETED”。


下篇:elasticsearch6实战教程学习笔记(十) — idea + Java实战 3 — 简单查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值