美文网首页
es update 只更新 选定字段

es update 只更新 选定字段

作者: 秋名山车神_f776 | 来源:发表于2020-01-13 17:34 被阅读0次

    es 保存
    如果用spring-data-es jpa 的 save 方法很容易实现
    但是会出现如下问题

    全部更新 开销比较大。
    并发时候容易出现数据覆盖。
    

    那 es 文档如何只更新 需要update的字段呢?

    下面给出了一个demon

    实体类
    @NoArgsConstructor
    @Data
    @Document(indexName = "customer",
    type = "customer",
    shards = 2,
    refreshInterval = "10s")
    public class Customer {

    @Id
    private String id;
    
    @Field(type = FieldType.Keyword)
    private String firstName;
    
    private String lastName;
    
    private Integer age;
    
    private String des;
    
    private String hobby;
    
    public Customer(String firstName, String lastName , Integer age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }
    

    }

    更新方法
    @Test
    public void testUpdate(){
    Customer customer = new Customer("river-test1", "希望的田野", 33);
    customer.setId("Auon-GoB3uyabjEXAYng");
    UpdateQuery updateQuery = new UpdateQuery();
    updateQuery.setId(customer.getId());
    updateQuery.setClazz(Customer.class);
    UpdateRequest request = new UpdateRequest();
    request.doc(new Gson().toJson(customer), XContentType.JSON);
    updateQuery.setUpdateRequest(request);
    elasticsearchTemplate.update(updateQuery);
    }

    作者:良人与我
    链接:https://www.jianshu.com/p/7203d8ae49ef
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:es update 只更新 选定字段

          本文链接:https://www.haomeiwen.com/subject/mzrnactx.html