【发布时间】:2020-07-14 07:22:17
【问题描述】:
我打算同时使用 MsSqlServer 和 Elastic。 MSSQL 是主数据库,Elastic 是搜索数据库。 我的 db 结构如下所示:
- 用户(ID、姓名、companyId) - 120k 条记录
- 公司(ID、名称)- 10k 条记录
- Company_matrix (parent_company_id, child_company_Id) - 20k 条记录
- Company_share_data (company_id, share_to_company_Id) - 50k 条记录
- 产品(id、名称、allow_to_be_shared、companyId) - 100 万条记录
我将为产品和公司表创建弹性索引以提高搜索速度。 companyId = X 的登录用户可以看到所有 companyid = X 的产品,或 Company_matrix 中定义的母公司的所有产品,或 Company_share_data 但 allow_to_be_shared 不等于 false。
这个查询在 SQL server 中非常简单,但在像 elasticsearch 这样的 nosql db 中却很痛苦。有没有办法在sqlserver中搜索“可用产品id”列表,然后将其传递给elasticsearch并与用户的搜索条件混合?还是有更好的主意?
谢谢
【问题讨论】:
标签: elasticsearch