elasticsearch 数据建模

一对多数据关系映射:

也可以分开来存放:

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

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

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

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

 

 

对于文件系统的构造:

path_hierarchy tokenizer:

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

创建分词器:

创建mapping

添加数据

进行搜索

 

 

构建内嵌式object数据

标注好type

而不是

 

 

案例:

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

 

 

父子关系建模:

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

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

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

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

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

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

 

 

祖父孙三层关系建模

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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值