文档与数据建模

数据建模 #

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

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

本章内容 #

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

推荐阅读顺序 #

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

与其他章节的关系 #