私はElasticsearchで消費するためのやや動的な構造をマッピングするためのいくつかのポインタを探しています。ネストされた構造の弾性検索マッピング
生の構造自体はjsonですが、構造の一部が静的な構造の外側の要素ではなく、変数を含んでいるという問題があります。多少編集さの例を提供するために、
、私のJSONは次のようになります。
"stat": {
"state": "valid",
"duration": 5,
},
"12345-abc": {
"content_length": 5,
"version": 2
}
"54321-xyz": {
"content_length": 2,
"version", 1
}
最初のブロックは簡単です。 Elasticsearchは構造の "stat"部分をマッピングする素晴らしい仕事をしています。もし私がそのデータの多くをインデックスにダンプするなら、期待通りに動作します。問題は、次の2つのブロックは本質的に同じものですが、未処理のjsonはユニークな要素が構造に入り込むようにフォーマットされているため、Elasticsearchはデフォルトでこれをマップして、 :
"stat": {
"properties": {
"state": {
"type": "string"
},
"duration": {
"type": "double"
}
}
},
"12345-abc": {
"properties": {
"content_length": {
"type": "double"
},
"version": {
"type": "double"
}
}
},
"54321-xyz": {
"properties": {
"content_length": {
"type": "double"
},
"version": {
"type": "double"
}
}
}
私は「CONTENT_LENGTH」データのインデックスすべての能力をみたいが、それは分離なってきて、私はKibanaにデータをドロップする際に使用されている変数名のいくつかと、私は羽目になる本当に長いフィールド名は、無用の横になります。
構造に汎用タグを付けることはできますか?または、これは、ジェネレーション構造の名前を厳密にコーディングし、識別子フィールド名を追加することで、開発者がjson生成段階でより簡単に解決されます。
洞察力/助けを大いに感謝します。
ありがとうございます!
希望の動作がわかりません。あなたが提供したサンプルについて、ESが独自に作成する必要があるマッピングは何でしょうか? –
同じ構造のすべてのデータセットを集めることができるようにしたいが、生のjsonは構造変数名を与える。これはまた、jsonが、引用符で囲まれた数値のような好奇心の問題を抱えていた場合、構造がどのように見えるかわからずにマッピングを上書きすることができないことを意味します。実用的。そのことから、私はますますこれが未加工のjson構造に起因すると考えており、それは以下のajaelesのコメントに従って、変更を加える必要があるところです。 – VirtualGreg