我在elasticsearch-6中有一个简单的映射,如下所示。
{
"mappings": {
"_doc": {
"properties": {
"@timestamp": {
"type": "date"
},
"fields": {
"properties": {
"meta": {
"properties": {
"task": {
"properties": {
"field1": {
"type": "keyword"
},
"field2": {
"type": "keyword"
}
}
}
}
}
}
}
}
}
}
}现在,我必须向它添加另一个属性- tasks,它只是已经定义的task属性的数组。
是否有一种方法可以引用task的属性,使我不必复制所有属性?类似于:
{
"fields": {
"properties": {
"meta": {
"properties": {
"tasks": {
"type": "nested",
"properties": "fields.properties.meta.properties.task"
},
"task": {
...
}
}
}
}
}
}发布于 2019-11-10 10:45:41
您已经可以将task字段用作task对象的数组,但不能独立查询它们。如果您的目标是实现这一点(正如我从第二个示例中假设的那样),我将直接将“嵌套”数据类型设置为task字段的映射--然后,您将需要重新索引。
我无法想象有一个用例,您需要在两个字段中复制相同的对象数组,其中一个是嵌套的,另一个则不是。
编辑
以下是根据评论中的讨论提出的一些考虑因素/建议:
https://stackoverflow.com/questions/58780797
复制相似问题