1

我有一个多租户系统,每个租户在 MongoDB 部署中都有自己的 Mongo 数据库。

然而,对于弹性搜索索引,这一切都通过 Mongoosastic 进入一个弹性实例,用 TenantDB 标记以在搜索时保持数据分离。

目前,我们在多个数据库中为各种配置集合(不同的文档内容,相同的 _id)的测试数据中重复使用了一些相同的 _id,但是这在同步到弹性时会导致问题,因为它们来时虽然它们在单独的数据库中进入具有相同类型和 ID 的弹性,其中一个被丢弃。

是否可以同时指定 ID 和 TenantDB 作为主键?

4

1 回答 1

0

方案一:可以在 Elasticsearch 中搜索多个索引。但是,如果你不能分离你的数据库索引,你可以按照下面的方法。在将数据同步到 elasticsearch 时,使用模式创建弹性文档 _id。例如,从 mongoDb1 使用mdb1_{mongo_id},从 mongoDb2 使用mdb2_{mongo_id}等。如果您在同一个 mongo 数据库中没有相同的 id,这将是唯一的 _ids。

解决方案 2:分离索引。

于 2017-10-10T10:37:55.987 回答