Elasticsearch 索引及节点级别增删改查技术
以下是针对 Elasticsearch 索引及节点级别增删改查技术做的简短总结:
一、索引操作
-
创建索引
- 功能:指定分片、副本数及映射规则[2][4]。
- 示例:
PUT /<index_name>
,可定义settings
(如分片数)和mappings
(字段类型)[2][4]。
-
修改索引配置
- 动态参数:如副本数、刷新间隔等,可通过
PUT /<index_name>/_settings
调整[2][4]。 - 静态参数:如初始分片数,仅能在创建时设置[2]。
- 动态参数:如副本数、刷新间隔等,可通过
-
删除索引
- 命令:
DELETE /<index_name>
,直接移除整个索引及其数据[2][4]。
- 命令:
-
判断索引状态
- 存在性检测:
HEAD /<index_name>
,返回成功表示存在[2]。
- 存在性检测:
二、文档操作(索引内数据操作)
-
新增文档
- 方式:
PUT /<index>/_doc/<id>
(覆盖已有文档);POST /<index>/_doc/<id>
(自动生成ID)[2][5]。 - 区别:
CREATE
仅在文档不存在时成功[2]。
- 方式:
-
查询文档
- 单条查询:
GET /<index>/_doc/<id>
,获取完整文档及元数据[2][5]。 - 存在性检测:
HEAD /<index>/_doc/<id>
[2]。
- 单条查询:
-
更新文档
- 局部更新:
POST /<index>/_update/<id>
,通过doc
字段修改特定属性[2]。 - 全量覆盖:
PUT /<index>/_doc/<id>
,替换整个文档[2]。
- 局部更新:
-
删除文档
- 命令:
DELETE /<index>/_doc/<id>
,软删除(标记为已删除,后续合并时物理去除)[1][2]。
- 命令:
三、关键特性
-
分布式机制:写入时通过哈希路由选择主分片,同步至副本分片;读取时协调节点合并各分片结果[1][3]。
-
一致性保障:通过事务日志(Translog)实现故障恢复,支持乐观锁(
if_seq_no
+if_primary_term
)控制并发更新[1][3]。 -
批量操作:支持多文档原子操作,提升效率[3]。
总之,Elasticsearch 的增删改查操作以其强大的分布式架构为基础,结合灵活的配置选项和高效的数据处理能力,适用于大规模数据的实时处理与分析。