一对多数据关系映射:

elasticsearch 数据建模

也可以分开来存放:

elasticsearch 数据建模

第一次搜索,会得到很多个中间结果,之后再进行处理,这个时候的性能就不怎么好了。

但是这两种方式各自有优缺点:

数据不冗余,维护方便,应用层join,如果关联数据过多,导致查询过大,性能很差 反之亦然。

一般来说,对于es这种NoSQL类型的数据存储来讲,都是冗余模式....

 

 

对于文件系统的构造:

path_hierarchy tokenizer:

例如: /a/b/c/d --> path_hierarchy -> /a/b/c/d, /a/b/c, /a/b, /a

elasticsearch 数据建模

创建分词器:

elasticsearch 数据建模

创建mapping

elasticsearch 数据建模

添加数据

elasticsearch 数据建模

进行搜索

 

 

构建内嵌式object数据

elasticsearch 数据建模

标注好type

elasticsearch 数据建模

而不是

elasticsearch 数据建模

 

 

案例:

按照评论日期进行bucket划分,然后拿到每个月的评论的评分的平均值

elasticsearch 数据建模

elasticsearch 数据建模

 

 

父子关系建模:

elasticsearch 数据建模

elasticsearch 数据建模

指定父的id,这样就能路由到同一个shard中了。

搜索有1980年以后出生的员工的研发中心

elasticsearch 数据建模

搜索有名叫张三的员工的研发中心

elasticsearch 数据建模

搜索有至少2个以上员工的研发中心

elasticsearch 数据建模

搜索在中国的研发中心的员工

elasticsearch 数据建模

统计每个国家的喜欢每种爱好的员工有多少个

elasticsearch 数据建模

 

 

祖父孙三层关系建模

elasticsearch 数据建模

elasticsearch 数据建模

elasticsearch 数据建模

各自都指定父id进行路由,保证了在一个shard上。

搜索有爬山爱好的员工所在的国家

elasticsearch 数据建模

 

分类:

技术点:

相关文章: