ES 文档的基本操作
1 介绍
主要介绍索引请求的基础API操作,使用postman进行请求,接口请求的前缀地址统一为elasticsearch 部署IP地址+端口号(例如 http://192.168.51.4:9200 。下方提供postman测试使用的接口地址JSON导出文件:
postman 接口集合下载地址 https://download.csdn.net/download/qq_15769939/15492332
2 文档基础操作
首先创建一个索引 (doc_api_demo),用来做文档API的测试。
2.1 创建文档
请求方式 | 接口地址 | 备注 |
---|---|---|
POST | /doc_api_demo/_doc/1 |
doc_api_demo:索引名称 1:索引在ES的ID |
传递的JSON参数
{"id": 1001,"name": "auskat-1","desc": "tic is a good man 1","create_date": "2019-12-24"
}
{"id": 1002,"name": "auskat-2","desc": "tic 是个好人","create_date": "2019-12-25"
}
{"id": 1003,"name": "auskat-3","desc": "tic 要成为一个好人","create_date": "2020-12-26"
}
{"id": 1004,"name": "auskat-5","desc": "tic 真是一个好人","create_date": "2020-12-27"
}
请求结果
{"_index": "doc_api_demo","_type": "_doc","_id": "1","_version": 1,"result": "created","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 0,"_primary_term": 1
}
这个ID属性并不是这条记录的ID,而是这条索引记录的ID,如果不设置,会默认生成一个唯一的字符串ID。实际的使用过程中,一般与数据的唯一ID保持一致。
- 如果索引没有手动建立mappings,那么当插入文档数据的时候,会根据文档类型自动设置属性类型。这个就是es的动态映射,帮我们在index索引库中去建立数据结构的相关配置信息。
- “fileds”:{“type”:“keyword”} 对一个字段设置多种索引模式,使用text类型做全文检索,也可使用keyword类型做聚合和排序。
- “ignore_above”:256 设置字段索引和存储的长度最大值,超过则会被忽略。
2.2 文档修改
2.2.1 局部修改
请求方式 | 接口地址 | 备注 |
---|---|---|
POST |
/doc_api_demo/_doc/1004/_update
|
doc_api_demo:索引名称 1004:索引的ID |
传递JSON数据
{"doc": {"name": "我是tic 我要单独改名为 ttd"}
}
请求结果
{"_index": "doc_api_demo","_type": "_doc","_id": "1004","_version": 3,"result": "updated","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 6,"_primary_term": 1
}
2.2.2 全量替换
请求方式 | 接口地址 | 备注 |
---|---|---|
PUT | /doc_api_demo/_doc/1004 |
doc_api_demo:索引名称 1004:索引的ID |
传递JSON数据
{"id": 1004,"name": "tic tic tic","desc": "tic 真的要变成一个好人了","create_date": "2020-12-28"
}
请求结果
{"_index": "doc_api_demo","_type": "_doc","_id": "1004","_version": 4,"result": "updated","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 7,"_primary_term": 1
}
_version 代表文档的版本号,没修改一次都会发生累加改变。
2.3 文档查询
2.3.1 单个文档查询
请求方式 | 接口地址 | 备注 |
---|---|---|
GET | /doc_api_demo/_doc/1004 |
doc_api_demo:索引名称 1004:索引的ID |
请求结果
{"_index": "doc_api_demo","_type": "_doc","_id": "1004","_version": 4,"_seq_no": 7,"_primary_term": 1,"found": true,"_source": {"id": 1004,"name": "tic tic tic","desc": "tic 真的要变成一个好人了","create_date": "2020-12-28"}
}
2.3.2 查询全量文档数据
请求方式 | 接口地址 | 备注 |
---|---|---|
GET |
/doc_api_demo/_doc/_search
|
doc_api_demo:索引名称 1004:索引的ID |
请求结果
{"took": 7,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 4,"relation": "eq"},"max_score": 1.0,"hits": [{"_index": "my_doc","_type": "_doc","_id": "2","_score": 1.0,"_source": {"doc": {"name": "我是阿苏卡DDD"},"name": "我是阿苏卡CC"}},{"_index": "my_doc","_type": "_doc","_id": "okcQzncBZX7VGcys4RIc","_score": 1.0,"_source": {"id": 1009,"name": "auskat-1","desc": "tic is a good man 1","create_date": "2019-12-24"}},{"_index": "my_doc","_type": "_doc","_id": "3","_score": 1.0,"_source": {"id": 1003,"name": "auskat-3","desc": "tic is a good man 3","create_date": "2019-12-24"}},{"_index": "my_doc","_type": "_doc","_id": "6","_score": 1.0,"_source": {"name": "auskat-8","desc": "tic is a good man 8","create_date": "2019-12-24"}}]}
}
2.3.3 指定要查询的字段
请求方式 | 接口地址 | 备注 |
---|---|---|
GET | /doc_api_demo/_doc/1004?_source=id,name |
doc_api_demo:索引名称 1004:索引的ID |
GET |
/doc_api_demo/_doc/_search?_source=id,name
|
doc_api_demo:索引名称 |
请求结果
{"took": 7,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 4,"relation": "eq"},"max_score": 1.0,"hits": [{"_index": "my_doc","_type": "_doc","_id": "2","_score": 1.0,"_source": {"name": "我是阿苏卡CC"}},{"_index": "my_doc","_type": "_doc","_id": "okcQzncBZX7VGcys4RIc","_score": 1.0,"_source": {"name": "auskat-1","id": 1009}},{"_index": "my_doc","_type": "_doc","_id": "3","_score": 1.0,"_source": {"name": "auskat-3","id": 1003}},{"_index": "my_doc","_type": "_doc","_id": "6","_score": 1.0,"_source": {"name": "auskat-8"}}]}
}
_index
:文档数据所属的那个索引,理解为数据库的某张表即可。_type
:文档数据属于那个类型,新版本用__doc
_id
:文档数据的唯一标识,类似于数据库的主键。可以自动生成或者手工指定_score
:查询相关度,是否契合用户匹配,分数越高用户的搜索体验越高_version
:版本号_source
:文档数据,JSON格式
2.3.4 判断文档是否存在
请求方式 | 接口地址 | 备注 |
---|---|---|
HEAD | /doc_api_demo/_doc/1004 |
doc_api_demo:索引名称 1004:索引的ID |
请求结果
{"_index": "doc_api_demo","_type": "_doc","_id": "1004","_version": 4,"_seq_no": 7,"_primary_term": 1,"found": true,"_source": {"id": 1004,"name": "tic tic tic","desc": "tic 真的要变成一个好人了","create_date": "2020-12-28"}
}
2.4 文档删除
请求方式 | 接口地址 | 备注 |
---|---|---|
DELETE | /index_api_demo/1004 |
doc_api_demo:索引名称 1004:索引的ID |
返回结果
{"_index": "doc_api_demo","_type": "_doc","_id": "4","_version": 2,"result": "deleted","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 4,"_primary_term": 1
}
文档删除不是立即删除,文档还是保存在磁盘上的,索引增长越来越多,才会把那些曾经标识过删除的,进行清理,从磁盘上移出去。
3 相关信息
- 博文不易,辛苦各位猿友点个关注和赞,感谢
ES 文档的基本操作相关推荐
- 【Elasticsearch】15 ES文档的基本操作 aggregations 【执行聚合操作】
一.描述 1. 搜素address 中包含mill 的所有人的年龄分布以及平均年龄,但不显示这些人的详情 按年龄聚合 GET bank/_search {"query": {&qu ...
- ES关于文档的基本操作
关于文档的基本操作 基本操作 添加数据 PUT /quanzhan/user/1 {"name": "xzM","age": 18,&quo ...
- 关于文档的基本操作---ElasticSearch
关于文档的基本操作(重点) 基本操作 添加数据 PUT /psz/user/1 {"name": "psz","age": 22," ...
- 【Elasticsearch系列】文档的基本操作
文档的基本操作 一.添加 添加文档数据 POST /my_doc/_doc/1 -> {索引名}/_doc/{索引ID}(是指索引在es中的id,而不是这条记录的id,比如记录的id从数据库来是 ...
- 关闭word_Word教程第2讲:文档的基本操作(含视频)
点击图片 1元抢购 Excel.Word.PPT全套课程 本讲目标: 关闭文档 掌握文档的创建 掌握保存文档的方法,以及加密保存的实现 掌握打开文档的方法,以及文档的打开方式 掌握插入文档的方法,了 ...
- Python实现自动化办公(三):Python对PPT文档的基本操作(python-pptx)
Python对PPT文档的基本操作 文章目录 Python对PPT文档的基本操作 一.pptx模块 1.官方文档 2.安装pptx模块 二.基本函数的使用方法 三.使用案例 1.修改ppt内容 2.写 ...
- XML文档的基本操作
已知有一个XML文档(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <b ...
- java基础知识 API文档 字符串基本操作 正则表达式 Object
目录 JDK API 什么是JDK API JDk包结构 文档注释规范 文档注释 String及其常用API String是不可变对象 String常量池 内存编码及长度 String常用方法 Str ...
- ElasticSearch学习:文档的基本操作
上一个我们基本是围绕索引操作,里面的指定类型,或者文档里面的一些属性. 这里是主要关注文档操作,毕竟主要常见的操作就是围绕文档内容来进行的,毕竟主要是做搜索. 首先先导入一些数据进去. 一 简单的查询 ...
最新文章
- Wt::WPaintDevice
- hdu1846巴什博弈(java)
- 【springboot中使用拦截器】
- 【最优解】Leecode 594. 最长和谐子序列——Leecode每日一题系列
- android listview asynctask,Android精通之AsyncTask与ListView讲解
- Flutter的AnimatedDefaultTextStyle实现文本样式的动画过渡切换效果
- bash 中的行处理命令 awk
- 晨光文具卖出去的笔能绕地球几圈?
- sqlalchemy 初始化数据库
- 第2个程序:用C语言实现点亮一盏led
- 计算数字1至10的总和
- Spark文本文件输入输出
- 你最后会划掉谁的名字……
- 从vSphere 5.5升级到6之2-升级vCenter Server 5.5到6.0
- ESET NOD32最新单机、企业中、英文版 + 个人专有ID(90天使用期)申请方法
- 0CTF 2016 RSA?(未完成)
- Linux下使用rm删除文件,并排除指定文件(亲测可行)
- AutoLayout(Ⅱ):遇到的几个小问题(Keng)
- python判断列表之间是否为包含关系,不用自定义函数
- Kettle计算器常用函数
热门文章
- 在FPGA设计中怎么应用ChatGPT?
- leaflet之轨迹回放(一 Leaflet.MovingMarker)
- IDEA中文乱码以及运行Tomcat各种出现乱码具体解决方案
- Java的ZipFile报错:Caused by: java.util.zip.ZipException: invalid CEN header (bad entry name)
- oracle_tpch导数据,TPCH数据导入postgresql教程
- npm下载包速度慢-淘宝NPM镜像服务器--如何切换其他服务器下载
- Java 8 Lambda 表达式Stream操作
- 读取一个文件夹内的文件名
- mSystems:“地球第四极”马里亚纳海沟极端环境中神秘的底栖病毒群落及其生态功能...
- 本地生活小程序有什么功能_本地生活小程序的优势