---
title: "文档与数据建模"
date: 0001-01-01
description: "如何为搜索而建模：文档设计、嵌套对象、父子关系、反范式、时间序列与多租户模式。"
tags: ["最佳实践", "数据建模"]
summary: "数据建模 #  如何为搜索设计数据结构？这是每个 Easysearch 用户的关键问题。
和传统关系型数据库不同，Easysearch 更倾向于通过冗余与预计算来换取读性能与查询表达力。好的建模能让查询简洁高效，坏的建模则会导致查询复杂、性能低下。
本章内容 #     主题 说明      文档设计 文档结构、字段设计、多字段、标识符与路由、更新模式与并发控制    反范式与权衡 规范化 vs 冗余、何时反范式、更新成本与一致性    Nested 建模 一对多/多对多的嵌套对象、笛卡尔积假匹配、nested 查询与聚合    Parent-Child 建模 父子关联、与 Nested 对比、路由策略、has_child/has_parent    向量字段建模 向量/语义搜索的字段设计、维度选择、存储优化与性能权衡    时间序列建模 按时间组织索引、别名管理、索引模板、数据保留策略    多租户建模 一用户一索引 vs 共享索引、路由优化、别名、容量规划    推荐阅读顺序 #   文档设计 → 先搞定单个文档&quot;放什么字段、怎么设计&quot; 反范式与权衡 → 理解搜索系统中冗余的价值与代价 Nested → 一对多 / 多对多下的数组字段与嵌套对象 Parent-Child → 需要真正引用关系、且更新/生命周期不同步时 向量字段建模 → 语义搜索场景中的向量存储与优化 时间序列 → 日志/指标/事件流的索引规划 多租户 → 多用户/多组织场景下的索引划分与隔离  与其他章节的关系 #    索引与分片设计：从基础设施角度讨论分片与模板，与本章的数据视角互补  映射基础：具体的 Mapping 配置语法与字段类型  核心概念：索引、文档、分片等底层概念  "
---


# 数据建模

如何为搜索设计数据结构？这是每个 Easysearch 用户的关键问题。

和传统关系型数据库不同，Easysearch 更倾向于通过**冗余与预计算**来换取读性能与查询表达力。好的建模能让查询简洁高效，坏的建模则会导致查询复杂、性能低下。

## 本章内容

| 主题 | 说明 |
|------|------|
| [文档设计]({{< relref "./document-design.md" >}}) | 文档结构、字段设计、多字段、标识符与路由、更新模式与并发控制 |
| [反范式与权衡]({{< relref "./denormalization.md" >}}) | 规范化 vs 冗余、何时反范式、更新成本与一致性 |
| [Nested 建模]({{< relref "./nested.md" >}}) | 一对多/多对多的嵌套对象、笛卡尔积假匹配、nested 查询与聚合 |
| [Parent-Child 建模]({{< relref "./parent-child.md" >}}) | 父子关联、与 Nested 对比、路由策略、has_child/has_parent |
| [向量字段建模]({{< relref "./vector-fields.md" >}}) | 向量/语义搜索的字段设计、维度选择、存储优化与性能权衡 |
| [时间序列建模]({{< relref "./time-series.md" >}}) | 按时间组织索引、别名管理、索引模板、数据保留策略 |
| [多租户建模]({{< relref "./multi-tenancy.md" >}}) | 一用户一索引 vs 共享索引、路由优化、别名、容量规划 |

## 推荐阅读顺序

1. **文档设计** → 先搞定单个文档"放什么字段、怎么设计"
2. **反范式与权衡** → 理解搜索系统中冗余的价值与代价
3. **Nested** → 一对多 / 多对多下的数组字段与嵌套对象
4. **Parent-Child** → 需要真正引用关系、且更新/生命周期不同步时
5. **向量字段建模** → 语义搜索场景中的向量存储与优化
6. **时间序列** → 日志/指标/事件流的索引规划
7. **多租户** → 多用户/多组织场景下的索引划分与隔离

## 与其他章节的关系

- [索引与分片设计]({{< relref "../index-design.md" >}})：从基础设施角度讨论分片与模板，与本章的数据视角互补
- [映射基础]({{< relref "/docs/features/mapping-and-analysis/mapping-basics.md" >}})：具体的 Mapping 配置语法与字段类型
- [核心概念]({{< relref "/docs/fundamentals/concepts.md" >}})：索引、文档、分片等底层概念
