身安不如心安,屋宽不如心宽 。

关系型数据库中(MSSQL)一对多的结构在Elasticsearch中该如何设计

Elasticsearch | 作者 F91 | 发布于2018年03月29日 | 阅读数:3028

Elasticsearch 5.6.1
业务介绍:
企业下边有多个人员、多个资质、多条中标信息、多条奖惩等

在关系型数据库中,有如下表:
企业表(80w)
企业人员表(100w)
企业人员证书表(120)
企业资质表(70w)
企业中标表(500w)
企业奖惩表(400w)
其中人员表、资质表、中标表、奖惩表与企业表主外键关联、一对多的关系。
 
现在有多条件搜索企业的业务,同时满足:中标金额在某个区间的、有A、B、C资质的、有获得过xxx奖的、某类人员有x个的、人员拥有x本证书的!


目前MSSQL中每天都有增删改的操作

提问:
在Elasticsearch中该如何设计数据存储结构?
数据该该如何更新?
PS:后续还会有指定单表搜索的需求
 
已邀请:

zhexiao

赞同来自:

我是使用nest解决的,类似这种,不知道大家有没有好的办法。
    "q_outline": {
"type": "nested",
"properties": {
"num": {
"type": "keyword"
}
}
},
"q_cognition_map": {
"type": "nested",
"properties": {
"num": {
"type": "keyword"
}
}
},

rockybean - Elastic Certified Engineer, ElasticStack Fans,公众号:ElasticTalk

赞同来自:

建议按照你的业务需求专门设计一个数据模型,没有必要和数据库的字段一一对应

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

赞同来自:

除了上面的nested, Elasticsearch6.x有JOIN的新类型,类似5.x版本的父子文档,该类型就是用于解决1对多与多对多的库表关系。
具体参考:http://mp.weixin.qq.com/s/AJJj2Inia15ixxb3nYPr7Q

要回复问题请先登录注册