私は、Elasticsearchの文書によって完全に混乱しています。 Basic Concepts: Typeで「タイプ」とはElasticsearchの意味ですか?
、「タイプ」のMongoDB内のコレクションのように何とかしている:このインデックスで
は、ユーザー・データのタイプ、ブログのデータのための別のタイプ、およびコメントデータのためのさらに別のタイプを定義することがあります。
しかしTypes and Mappings: Type Takeawaysで、それは言う:
タイプは、同様にデータの完全に異なるタイプのために適していません。 2つのタイプに相互に排他的なフィールドセットがある場合、インデックスの半分が「空の」値を含むことになり(フィールドはまばらになります)、結果的にパフォーマンスの問題が発生します。
上記の「ユーザー」と「ブログ」には、相互に排他的なフィールドがありますか? たとえば、「ユーザー」の「名前」、「年齢」、「ブログ」の「createdAt」、「コンテンツ」があります。
私はElasticsearchとMongoDBの間のマッピング関係を信じるように慣れては次のとおりです。
インデックス< =>データベース
タイプ< =>コレクション
それは右ではないでしょうか? そうでない場合は、それらの間で推奨されるマッピングスタイルは何ですか?
"user"と "blog"は別々のインデックスに入れるか、異なるタイプを1つのインデックスに入れるべきですか? – Chad
それはデータに依存します:クエリでそれらの間の関係が必要ですか?ユーザーに属するブログが増えますか?幾つ?ユーザーはどのくらい複雑ですか?それはあなたが単純に同じインデックスとタイプに入れることができるので、単純にデータを複製することができます。 Btw、ESの世界で何度も、非正規化されたデータを持つ方がずっと良いです(ユーザーが所有する各ブログに同じユーザーデータを入れるなど)。 –