概述
继续跟中华石杉老师学习ES,第60篇
课程地址: https://www.roncoo.com/view/55
白话Elasticsearch58-数据建模实战_基于nested object实现博客与评论嵌套关系
白话Elasticsearch59-数据建模实战_ Nested Aggregation/ Reverse nested Aggregation对嵌套的博客评论数据进行聚合分析
前面我们学习了nested object的建模,有个不好的地方,就是采取的是类似冗余数据的方式,将多个数据都放在一起了,维护成本比较高
parent child建模方式,采取的是类似于关系型数据库的三范式类的建模,多个实体都分割开来,每个实体之间都通过一些关联方式,进行了父子关系的关联,各种数据不需要都放在一起,父doc和子doc分别在进行更新的时候,都不会影响对方.
一对多关系的建模,维护起来比较方便,而且我们之前说过,类似关系型数据库的建模方式,应用层join的方式,会导致性能比较差,因为做多次搜索。父子关系的数据模型如下每个join field 的 has_child或has_parent查询都会对查询性能产生重大影响:
父子关系数据模型,相对于nested数据模型来说,优点是父doc和子doc互相之间不会影响
官网
Join datatype :戳这里
其他详见官网解读
示例