ElasticSearch 基本操作详解:索引管理、数据增删改查全实战

ElasticSearch 是一个分布式、RESTful 风格的搜索和分析引擎,广泛应用于日志分析、全文检索、实时数据分析等场景。

本文将从索引管理、文档增删改查、数据检索与聚合分析等核心操作出发,结合实战示例,帮助开发者快速掌握 ElasticSearch 的基础使用与进阶技巧。


一、ElasticSearch 核心概念解析

1. 索引(Index)

  • 类似于数据库中的“数据库”,是文档的逻辑容器。
  • 每个索引可以配置分片(Shard)和副本(Replica),支持水平扩展与高可用。

2. 文档(Document)

  • 最小的数据单元,以 JSON 格式存储。
  • 每个文档属于一个类型(Type,7.x 后移除),并拥有唯一 ID。

3. 倒排索引(Inverted Index)

  • ElasticSearch 的核心机制,通过关键词反向定位文档位置,实现高效检索。

二、索引管理:创建、配置与维护

1. 创建索引

# 使用默认配置创建索引
PUT /my_index
# 自定义分片与副本配置
PUT /my_index
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
  }
}

2. 查看索引信息

# 查看所有索引
GET /_cat/indices?v

# 查看特定索引详情
GET /my_index/_settings
GET /my_index/_mapping

3. 删除索引

# 删除单个索引
DELETE /my_index

# 批量删除索引(支持通配符)
DELETE /my_index*,logs-*

4. 索引模板(Index Template)

用于定义新索引的默认配置和映射规则:


image.png
PUT /_template/my_template
{
  "index_patterns": ["logs-*", "metrics-*"],
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "timestamp": { "type": "date" }
    }
  }
}

5. 索引别名(Alias)

实现索引的逻辑分组与无缝切换:

# 为索引添加别名
POST /_aliases
{
  "actions": [
    { "add": { "index": "v1", "alias": "current" } }
  ]
}

# 查询别名指向的索引
GET /current/_alias

三、文档操作:增删改查全场景覆盖

1. 插入文档

(1)自动生成 ID

POST /my_index/_doc/
{
  "title": "ElasticSearch 入门",
  "content": "分布式搜索引擎的核心原理与实践"
}

(2)手动指定 ID

PUT /my_index/_doc/1001
{
  "title": "高性能搜索",
  "tags": ["ES", "大数据"]
}

2. 查询文档

(1)通过 ID 查询

GET /my_index/_doc/1001

(2)条件查询(Query DSL)

POST /my_index/_search
{
  "query": {
    "match": {
      "title": "ElasticSearch"
    }
  }
}

3. 更新文档

(1)全量替换

PUT /my_index/_doc/1001
{
  "title": "ElasticSearch 核心技术",
  "tags": ["搜索", "分析"]
}

[图片上传中...(image.png-18ff6b-1747618265546-0)]

(2)局部更新(Update By Query)

还有 59% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥4.99 继续阅读

推荐阅读更多精彩内容