??记得点击上方蓝字“程序员小强”关注哦

?发送关键字“elasticSearch”到公众号获取相关篇

1.新增文档

语法:公式

POST /索引库名/_doc(/手动添加的id){    "key":"value"}

这里是有 post或者put都可以

区别在于

  • put文档必须要指定文档_id;post可指定,可不指定,不指定则会随机生成一个_id

关于映射Mapping

  • 若没有提前设定索引中字段类型而直接添加文档,es会对字段数据给自动数据类型,新字段会永久补充到mapping。

  • 若添加的数据字段数量大于提前设定索引中字段数量,可成功,按情况1处理。

  • 若添加的数据字段数量小于提前设定索引中字段数量,可成功。

1.1指定文档ID

指定文档ID插入:手动指定ID

示例1:POST指定ID

POST /my_index1/_doc/1001{  "name":"李四",  "age":23,  "phone":"13233333332"}

示例2:PUT指定ID(注:put必须指定ID)

PUT /my_index1/_doc/1002{  "name":"王五",  "age":23,  "phone":"13233333333"}

1.2自动产生文档ID

自动产生文档ID插入:不是MySQL那样的AutoIncrement,而是类似MongoDB那样的自动生成ID

POST /my_index1/_doc/{  "name":"张三",  "age":22,  "phone":"13233333331"}

2.查询文档

查询某索引下的文档

2.1查询所有文档

GET  /my_index1/_search

2.2根据ID查询指定文档

GET  /index_name/_doc/1

3.修改文档

3.1更新全部

注:全修改,请求方式PUT和POST都可以,全部字段均会被修改更新,可以新增字段,当ID未匹配上时,执行新增。

POST /my_index1/_doc/1002{  "name":"王五",  "age":23,  "phone":"13233333333",  "desc":"我是新增的描述"}

3.2部分更新

注:部分修改,请求方式 POST,只修改部分字段数据,当ID未匹配上时,执行新增。

  • 需要doc包裹

  • 不支持-不存在则创建

  • 不支持PUT请求方式

  • POST /my_index1/_update/10021/{  "doc": {    "name": "王五",    "age": 23,    "phone": "13233333333",    "desc": "我是新增的描述3"  }}

3.3并发更新

Es使用版本version来管理文档,在更新的时候可以加上版本来控制并发。

官方文档

参数说明

  • _seq_no,严格递增的顺序号,每个文档一个,Shard级别严格递增,保证后写入的Doc的_seq_no大于先写入的Doc的_seq_no。

  • primary_term_seq_no一样是一个整数,每当Primary Shard发生重新分配时,比如重启,Primary选举等,_primary_term会递增1

#先查询一下GET /my_index1/_doc/1001#带着查询中返回的 seq_no 和primary_term 参数更新POST /my_index1/_doc/1001?if_seq_no=11&if_primary_term=1{  "doc":{   "amount":333  }}

4.删除文档

根据id删除指定文档

DELETE /my_index1/_doc/10021

5.批量操作

批量操作是指,一批命令同时执行(减少IO),这些命令不一定是同种类型。

5.1批量查找

5.1.1多ID查询

GET /my_index3/_search{  "query": {    "ids": {      "values":[ 1001, 1002, 1003 ]    }  }}

5.1.2mget单索引

# 批量查询my_index3索引数据POST /my_index3/_mget{  "ids": [    "1001",    "1002",    "1003"  ]}

5.1.3mget跨索引

# 同时查询my_index1与my_index3两个所以下的数据GET /_mget{  "docs": [    {      "_index": "my_index1",      "_id": "1001"    },    {      "_index": "my_index3",      "_id": "1002"    }  ]}

5.2批量新增

POST _bulk{ "create" : { "_index" : "my_index3", "_id" : "1001" } }{"name":"张三","age":20,"phone":"13233333331","desc":"我是张三的描述"}{ "create" : { "_index" : "my_index3", "_id" : "1002" } }{"name":"李四","age":21,"phone":"13233333332","desc":"我是李四的描述"}

注:

  • 命令是只有文档不存在-才会插入。

  • index 会判断若存在就更新,不存在就新增;

5.3批量更新

POST _bulk{"update":{"_index":"my_index3","_id":"1001"}}{"doc":{"age":20,"desc":"我是张三修改的描述"}}{"update":{"_index":"my_index3","_id":"1002"}}{"doc":{"age":20,"desc":"我是李四修改的描述"}}

注:

  • 命令下一行需要紧跟这data数据

5.4批量增删改同时操作

使用_bulk命令可以进行文档的批量增删改

POST _bulk{ "create" : { "_index" : "my_index3", "_id" : "1003" } }{"name":"王五","age":21,"phone":"13233333333","desc":"我是王五的描述"}{ "update" : { "_index" : "my_index3", "_id" : "1001" } }{ "doc" : {"age" : 19,"desc":"我是张三第二次修改的描述"} }{ "delete" : { "_index" : "my_index3", "_id" : "1002" } }

以上命令

  • 新增ID为1003的文档

  • 更新ID为1001的文档

  • 删除ID为1002的文档

5.5批量删除

POST _bulk{ "delete" : { "_index" : "my_index3", "_id" : "1001" } }{ "delete" : { "_index" : "my_index3", "_id" : "1003" } }

往期推荐

  • ElasticSearch基本概念(索引,分片,节点,倒排索引...)

  • ElasticSearch7.x单机版安装

  • ElasticSearch7.x高可用集群版搭建

  • Elasticsearch 7x 配置文件详解

  • Elasticsearch客户端工具之kibana

  • Elasticsearch客户端工具之ES-Head

  • ElasticSearch7.x安全性之访问密码设置

es if语法 script_Elasticsear7.x DSL语法之文档管理相关推荐

  1. 微服务11_ES:DSL/RestClient查询文档

    微服务11_ES:DSL/RestClient查询文档 一.DSL查询文档 1.DSL Query的分类 1.全文检索查询 match查询示例: multi_match查询示例: 2.精准查询 ter ...

  2. Markdown(MD)文档语法使用指南(学会后写文档写博客贼6)

    文章目录 标题 代码块 多行代码块 单行代码块 列表 有序列表 无序列表 图片 链接 分割线 引用 表格 斜体.加粗.下划线.删除线 Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语 ...

  3. 【Android Gradle 插件】Android Plugin DSL Reference 离线文档下载 ( GitHub 下载文档 | 查看文档 )

    文章目录 一.Android Plugin DSL Reference 文档下载 二.Android Plugin DSL Reference 文档查看 一.Android Plugin DSL Re ...

  4. python compiler.ast_ast --- 抽象语法树 — Python 3.7.9 文档

    ast --- 抽象语法树¶ ast 模块帮助 Python 程序处理 Python 语法的抽象语法树.抽象语法或许会随着 Python 的更新发布而改变:该模块能够帮助理解当前语法在编程层面的样貌. ...

  5. es查询索引java_elasticsearch查询篇索引映射文档数据准备

    elasticsearch查询篇索引映射文档数据准备 我们后面要讲elasticsearch查询,先来准备下索引,映射以及文档: 我们先用Head插件建立索引film,然后建立映射 { "p ...

  6. 【ES系列】ES的数据结构与DSL语法

    ES的数据结构与DSL语法 数据结构部分 正向索引与倒排索引 定义 结构 分词(keyword) DSL语句 常用DSL语句 索引部分 创建索引 查看es所有索引 查看单个索引 删除索引 文档部分 创 ...

  7. es入门 和 dsl语法部分讲解

    ElasticSearch与Lucene的关系 Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库(框架) 但是想要使用Lucene,必须使用Java来作为开发语言并将其直接集成 ...

  8. html语言文档结构,HTML的文档结构与语法(一)

    一.走进Web开发 Web运行的原理: 二.HTML 1.1什么是html HTML是用来描述网页的一种语言 HTML指的是超文本标记语言(Hyper Text Markup Language) 超文 ...

  9. es内嵌文档查询_ElasticSearch 文档的增删改查都不会?

    本文主要是介绍 ElasticSearch 的文档增删改查和批量操作,同时会介绍一些 REST API 返回状态码的具体含义. 我们先来看下这个表: 这个表包含了 Index.Create.Read. ...

  10. kibana创建es索引_es 索引数据创建mapping 普通内部对象 嵌套文档 父子文档创建和查询...

    普通内部对象 "kibana_sample_data_ecommerce" : { "mappings" : { "properties" ...

最新文章

  1. python类的私有属性_Python类的私有属性
  2. python硬件_「大神器!」硬件的AI性能测试Python库发布
  3. 【pytorch】torch.linspace==>返回一个一维的tensor(张量),这个张量包含了从start到end,分成steps个线段得到的向量
  4. 如何在.NET Core中创建API
  5. N卡A卡流处理器的区别解析
  6. 3.1.2 Score Inflation 总分
  7. 又一家流血上市!AI四小龙之首商汤科技冲刺IPO,三年半巨亏242亿
  8. 周末阴雨 在家无事 观《孔子》
  9. cacti监控H3C交换机
  10. 神话人物马化腾的“神话”
  11. 深度学习系统框架的演进趋势
  12. android-自定义ImageView-圆形图片绘制代码详解
  13. 大明最不该被遗忘的英烈——李定国
  14. 【Web技术】985- 当聊到前端性能优化时,我们会关注什么?
  15. 柯尔特python_柯字取名的含义是什么
  16. 【wrodpress】wordpress发表文章后无法显示
  17. 详 mpls option a b c产生背景 及实验
  18. 量化交易 米筐 多因子策略与研究平台API
  19. 《养个女儿做老婆》读后感
  20. Redisson实现分布式锁(3)—项目落地实现

热门文章

  1. Android 存储
  2. Django 1.9官方文档
  3. Android之AppWidget
  4. 第二十四周项目3-动态链表体验
  5. 数据库表之间的数据导入 sql语句
  6. php根据经纬度查询附近工人,并算出距离(tp3.2)
  7. 关系分析可视化插件-Cytoscape
  8. matlab 三维矩阵 reshape,matlab中的reshape及3D数组reshape的注意事项转载
  9. NSUserDefaults数据保存报错:Attempt to set a non-property-list object.
  10. tp5.0 根据经纬度 获取附近信息_Redis怎么实现查找附近的人之数据类型Geospatial...