# 索引与文档

URL: https://caijiao.org/elasticsearch/01.intro/08.index-and-doc
Source: docs/elasticsearch/01.intro/08.index-and-doc.md
Description: 本章深入讲解 Elasticsearch 中索引与文档的概念、结构与操作方式，帮助理解数据如何存储与查询的基本原理。

在 Elasticsearch 中，一切数据都以**文档（Document）**的形式存储在**索引（Index）**中。理解索引与文档的概念，是使用和设计搜索系统的核心基础。

## 1. 什么是索引（Index）

索引类似于关系型数据库中的“数据库”或“表”，是文档的逻辑集合。每个索引有自己的名称，并可定义字段结构（Mapping）和分片策略。

```json
PUT /my-index
````

创建名为 `my-index` 的索引。

## 2. 什么是文档（Document）

文档是 Elasticsearch 中的最小数据单元，通常使用 JSON 格式表示。例如，一条用户数据或一篇文章即为一个文档。

```json
POST /my-index/_doc
{
  "title": "Elasticsearch 教程",
  "category": "搜索引擎",
  "views": 123
}
```

## 3. 文档 ID 与类型说明

每个文档拥有一个唯一 ID。自 7.x 起，Elasticsearch 已废弃文档类型（`_type`），推荐统一使用 `_doc` 作为默认类型。

## 4. 索引与文档的基本操作

* 创建索引：`PUT /index-name`
* 添加文档：`POST /index-name/_doc`
* 获取文档：`GET /index-name/_doc/id`
* 删除文档：`DELETE /index-name/_doc/id`
* 删除索引：`DELETE /index-name`

## 5. 注意事项

* 索引名称必须小写，不能包含空格或特殊字符
* 文档数据结构应尽量统一，避免字段冲突
* 大量索引或文档可能影响性能，需规划好数据模型

---

索引与文档是 Elasticsearch 数据存储与查询的核心载体，掌握它们的结构和基本操作，是进行搜索、聚合与分析的第一步。
