zoukankan      html  css  js  c++  java
  • elasticsearch 中文API 更新(五)

    更新API

    你能够创建一个UpdateRequest,然后将其发送给client。

    UpdateRequest updateRequest = new UpdateRequest();
    updateRequest.index("index");
    updateRequest.type("type");
    updateRequest.id("1");
    updateRequest.doc(jsonBuilder()
            .startObject()
                .field("gender", "male")
            .endObject());
    client.update(updateRequest).get();
    

    或者你也可以利用prepareUpdate方法

    1 client.prepareUpdate("ttl", "doc", "1")
    2        .setScript("ctx._source.gender = "male""  , ScriptService.ScriptType.INLINE)
    3        .get();
    
    5 client.prepareUpdate("ttl", "doc", "1")
    6        .setDoc(jsonBuilder()
    7            .startObject()
    8                .field("gender", "male")
    9            .endObject())
    10        .get();
    

    1-3行用脚本来更新索引,5-10行用doc来更新索引。

    当然,java API也支持使用upsert。如果文档还不存在,会根据upsert内容创建一个新的索引。

    IndexRequest indexRequest = new IndexRequest("index", "type", "1")
            .source(jsonBuilder()
                .startObject()
                    .field("name", "Joe Smith")
                    .field("gender", "male")
                .endObject());
    UpdateRequest updateRequest = new UpdateRequest("index", "type", "1")
            .doc(jsonBuilder()
                .startObject()
                    .field("gender", "male")
                .endObject())
            .upsert(indexRequest);
    client.update(updateRequest).get();
    

    如果文档index/type/1已经存在,那么在更新操作完成之后,文档为:

    {
        "name"  : "Joe Dalton",
        "gender": "male"
    }
    

    否则,文档为:

    {
        "name" : "Joe Smith",
        "gender": "male"
    }
  • 相关阅读:
    jstl 部分标签
    Maven pom.xml 元素配置说明(一)
    spring 参数绑定
    mysql 索引
    ArrayList和HashSet的Contains()方法(转)
    每日记载内容总结44
    剑指offer42:不用加减乘除做加法
    动态规划常见题型
    华为机试-统计每个月兔子的总数
    华为机试-字符串合并处理
  • 原文地址:https://www.cnblogs.com/bmaker/p/5472433.html
Copyright © 2011-2022 走看看