Elasticsearch Document Bulk API详解、原理与示例
requests? indices? payloads? timeout? waitForActiveShards? refreshPolicy? sizeInBytes? HTTP??? Content-Type? ??????????????????? ???+?????????????????????????????????? index ? create update delete index ? create??????? update???????? delete?????????
发布日期:2021-04-30 21:12:19
浏览次数:113
分类:精选文章
本文共 3390 字,大约阅读时间需要 11 分钟。
Elasticsearch Bulk API??
Bulk API?Elasticsearch?????????????????????API???????????????????????????????????????????????????????
BulkRequest??
BulkRequest ???Bulk API???????????????????????
????
List???????????????? IndexRequest?UpdateRequest ? DeleteRequest ????Set?????????????String??????????????????6.4??????????????????????????? DocWriteRequest ???TimeValue???????????????ActiveShardCount?????????????????????????RefreshPolicy????????????long???????????????????
?? add ??? BulkRequest ???????????????????
Bulk API????
Bulk API??????? JSON??????????
????
POSTapplication/x-ndjson\r\n?????
{ "opType" : { ... } }{ "meta" : { ... } }{ "payload" : { ... } } ?????
??????????????
_index?????_type?????_id???IDrouting????parent????IDversion??????version_type?????
???????
pipeline????????????
retry_on_conflict????????_source?????????
- ????????
??????
_source ?????partial doc?upsert ? script?Bulk API????
????
????????????????????????????
??
???????????????????
??????
???? BulkRequest#waitForActiveShards ??????????????????????????
Bulk API??
????? Bulk API ?????????????
public static final void testBulk() { RestHighLevelClient client = EsClient.getClient(); try { IndexRequest indexRequest = new IndexRequest("twitter", "_doc", "12") .source(buildTwitter("dingw", "2009-11-18T14:12:12", "test bulk")); UpdateRequest updateRequest = new UpdateRequest("twitter", "_doc", "11") .doc(new IndexRequest("twitter", "_doc", "11")) .source(buildTwitter("dingw", "2009-11-18T14:12:12", "test bulk update")); BulkRequest request = new BulkRequest(); request.add(indexRequest); request.add(updateRequest); BulkResponse bulkResponse = client.bulk(request, RequestOptions.DEFAULT); for (BulkItemResponse bulkItemResponse : bulkResponse) { if (bulkItemResponse.isFailed()) { BulkItemResponse.Failure failure = bulkItemResponse.getFailure(); System.out.println(failure); continue; } DocWriteResponse itemResponse = bulkItemResponse.getResponse(); if (bulkItemResponse.getOpType() == DocWriteRequest.OpType.INDEX || bulkItemResponse.getOpType() == DocWriteRequest.OpType.CREATE) { IndexResponse indexResponse = (IndexResponse) itemResponse; System.out.println(indexRequest); } else if (bulkItemResponse.getOpType() == DocWriteRequest.OpType.UPDATE) { UpdateResponse updateResponse = (UpdateResponse) itemResponse; System.out.println(updateRequest); } else if (bulkItemResponse.getOpType() == DocWriteRequest.OpType.DELETE) { DeleteResponse deleteResponse = (DeleteResponse) itemResponse; System.out.println(deleteResponse); } } } catch (Exception e) { e.printStackTrace(); } finally { EsClient.close(client); }} ??
???????????????? Bulk API ????????????Bulk API ? Elasticsearch ?????????????????????????????????????????
发表评论
最新留言
关注你微信了!
[***.104.42.241]2026年05月27日 17时26分16秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
pip3 install PyQt5 --user 失败
2023-03-02
pip3命令全解析:Python3包管理工具的详细使用指南
2023-03-02
PIPE 接口信号列表
2023-03-02
pipeline配置与管理Job企业级实战
2023-03-02
pipeline项目配置实战
2023-03-02
Pipenv 与 Conda?
2023-03-02
QVGA/HVGA/WVGA/FWVGA分辨率屏含义及大小//Android虚拟机分辨率
2023-03-02
pipy国内镜像的网址
2023-03-02
quiver绘制python语言
2023-03-02
pip下载缓慢
2023-03-02
PIP使用SSH从BitBucket安装自定义软件包,无需输入SSH密码
2023-03-02
pip在安装模块时提示Read timed out
2023-03-02
pip更换源
2023-03-02
SpringBoot之Banner源码深度分解
2023-03-02
Pix2Pix如何工作?
2023-03-02
QuickBI助你成为分析师——搞定数据源
2023-03-02
pkl来存储python字典
2023-03-02