美文网首页
父子关系文档

父子关系文档

作者: i_cyy | 来源:发表于2021-08-26 14:07 被阅读0次

    父-子关系文档 在实质上类似于 nested model :允许将一个对象实体和另外一个对象实体关联起来。而这两种类型的主要区别是:在 nested objects 文档中,所有对象都是在同一个文档中,而在父-子关系文档中,父对象和子对象都是完全独立的文档。
    父-子关系的主要作用是允许把一个 type 的文档和另外一个 type 的文档关联起来,构成一对多的关系:一个父文档可以对应多个子文档 。与 nested objects 相比,父-子关系的主要优势有:

    • 更新父文档时,不会重新索引子文档。
    • 创建,修改或删除子文档时,不会影响父文档或其他子文档。这一点在这种场景下尤其有用:子文档数量较多,并且子文档创建和修改的频率高时。
    • 子文档可以作为搜索结果独立返回。

    Elasticsearch 维护了一个父文档和子文档的映射关系,得益于这个映射,父-子文档关联查询操作非常快。但是这个映射也对父-子文档关系有个限制条件:父文档和其所有子文档,都必须要存储在同一个分片中。
    父-子文档ID映射存储在 Doc Values 中。当映射完全在内存中时, Doc Values 提供对映射的快速处理能力,另一方面当映射非常大时,可以通过溢出到磁盘提供足够的扩展能力 。

    常见的是使用hasChild query,通过子文档查询符合条件的父文档,详情可参考官网api:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/query-dsl-has-child-query.html

    还有就是 hasParent query,返回其加入的父文档与提供的查询匹配的子文档,可参考官网api:
    https://www.elastic.co/guide/en/elasticsearch/reference/7.9/query-dsl-has-parent-query.html

    相关文章

      网友评论

          本文标题:父子关系文档

          本文链接:https://www.haomeiwen.com/subject/bxcuiltx.html