2017-10-10 91 views
0

我有一個多租戶系統,每個租戶在MongoDB部署中都有自己的Mongo數據庫。Elasticsearch索引可能有一個由多個字段組成的主鍵嗎?

但是對於彈性搜索索引,這都通過Mongoosastic進入一個彈性實例,用TenantDB標記以在搜索時保持數據分離。

目前我們在各種配置集合(不同的文檔內容,相同的_id)的測試數據中重複使用了相同的_id,但是這在同步到彈性時會導致問題,雖然它們分開數據庫,當它們變得具有相同的類型和ID的彈性時,其中一個會被丟棄。

是否可以指定ID和TenantDB作爲主鍵?

回答

0

解決方案1:您可以在Elasticsearch中搜索多個索引。但是,如果你不能分開你的索引數據庫,你可以按照下面的方法。在將數據同步到elasticsearch時,使用模式來創建彈性文檔_id。例如,從mongoDb1使用mdb1_{mongo_id},從mongoDb2使用mdb2_{mongo_id}等。如果您在同一個mongo數據庫中沒有相同的id,這將是唯一的_ids。

解決方案2:分開索引。

相關問題