3

親と子のマッピングを使用してデータを正規化しましたが、理解する限り、_parent ドキュメントからフィールドを取得する方法はありません。

これが私のインデックスのマッピングです:

{
 "mappings": {
    "building": {
      "properties": {
        "name": {
          "type": "string"
        }
      }
    },
    "flat": {
      "_parent": {
        "type": "building"
      },
      "properties": {
        "name": {
          "type": "string"
        }
      }
    },
    "room": {
      "_parent": {
        "type": "flat"
      },
      "properties": {
        "name": {
          "type": "string"
        },
        "floor": {
          "type": "long"
        }
      }
    }
  }
}

今、私は部屋のタイプflat_nameと保管の最良の方法を見つけようとしています. building_nameこれらのフィールドにはクエリを実行しませんが、floor.

何百万もの部屋があり、メモリがあまりないため、これらの重複した値がメモリ不足を引き起こす可能性があると思われます。今のところ、flat_nameフィールドbuilding_nameには"index": "no"プロパティがあり、_source フィールドの圧縮をオンにしました。

複数のクエリを実行するなどの重複値を回避するための効率的な提案はありますか、または _parent ドキュメントからフィールドを取得するためのハッキーな方法や、非正規化されたデータがこの種類の問題を処理する唯一の方法ですか?

4

0 に答える 0