Elasticsearch 中的文档关系:嵌套与父子关系解析
在 Elasticsearch 中处理文档关系时,我们有多种方式可供选择,其中嵌套文档和父子关系是两种常见的方法。下面将详细介绍这两种方式的特点、使用方法以及相关操作。
1. 嵌套文档与父子关系的选择背景
当使用嵌套文档时,虽然它有一定的优势,但也存在明显的缺点。由于嵌套文档是紧密相连的,更新或添加一个内部文档都需要对整个集合进行重新索引。而且,当嵌套文档变得很大时,比如在一个聚会网站中,每个组有一个文档,并且所有的活动都嵌套在其中,这种情况下使用单独的 Elasticsearch 文档并定义父子关系可能是更好的选择。
2. 嵌套类型定义文档关系的优缺点
2.1 优点
- 对象边界感知 :嵌套类型能够识别对象边界,避免出现不恰当的匹配,例如不会出现对 “Radu Hinman” 的错误匹配。
- 一次性索引 :在定义好嵌套映射后,可以像处理对象一样一次性对整个文档进行索引。
- 联合查询与聚合 :嵌套查询和聚合可以将父部分和子部分连接起来,并且可以在这个联合上运行任何查询,这是本章中其他方法所不具备的功能。
- 快速查询连接 :由于构成 Elasticsearch 文档的所有 Lucene 文档都在同一段的同一个块中,查询时的连接速度很快。
- 透明功能集成 :可以将子文档包含在父文档中,以获得对
超级会员免费看
订阅专栏 解锁全文
2589

被折叠的 条评论
为什么被折叠?



