ElasticSearch-document文档数据-增删改
文档就是相当于每条记录。
每个文档(数据记录行)都有几个元数据,分别是:
- _index,表示该文档是那个索引中的。
- _type,表示文档的类型
- _id,文档的唯一ID编号
- _score,相关性分数。
添加文档(添加数据)
POST /库名/类型名[/id]
注意:不给ID的化,则系统默认自己生成ID
例子:
POST http://127.0.0.1:9200/news/news/
{
"article_id": 456,
"user_id": 10,
"title": "python如何获取时间戳!"
}


获取文档数据等信息
GET /库名/类型名/id
例子:
GET http://127.0.0.1:9200/news/news/111
**查询结果:**
{
"_index": "news",
"_type": "news",
"_id": "111",
"_version": 1,
"_seq_no": 1,
"_primary_term": 1,
"found": true,
"_source": {
"article_id": 12,
"user_id": 1,
"title": "scrapy爬虫框架入门"
}
}
判断文档是否存在
1、除了直接使用查询外(GET请求),还是可以发送HEAD请求也可以判断文档是否存在。
HEAD 索引库名/类型名/文档ID
查询时只显示某个字段的数据
https://www.elastic.co/guide/en/elasticsearch/reference/6.8/docs-get.html#get-source-filtering
一般过滤
GET /库名/类型名/id?_source=字段名,字段名,....
例:只获取user_id和title字段的数据
GET http://127.0.0.1:9200/news/news/111?_source=user_id,title
查询结果:
{
"_index": "news",
"_type": "news",
"_id": "111",
"_version": 1,
"_seq_no": 1,
"_primary_term": 1,
"found": true,
"_source": {
"user_id": 1,
"title": "scrapy爬虫框架入门"
}
}
更详细的过滤
GET /库名/类型名/id?_source_includes=字段名&_source_excludes=字段名
_source_includes
_source_excludes
**这两个参数都采用逗号分隔的字段列表或通配符表达式。**
例如:
GET twitter/_doc/0?_source_includes=*.id&_source_excludes=entities
获取文档中的数据,其他信息不要
https://www.elastic.co/guide/en/elasticsearch/reference/6.8/docs-get.html#_source
按照之前的查询URL,我们一般会返回信息如下:
{
"_index": "news",
"_type": "news",
"_id": "111",
"_version": 1,
"_seq_no": 1,
"_primary_term": 1,
"found": true,
"_source": {
"user_id": 1,
"title": "scrapy爬虫框架入门"
}
}
我们可以看到除了文档数据,还有很多其他的字段信息,如果你向要只拿文档信息可以用这个查询URL
GET /库名/类型名/id/_source
并且,同样支持过滤查询:
如:
GET /库名/类型名/id/_source?_source_include=xxx&_source_exclude=xxxx
修改文档的某个值
POST <索引名>/<类型名>/<文档ID>/_update
{
"doc" : {
"字段名" : "新的值"
}
}
例子:
POST http://127.0.0.1:9200/news/news/111/_update
{
"doc": { //doc表示以文档形式进行部分更新。es还支持用script脚本形式更新值,具体可以参考官方文档。一般不怎么用...
"title": "开玩笑呀....."
}
}
修改结果返回:
{
"_index": "news",
"_type": "news",
"_id": "111",
"_version": 2, // version每修改一次就会累加1
**"result": "updated",**
"_shards": {
"total": 2, //表示应该在多少个分片副本(主分片和副本分片)上执行了索引操作
**"successful": 1,**
"failed": 0
},
"_seq_no": 2, // 每修改一次就会累加1
"_primary_term": 1
}
还有一种方式,但是这种方式等同于重定义整个文档:
用下面这种方式修改文档数据,如果文档中其他字段不需要修改,你也要传递值,否则都会被清空!
PUT /库名/类型名/id
{
"字段名": "值"
}
删除文档数据
DELETE /<索引库名>/<类型名>/<文档ID>
如:
DELETE http://127.0.0.1:9200/news/news/111
返回结果:
{
"_index": "news",
"_type": "news",
"_id": "111",
"_version": 4,
**"result": "deleted",**
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 4,
"_primary_term": 1
}
根据查询语句来删除数据
参考:
他用的就是查询的语法
https://www.elastic.co/guide/en/elasticsearch/reference/6.8/docs-delete-by-query.html
ElasticSearch-document文档数据-增删改的更多相关文章
- Elasticsearch之文档的增删改查以及ik分词器
文档的增删改查 增加文档 使用elasticsearch-head查看 修改文档 使用elasticsearch-head查看 删除文档 使用elasticsearch-head查看 查看文档的三种方 ...
- 分布式搜索elasticsearch 索引文档的增删改查 入门
1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/ ...
- head插件对elasticsearch 索引文档的增删改查
1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200 ...
- Elasticsearch 索引文档的增删改查
利用Elasticsearch-head可以在界面上(http://127.0.0.1:9100/)对索引进行增删改查 1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演 ...
- MongoDB文档的增删改操作
上一篇文章中介绍了MongoDB的一些基本知识,同时看到了怎么启动一个MongoDB服务,并且通过MongoDB自带的shell工具连接到了服务器. 这一次,就通过MongoDB shell介绍一下对 ...
- Java对XML文档的增删改查
JAVA增删改查XML文件 最近总是需要进行xml的相关操作. 不免的要进行xml的读取修改等,于是上网搜索,加上自己的小改动,整合了下xml的常用操作. 读取XML配置文件 首先我们需要通过Do ...
- Mongodb的基本操作-数据库 集合 文档的增删改查
数据库操作: //查看有哪些数据库 > show dbs local 0.078GB mydb 0.078GB //use操作将切换到一个数据库 如果数据库存在将直接切换 如果不存在 那么 ...
- 对mongo文档的增删改操作
在mongo db 中增加.删除.修改文档有好多方法,这里简单记录一下我所知道的一些方法. 前置条件: 1.创建study数据库 use study; 2.创建persons集合,当第一次向pers ...
- 使用dom4j技术对xml文档进行增删改练习(一)
整个流程如下面代码所以,并对一些重要代码意义做出详细解释: import java.io.File; import java.io.FileOutputStream; import org.dom4j ...
- mongodb对数组元素及内嵌文档进行增删改查操作(转)
from:https://my.oschina.net/132722/blog/168274 比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: &l ...
随机推荐
- Solution -「HNOI 2010」城市建设
Description Link. 修改边权的动态 MST. Solution 讲清楚点. 修改边权的 MST,考虑对时间分治.设我们当前操作的操作区间是 \([l,r]\),直接暴力找 MST 是不 ...
- Solution -「CF 724F」Uniformly Branched Trees
Description Link. 给定三个数 \(n,d,mod\),求有多少种 \(n\) 个点的不同构的树满足:除了度数为 \(1\) 的结点外,其余结点的度数均为 \(d\).答案对质数 \( ...
- 12 款最棒 Vue 开源 UI 库
文章目录 Element Plus - 经典中的经典,全面支持 Vue 3 TDesign Vue - 鹅厂优质 UI 组件,配套工具完满,设计工整,文档清晰 ArcoDesign Vue- 字节优质 ...
- Go语言常用标准库——log、net_http、strconv、time包
文章目录 log 使用Logger 配置logger 标准logger的配置 flag选项 配置日志前缀 配置日志输出位置 创建logger 总结 net_http net/http介绍 HTTP协议 ...
- Travelling Salesman and Special Numbers
prologue 模拟赛的一道题,结果没做出来,丢大人,败大兴.所以过来糊一篇题解. analysis 我们看到数据范围这么大,那么肯定不可以一个一个遍历(废话),所以就要考虑这个题目的性质. 我们先 ...
- windows系统和IE的兼容性问题
IE浏览器用户正在逐步减少,但是以前的基数较大,为了解决win和ie的版本混乱问题,特记录一下: 一.从操作系统角度出发: XP最高支持到IE8,XP支持ie6,ie7,ie8 WIN7自带 ...
- 高效技巧揭秘:Java轻松批量插入或删除Excel行列操作
摘要:本文由葡萄城技术团队原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 在职场生活中,对Excel工作表的行和列进行操作是非常普遍的需求 ...
- PTA乙级1044C++(手动打表hhh)
1044 火星数字 (20 分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, j ...
- python 执行脚本,并将输出打印到文件
转载请注明出处: 在使用 python 直接执行脚本时,执行的相关输出会打印到当前的控制台,如果想输出到指定的文件,可以采用以下几种方式: 1.在启动时,使用 > 操作符,该操作符会将输出写入到 ...
- AtCoder Beginner Contest 237 G - Range Sort Query
原题链接 G - Range Sort Query 思路: \(x\)是固定的,所以考虑将排序维护成0 1串,为\(p_i < x\)为\(0\),那么\(p_i \geq x\)为\(1\), ...