IndexRequest 实现Elasticsearch数据的更新和插入

本文总结了JavaHighLevelRESTClient中IndexAPI的使用方法,包括创建IndexRequest,使用JSON对象、Map或直接赋值的方式设置请求源,设置分片超时时间,刷新策略,以及操作类型如更新或创建。

通过学习Java High Level REST Client官方文档,进行一些总结。
本文为关于Index API的总结:

IndexRequest request = new IndexRequest("索引", "type","id");   
request.source("转换为json的对象", XContentType.JSON); 

同样也支持使用Map的形式放入对象

Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("字段1", "值");
jsonMap.put("字段2", new Date());
jsonMap.put("字段3", "值");
IndexRequest indexRequest = new IndexRequest("索引", "tyep", "id")
        .source(jsonMap); 

也可以直接在source中对需要的对象进行赋值

IndexRequest indexRequest = new IndexRequest("index", "type", "id")
        .source("字段1", "值",
                "字段2", new Date(),
                "字段3", "值"); 

设置分片超时时间,以下两种方式均可

request.timeout(TimeValue.timeValueSeconds(1)); 
request.timeout("1s"); 

设置刷新策略,若未设置最常见的情况就是执行es中数据更新或插入,同步去查询时数据发现没有更新。

request.setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL); 
request.setRefreshPolicy("wait_for"); 

通过设置poType为“update”or“create”设置更新或者修改

request.opType(DocWriteRequest.OpType.CREATE); 
request.opType("create"); 

Java High Level REST Client官方文档原文链接

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值