手动与动态映射
映射(Mapping)定义了索引中文档字段的结构和类型,Elasticsearch 支持两种映射方式:手动映射和动态映射。合理选择映射方式有助于提升索引效率和数据准确性。
1. 手动映射
用户显式定义字段类型和属性,适合对数据结构有严格要求的场景。
优点
- 明确字段类型,避免类型冲突
- 控制字段索引方式和分词器
- 提升查询性能和准确性
示例
PUT /my-index
{
"mappings": {
"properties": {
"title": { "type": "text" },
"price": { "type": "float" },
"available": { "type": "boolean" }
}
}
}
`
2. 动态映射
Elasticsearch 自动推断新字段类型并创建映射,适合结构不固定或快速开发场景。
特点
- 新字段自动添加映射
- 方便快速接入数据
- 可能引入类型错误或映射膨胀
动态映射控制
通过设置 dynamic 参数,可以控制动态映射行为:
true(默认):自动映射新字段false:忽略新字段,不添加映射strict:遇到未定义字段报错
示例
PUT /my-index
{
"mappings": {
"dynamic": "strict",
"properties": {
"title": { "type": "text" }
}
}
}
3. 选择建议
- 结构明确、生产环境推荐手动映射
- 快速开发或数据结构不确定时,可使用动态映射
- 配合索引模板和动态模板提升灵活性
理解并合理应用手动与动态映射,能有效控制索引结构,保障数据的准确性和查询效率。
相关内容
- 定义与用途 本章介绍 Elasticsearch 的定义、核心功能与适用场景,帮助读者理解它为何成为现代搜索与日志分析的首选解决方案。
- 使用场景 本章总结 Elasticsearch 在全文搜索、日志分析、监控告警、推荐系统等领域的典型应用场景,助力理解其强大用途。
- 核心概念简介 本章概览 Elasticsearch 的核心构成,包括索引、文档、映射、节点、集群等关键概念,为后续使用和架构设计打下基础。
- 本地安装 本章介绍如何在本地环境中安装 Elasticsearch,适配 Windows、macOS 和 Linux 系统,便于开发测试与入门学习。
- Docker 安装 本章讲解如何通过 Docker 安装和运行 Elasticsearch,适合开发者快速搭建测试环境并集成至容器化工作流中。
- 与 Kibana 一起部署 本章介绍如何将 Elasticsearch 与 Kibana 一起部署,使用 Docker Compose 快速构建可视化分析平台,适合开发与测试环境使用。