- 父-子关系文档
父子关系文档在实质上类似于nested model:允许将一个实体对象与另一个实体对象关联起来。而这两种类型的主要区别是:在nested objects文档中,所有对象都是在同一个文档中,而在父子关系文档中,父对象和子对象都是完全独立的文档。
更新父文档时,不会重新索引子文档
创建,修改或者删除子文档时,不会影响父文档。这一点在这种场景下尤其有用:子文档数量较多,并且子文档创建和修改的频率较高。
子文档可以作为搜索结果独立返回。 父子文档关联查询操作较快。但是父子文档关系有个限制条件:父文档和其所有子文档都必须要存储在同一个分片中。 父子文档ID映射存储在Doc Values中。当映射完全在内存中时,Doc Values提供对映射的快速处理能力,另一方面当映射非常大时,可以通过溢出到磁盘提供足够的扩展能力。 如果你想改变一个子文档的parent值,仅通过更新这个子文档是不够的,因为新的父文档有可能在另外一个分片上。因此,你必须要先把子文档删除,然后在重新索引这个子文档。