白话Elasticsearch60-数据建模实战_Join datatype 父子关系数据建模

2021-08-17 15:23:38 浏览数 (1)


概述

继续跟中华石杉老师学习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 :戳这里

其他详见官网解读


示例

0 人点赞