是否可以动态添加具有 multi-field 支持的新字段?
我的索引具有仅在建立索引时才知道的属性。因此,这些字段将包含在动态映射中。
但是,当动态添加新字段时,我需要将其映射为text
并具有三个子字段:keyword
,date
(如果它适合{{ 1}})和dynamic_date_formats
。
有了这三个子字段,我将能够搜索并汇总许多具有最佳性能的查询。
我知道我可以使用具有long
和nested
属性的key
字段对这些“动态字段”进行索引“预”映射,因此可以使用这些属性创建value属性三个子字段。但是我不想创建嵌套的键/值字段,因为在对大量文档进行汇总时,它的速度不是很快。
答案 0 :(得分:1)
我找到了。
非常简单:)
{
"mappings": {
"doc": {
"dynamic_templates": [
{
"objs": {
"match_mapping_type": "object",
"mapping": {
"type": "{dynamic_type}"
}
}
},
{
"attrs": {
"match_mapping_type": "*",
"mapping": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
},
"long": {
"type": "long",
"ignore_malformed": true
},
"double": {
"type": "double",
"ignore_malformed": true
},
"date": {
"type": "date",
"format": "dd/MM/yyyy||dd/MM/yyyy HH:mm:ss||dd/MM/yyyy HH:mm",
"ignore_malformed": true
}
}
}
}
}
],
"dynamic": "strict",
"properties": {
"fixed": {
"properties": {
"aaa": {
"type": "text"
},
"bbb": {
"type": "long"
},
"ccc": {
"type": "date",
"format": "dd/MM/yyyy"
}
}
},
"dyn": {
"dynamic": true,
"properties": {
}
}
}
}
}
}