2
次のドキュメントがElasticsearchに挿入されると仮定します。フィールドrequest.body
は内部のオブジェクトおよび/またはフィールドを入れ子になった動的なオブジェクトであることを、私はstring
として全体request.body
を保存したいと私はElasticsearchがrequest.body
オブジェクト内のプロパティの新しいフィールドを作成する必要はありませんが与えられダイナミックテンプレート:オブジェクトをプレーンストリングとして保存する
{
"message": "hello",
"request": {
"body": {
"data": "hi",
"some_what_dynamic": {
"nested": {
"not_ending": 10000
}
}
}
}
}
。
これを実現するにはどうすればマッピングを定義できますか?ここで
は現在dynamic_templates定義です:
{
"template": "logstash-*",
"mappings": {
"_default_": {
"dynamic_templates": [
{
"message_field": {
"path_match": "message",
"mapping": {
"norms": false,
"type": "text"
},
"match_mapping_type": "string"
}
},
{
"string_fields": {
"mapping": {
"norms": false,
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"match_mapping_type": "string",
"match": "*"
}
},
{
"body_fields": {
"match": "body",
"mapping": {
"norms": false,
"type": "text"
},
"match_mapping_type": "object"
}
}
],
...
}
}
}
私は文書を挿入しようとすると、私はメッセージCan't get text on a START_OBJECT at...
でMapperParsingException
を得ました。