Elasticsearch基础更新操作解析
需积分: 48 53 浏览量
更新于2024-08-18
收藏 810KB PPT 举报
"这篇内容主要介绍了Elasticsearch(ES)的基础知识,特别是关于文档的更新操作。ES通过PUT或POST方法可以对已有文档进行更新。在更新过程中,ES首先标记旧文档为删除状态,随后添加新文档,旧文档会在后台逐步被清理。此外,文中还提到了其他CRUD操作,如创建、删除和索引操作,并提到了使用Jackson库生成JSON对象,以及DFS在ES查询中的可能含义。"
在Elasticsearch中,文档的更新是一个涉及多个步骤的过程。当使用PUT或POST请求对已有ID的文档进行更新时,ES并不直接覆盖原有文档,而是采取以下策略:
1. **标记旧文档为删除**:首先,系统会将与请求ID匹配的现有文档标记为删除状态。这意味着在逻辑上该文档已被删除,但物理上它仍然存在于数据结构中。
2. **添加新文档**:接着,新的文档内容会被添加到索引中,分配相同的ID。这实际上创建了一个新的版本,与旧文档并存。
3. **后台清理**:旧的、被标记为删除的文档并不会立即从索引中移除,以确保数据一致性。ES会在后续的索引操作中,特别是在集群有足够空闲资源时,进行后台清理,实际移除这些已删除的文档。
此外,文章还提到了一些其他的ES操作示例:
- **创建文档**:使用`create`命令来创建一个新的文档,如`{"create":{"_index":"test","_type":"type1","_id":"3"}} {"field1":"value3"}`。
- **删除文档**:通过`delete`命令删除指定ID的文档,如`{"delete":{"_index":"test","_type":"type1","_id":"2"}}`。
- **索引文档**:使用`index`命令将文档索引到指定的索引和类型,例如`{"index":{"_index":"crxy","_type":"emp","_id":"21"}} {"name":"test21"}`。
对于JSON对象的生成,文章提到了使用Jackson库。`jackson-databind`是一个Java库,可以方便地将Java对象转换为JSON格式,如`String json = mapper.writeValueAsString(yourBeanInstance);`。
最后,文章简要讨论了ES查询中的DFS概念,DFS可能是Distributed Frequency Scatter的缩写,涉及到分布式环境下查询时的词频和文档频率的处理。在查询之前,ES可能会先收集各分片的词频和文档频率信息,以便于后续的搜索操作。
这篇文章深入浅出地介绍了ES中的文档更新流程,以及其他基本操作,并提及了与JSON序列化和查询优化相关的概念。
156 浏览量
191 浏览量
140 浏览量
2019-05-23 上传
2024-06-19 上传
150 浏览量
2023-06-20 上传
2024-07-06 上传
220 浏览量
小炸毛周黑鸭
- 粉丝: 25
- 资源: 2万+
最新资源
- 导入和读取 Excel 文件:使用 ActiveX 将 Excel 数据导入工作区的自定义且灵活的功能。-matlab开发
- bguerel:本努尔·古雷尔
- cachlamhay
- devopstools.guthub.io
- makehuman-0.8_beta_src.tar.gz
- 新浪微博小助手 龙网新浪微博小助手 v9.7
- intro-to-java-workshop-Jayh80961:GitHub教室创建的java-workshop-Jayh80961简介
- 行业分类-设备装置-一种承坐式万向运动平台.zip
- tensorscript:移至https
- CV
- 协程:学校Opdracht
- 基于神经网络的图像分类和bp算法 matlab实现 图像分类.zip
- bw-ssh-docs:Bitwarden SSH管理器文档
- 行业分类-设备装置-一种接地电容的RC常数测量方法.zip
- lin_interp(T, var_name, TBDx):内插表值-matlab开发
- 强制粘帖0.2.zip