Elasticsearch基础更新操作解析
需积分: 48 197 浏览量
更新于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序列化和查询优化相关的概念。
2023-12-19 上传
2024-05-08 上传
2023-11-27 上传
2019-05-23 上传
2024-06-19 上传
2021-06-06 上传
2023-06-20 上传
2024-07-06 上传
2020-09-24 上传
小炸毛周黑鸭
- 粉丝: 24
- 资源: 2万+
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查