不为失败找理由,要为成功找方法。

关于es基于患者或者基于就诊记录的设计思路

Elasticsearch | 作者 novia | 发布于2021年01月04日 | 阅读数:1277

有这样的检索场景
 
数据:患者去医院的就诊(看病数据),包括(诊断、用药等等)
查询需求:
1、通过诊断、用药等关键词查询就诊记录列表(一个患者可能会有多次就诊记录)
2、通过诊断、用药等关键词查询患者列表
 
如何很好的设计索引
 
1、一条就诊代表一条数据(查询就诊记录时比较方便;但查询患者时需要aggs,同时涉及到分页,感觉效率较低)
2、一个患者代表一条数据(查询患者时比较方便,但部分患者会有上千次就诊记录,如果用nested保持就诊记录会不会有问题;查询就诊记录时感觉非常困难)
3、存储两份数据
 
大家有没有遇到这种设计问题?
已邀请:

JiangJibo - 喊我雷锋

赞同来自: novia

方案1:如果一个用户就诊记录多,那么就诊记录信息里的用户信息就会存储很多份,对存储性能不友好,分页用scoll api,如果就诊记录很多的话对第一次的查询影响较大,后续都一样的。如果一个用户的就诊记录不多的话可以用这个方案
 方案2 :如果用nested模型,那么你在新增一条就诊记录时,需要修改整个doc,性能很低的,不建议这样;
 
方案3:两份数据就是需要额外检索一次
 

 

要回复问题请先登录注册