次のマッピングを使用してデータのインデックスを作成しようとしました。
{
"mappings": {
"chow-demo": {
"properties": {
"@fields": {
"dynamic": "true",
"properties": {
"asgid": {
"type": "string",
"analyzer": "keyword"
},
"asid": {
"type": "long"
},
"astid": {
"type": "long"
},
"clfg": {
"analyzer": "keyword",
"type": "string"
},
"httpcode": {
"type": "long"
},
"oid": {
"type": "string"
},
"onid": {
"type": "long"
},
"ptrnr": {
"analyzer": "keyword",
"type": "string"
},
"pguid": {
"analyzer": "keyword",
"type": "string"
},
"ptid": {
"type": "long"
},
"sid": {
"type": "long"
},
"src_url": {
"analyzer": "keyword",
"type": "string"
},
"title": {
"analyzer": "keyword",
"type": "string"
},
"ts": {
"type": "long"
}
}
},
"@timestamp": {
"format": "dateOptionalTime",
"type": "date"
},
"@message": {
"type": "string"
},
"@source": {
"type": "string"
},
"@type": {
"analyzer": "keyword",
"type": "string"
},
"@tags": {
"type": "string"
},
"@source_host": {
"type": "string"
},
"@source_path": {
"type": "string"
}
}
},
"chow-clfg": {
"_parent": {
"type": "chow-demo"
},
"dynamic": "true",
"properties": {
"_ttl": {
"enabled": true,
"default": "1h"
},
"clfg": {
"analyzer": "keyword",
"type": "string"
},
"@timestamp": {
"format": "dateOptionalTime",
"type": "date"
},
"count": {
"type": "long"
}
}
}
}
}
子タイプ「chow-clfg」を設定せずに親タイプ「chow-demo」を設定しようとしたところ、ドキュメントのインデックス作成が拒否されました。(Elasticsearach にインデックス付けされたドキュメントはありません)
「chow-clfg」の子マッピングを取り出すと、通常どおり適切にインデックスが作成されます。したがって、次の質問があります。
- 私のマッピング構造は間違っていますか?
- データを正常にインデックス化するには、親と子を同時にインデックス化する必要がありますか?
私のプロジェクトを進めるには、この質問で本当に助けが必要です! ありがとう!