Elasticsearch 文档的核心元数据和文档修改、删除原理解析

文档核心元数据
  1. _index:说明了一个文档存储在哪个索引中,同一个索引下存放的是相似的文档(文档的field多数是相同的,可以由不同的field,但不建议使用),索引名必须是小写的,不能以下划线开头,不能包含括号。
  2. _type:表示文档属于索引中的哪个类型,一个索引下只能有一个type(6.0版本之前可以有多个type),类型名可以是大写也可以是小写的,不能以下划线开头,不能包含括号。
  3. _id:文档的唯一标识,和索引、类型组合在一起唯一标识了一个文档,可以手动指定值,也可以由Elasticsearch来生成这个值。
文档id生成方式

手动指定:通常是把其他系统的已有数据导入到Elasticsearch时,选择手动指定。

PUT /index/type/66

由 Elasticsearch 生成 id 值:Elasticsearch生成的id生成长度为20个字符,使用的是 base64 编码,URL安全,使用的是 GUID 算法,分布式下并发生成 id 值时不会冲突。

POST /index/type
_source 元数据分析

添加文档时 request body 中的内容,默认_source返回的是所有字段的数值。
指定返回的结果中含有哪些字段:

GET /index/type/1?_source=name

详解及用法查看:Elasticsearch Java API 的使用(11)—优化索引创建之mapping设置

文档修改、删除原理解析
改变文档内容原理解析

替换方式

PUT /lib/user/4
{
	"first_name": "Jane",
	"last_name": "Lucy",
	"age": 24,
	"about": "I like to collect rock albums",
	"interests": ["music"]
}

修改方式(partial update)

POST /lib/user/4/_update
{
	"doc": {
		"age": 26
	}
}

删除文档:标记为deleted,随着数据量的增加,Elasticsearch会选择合适的时间删除掉。

PUT和POST更新数据的区别

  1. post方式比put方式网络数据传输的次数要少,从而提高性能。post方式从查询文档到修改文档再到创建新的文档都是在Elasticsearch内部实现的。
  2. post请求链路比put要少,post方式发生并发冲突的可能性降低。
    这里写图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值