es 保存
如果用spring-data-es jpa 的 save 方法很容易實(shí)現(xiàn)
但是會(huì)出現(xiàn)如下問題
全部更新 開銷比較大乓旗。
并發(fā)時(shí)候容易出現(xiàn)數(shù)據(jù)覆蓋择同。
那 es 文檔如何只更新 需要update的字段呢再芋?
下面給出了一個(gè)demon
實(shí)體類
@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);
}
作者:良人與我
鏈接:http://www.reibang.com/p/7203d8ae49ef
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)氓侧,非商業(yè)轉(zhuǎn)載請注明出處。