映射与数据类型
在 Elasticsearch 中,**映射(mapping)**决定了文档中字段的类型与行为,类似于关系型数据库中的“表结构”。合理的映射设计对于索引效率、查询准确性与存储成本具有重要影响。
1. 什么是映射(Mapping)
映射用于定义每个字段的名称、数据类型、是否参与搜索、分词方式等。默认情况下,Elasticsearch 会自动推断字段类型,但强烈建议为生产环境手动定义映射。
2. 常见数据类型
| 类型 | 描述 |
|---|---|
text |
可分词文本,支持全文搜索 |
keyword |
精确匹配文本,不分词(如标签、状态) |
integer |
整数型 |
float |
浮点型 |
boolean |
布尔值(true / false) |
date |
日期时间,支持多种格式解析 |
object |
嵌套的 JSON 对象 |
nested |
特殊对象类型,用于嵌套数组查询 |
3. 创建映射示例
PUT /products
{
"mappings": {
"properties": {
"name": { "type": "text" },
"price": { "type": "float" },
"tags": { "type": "keyword" },
"released": { "type": "date" }
}
}
}
`
4. 查看与修改映射
- 查看映射:
GET /products/_mapping - 修改映射(受限,仅支持新增字段):建议使用
reindex重建索引以变更已定义字段
5. 自动映射 vs 手动映射
| 模式 | 优点 | 缺点 |
|---|---|---|
| 自动推断 | 快速,适合测试场景 | 易产生类型错误,字段冲突难排查 |
| 手动定义 | 可控,结构清晰 | 初期设计工作量较大 |
理解映射与数据类型的设置是设计良好索引结构的关键,能有效避免查询偏差、节省存储并提升性能。
相关内容
- 定义与用途 本章介绍 Elasticsearch 的定义、核心功能与适用场景,帮助读者理解它为何成为现代搜索与日志分析的首选解决方案。
- 使用场景 本章总结 Elasticsearch 在全文搜索、日志分析、监控告警、推荐系统等领域的典型应用场景,助力理解其强大用途。
- 核心概念简介 本章概览 Elasticsearch 的核心构成,包括索引、文档、映射、节点、集群等关键概念,为后续使用和架构设计打下基础。
- 本地安装 本章介绍如何在本地环境中安装 Elasticsearch,适配 Windows、macOS 和 Linux 系统,便于开发测试与入门学习。
- Docker 安装 本章讲解如何通过 Docker 安装和运行 Elasticsearch,适合开发者快速搭建测试环境并集成至容器化工作流中。
- 与 Kibana 一起部署 本章介绍如何将 Elasticsearch 与 Kibana 一起部署,使用 Docker Compose 快速构建可视化分析平台,适合开发与测试环境使用。