es if语法 script_Elasticsear7.x DSL语法之文档管理
??记得点击上方蓝字“程序员小强”关注哦
?发送关键字“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语法之文档管理相关推荐
- 微服务11_ES:DSL/RestClient查询文档
微服务11_ES:DSL/RestClient查询文档 一.DSL查询文档 1.DSL Query的分类 1.全文检索查询 match查询示例: multi_match查询示例: 2.精准查询 ter ...
- Markdown(MD)文档语法使用指南(学会后写文档写博客贼6)
文章目录 标题 代码块 多行代码块 单行代码块 列表 有序列表 无序列表 图片 链接 分割线 引用 表格 斜体.加粗.下划线.删除线 Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语 ...
- 【Android Gradle 插件】Android Plugin DSL Reference 离线文档下载 ( GitHub 下载文档 | 查看文档 )
文章目录 一.Android Plugin DSL Reference 文档下载 二.Android Plugin DSL Reference 文档查看 一.Android Plugin DSL Re ...
- python compiler.ast_ast --- 抽象语法树 — Python 3.7.9 文档
ast --- 抽象语法树¶ ast 模块帮助 Python 程序处理 Python 语法的抽象语法树.抽象语法或许会随着 Python 的更新发布而改变:该模块能够帮助理解当前语法在编程层面的样貌. ...
- es查询索引java_elasticsearch查询篇索引映射文档数据准备
elasticsearch查询篇索引映射文档数据准备 我们后面要讲elasticsearch查询,先来准备下索引,映射以及文档: 我们先用Head插件建立索引film,然后建立映射 { "p ...
- 【ES系列】ES的数据结构与DSL语法
ES的数据结构与DSL语法 数据结构部分 正向索引与倒排索引 定义 结构 分词(keyword) DSL语句 常用DSL语句 索引部分 创建索引 查看es所有索引 查看单个索引 删除索引 文档部分 创 ...
- es入门 和 dsl语法部分讲解
ElasticSearch与Lucene的关系 Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库(框架) 但是想要使用Lucene,必须使用Java来作为开发语言并将其直接集成 ...
- html语言文档结构,HTML的文档结构与语法(一)
一.走进Web开发 Web运行的原理: 二.HTML 1.1什么是html HTML是用来描述网页的一种语言 HTML指的是超文本标记语言(Hyper Text Markup Language) 超文 ...
- es内嵌文档查询_ElasticSearch 文档的增删改查都不会?
本文主要是介绍 ElasticSearch 的文档增删改查和批量操作,同时会介绍一些 REST API 返回状态码的具体含义. 我们先来看下这个表: 这个表包含了 Index.Create.Read. ...
- kibana创建es索引_es 索引数据创建mapping 普通内部对象 嵌套文档 父子文档创建和查询...
普通内部对象 "kibana_sample_data_ecommerce" : { "mappings" : { "properties" ...
最新文章
- python类的私有属性_Python类的私有属性
- python硬件_「大神器!」硬件的AI性能测试Python库发布
- 【pytorch】torch.linspace==>返回一个一维的tensor(张量),这个张量包含了从start到end,分成steps个线段得到的向量
- 如何在.NET Core中创建API
- N卡A卡流处理器的区别解析
- 3.1.2 Score Inflation 总分
- 又一家流血上市!AI四小龙之首商汤科技冲刺IPO,三年半巨亏242亿
- 周末阴雨 在家无事 观《孔子》
- cacti监控H3C交换机
- 神话人物马化腾的“神话”
- 深度学习系统框架的演进趋势
- android-自定义ImageView-圆形图片绘制代码详解
- 大明最不该被遗忘的英烈——李定国
- 【Web技术】985- 当聊到前端性能优化时,我们会关注什么?
- 柯尔特python_柯字取名的含义是什么
- 【wrodpress】wordpress发表文章后无法显示
- 详 mpls option a b c产生背景 及实验
- 量化交易 米筐 多因子策略与研究平台API
- 《养个女儿做老婆》读后感
- Redisson实现分布式锁(3)—项目落地实现
热门文章
- Android 存储
- Django 1.9官方文档
- Android之AppWidget
- 第二十四周项目3-动态链表体验
- 数据库表之间的数据导入 sql语句
- php根据经纬度查询附近工人,并算出距离(tp3.2)
- 关系分析可视化插件-Cytoscape
- matlab 三维矩阵 reshape,matlab中的reshape及3D数组reshape的注意事项转载
- NSUserDefaults数据保存报错:Attempt to set a non-property-list object.
- tp5.0 根据经纬度 获取附近信息_Redis怎么实现查找附近的人之数据类型Geospatial...