Elasticsearch索引是否可能具有由多个字段组成的主键?

时间:2017-10-10 09:33:49

标签: elasticsearch mongoosastic

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

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

目前我们在测试数据中的多个数据库中重复使用了一些相同的_id用于各种配置集合(不同的文档内容,相同的_id),但是当同步到弹性时会导致问题,尽管它们和# 39;当它们变成具有相同类型和ID的弹性时,在单独的数据库中,其中一个被丢弃。

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

1 个答案:

答案 0 :(得分:0)

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

解决方案2:分离索引。