以下是針對 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 的增刪改查操作以其強大的分布式架構為基礎,結合靈活的配置選項和高效的數據處理能力,適用于大規模數據的實時處理與分析。