es update 只更新 选定字段

2020-01-13  本文已影响0人  秋名山车神_f776

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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

上一篇 下一篇

猜你喜欢

热点阅读