美文网首页
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