• ES _bulk 批量操作用法


    es 的 bulk 操作,是用来批量发送请求,或者理解为批量操作的。

    支持4种操作

    bulk 支持多种操作,如下createindexupdatedelete

    • create 如果文档不存在就创建,但如果文档存在就返回错误
    • index 如果文档不存在就创建,如果文档存在就更新
    • update 更新一个文档,如果文档不存在就返回错误
    • delete 删除一个文档,如果要删除的文档id不存在,就返回错误
    语法结构

    语法结构上,一个操作分为两部分,一部分指定操作类型和索引,另一部分是请求体


    针对不同的操作类型,第二行的请求体是不一样的
    (1)index 和 create 第二行是source数据体
    (2)delete 没有第二行
    (3)update 第二行可以是partial doc,upsert或者是script

    示例

    1. POST /_bulk
    2. {"create":{"_index":"索引名", "_id":"文档"}} // 动作
    3. {"field1":"value1"} //请求体
    1. 批量执行两个动作

    1. POST /_bulk
    2. {"create":{"_index":"zm_blog5"}}
    3. {"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}
    4. {"create":{"_index":"zm_blog5"}}
    5. {"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}

    1. POST zm_blog5/_bulk
    2. {"create":{}}
    3. {"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}
    4. {"create":{}}
    5. {"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}

    执行返回结果

    执行结果是分开的,比如发送2个操作,两个操作结果分别返回,可能其中一个失败另一个成功

    比如执行:

    1. POST /_bulk
    2. {"create":{"_index":"zm_blog5"}}
    3. {"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}
    4. {"create":{"_index":"zm_blog5"}}
    5. {"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}

    返回结果:
    每个返回结果中有 http status,以及其他详细信息。

    1. {
    2. "took" : 8,
    3. "errors" : false,
    4. "items" : [
    5. {
    6. "create" : {
    7. "_index" : "zm_blog5",
    8. "_type" : "_doc",
    9. "_id" : "wKNBpYQBCuglFCwN_ObP",
    10. "_version" : 1,
    11. "result" : "created",
    12. "_shards" : {
    13. "total" : 1,
    14. "successful" : 1,
    15. "failed" : 0
    16. },
    17. "_seq_no" : 1,
    18. "_primary_term" : 1,
    19. "status" : 201
    20. }
    21. },
    22. {
    23. "create" : {
    24. "_index" : "zm_blog5",
    25. "_type" : "_doc",
    26. "_id" : "waNBpYQBCuglFCwN_ObP",
    27. "_version" : 1,
    28. "result" : "created",
    29. "_shards" : {
    30. "total" : 1,
    31. "successful" : 1,
    32. "failed" : 0
    33. },
    34. "_seq_no" : 2,
    35. "_primary_term" : 1,
    36. "status" : 201
    37. }
    38. }
    39. ]
    40. }



    作者:zhimin_
    链接:https://www.jianshu.com/p/60a792037f8c
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    【简答题】JavaWeb必问10道简答题
    Elasticsearch学习笔记(含知识点,安装及使用)
    php实战案例记录(8)去除XSS的函数
    spring整合openAI大模型之Spring AI
    未在本地计算机上注册“Microsoft .ACE. OLEDB .12.0”提供程序
    FT2004(D2000)开发实战之在线开发GPIO LED程序
    精品基于Uniapp+SSM实现的移动端的家庭客栈管理系统实现的App
    JAVA基础(四十五)——集合之Map接口
    《CGNF: CONDITIONAL GRAPH NEURAL FIELDS》阅读笔记
    VScode使用SSH去编辑远程文件
  • 原文地址:https://blog.csdn.net/qq_32907195/article/details/133793948