沙师弟,师父的充电器掉了

es里面多个index关联起来吗?就喝数据库连表一样

Elasticsearch | 作者 jimi | 发布于2020年06月04日 | 阅读数:6591

遇到很难受的问题?数据库里有医院医生数据, 一对多关系,我讲数据导入es中也是两个index,但是医生中有一些医院数据我都直接处理好了,关系型数据库中存储的医院id,es中我直接存的医院名字,现在实现 搜医生功能,我可以根据医生名搜索,也可以根据医院名去搜索,因为医生index里面有医院字段, 但是我现在要实现 搜医院 的功能,要根据医院名和医生名搜索,我医院名可以,但是怎么根据医生名去搜医院呢?要是关系型数据库就直接连表就可以,es中有类似做法吗?求教
 
已邀请:

tacsklet - 公司有用到es

赞同来自:

分2次去查呢,或者在同一个索引里面用join,不过数据量大了性能很差。

zqc0512 - andy zhou

赞同来自:

要的性能,多次查询,自己聚合

lzc

赞同来自:

es索引关联查询支持的不行,可以考虑改下数据结构,采用父子文档或嵌套模式存储数据

guluo - 念念不忘,必有回响

赞同来自:

医院一个索引,存储医院及相关信息;以上一张表存储医生信息及所属医院。
根据医生名字查询,获取医生信息,及所属医院id,根据医院id第二次查询获取医院信息,代码合并 ;根据医院名字查询也是一样

zhengchar

赞同来自:

如果字段数不多的话,将医院的信息增强到医生index中,我理解这都是相对静态的数据,不会频繁变更,所以整合在一个索引中,只利用检索的特性就可以实现多维度的数据检索。

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

多表关联数据建模,推荐看下:https://mp.weixin.qq.com/s/j7YdtmyuzBFRK1BViDtp2w

要回复问题请先登录注册