主题
索引与文档
在 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 数据存储与查询的核心载体,掌握它们的结构和基本操作,是进行搜索、聚合与分析的第一步。