2017-10-10 22 views
0

私はマルチテナントシステムを持っており、各テナントはMongoDBデプロイメント内で独自のMongoデータベースを取得します。Elasticsearchインデックスは、複数のフィールドで構成される主キーを持つことは可能ですか?

しかし、弾性検索インデックスの場合、これはすべてMongoosasticを介して1つのエラスティックインスタンスに入り、検索時にデータを分離した状態に保つためにTenantDBでタグ付けされます。

現在、さまざまな設定コレクション(異なるドキュメントコンテンツ、同じ_id)のテストデータで複数のデータベースにわたって同じ_idが再利用されていますが、これは別々になっているように彼らが同じタイプとIDで弾力性になるとデータベースが落ちる。

IDとTenantDBの両方を主キーとして指定できますか?

答えて

0

解決策1:Elasticsearchで複数のインデックスを検索できます。ただし、データベースのインデックスを分離できない場合は、次のようにしてください。データをelasticsearchに同期させながら、パターンを使用してelastic document _idを作成します。たとえば、mongoDb1からmdb1_{mongo_id}を、mongoDb2からmdb2_{mongo_id}などを使用してください。同じmongoデータベースに同じIDがない場合、これはあなたの_idsに固有のものになります。

解決策2:インデックスを区切ります。

関連する問題