我想存储类型"城市"在各个城市的弹性搜索中,这些城市的降雨量指标是多少。以下是两个示例文档:
{
"name": "Seattle"
"rain_fall": {
"jan16": {"max": 1000, "min": 1000, "avg": 1200 },
"feb16": {"max": 1100, "min": 1000, "avg": 1200 },
"mar16": {"max": 1800, "min": 1000, "avg": 1200 }
}
}
{
"name": "London"
"rain_fall": {
"jan16": {"max": 1200, "min": 1000, "avg": 1200 },
"feb16": {"max": 1300, "min": 1000, "avg": 1200 },
"mar16": {"max": 1400, "min": 1000, "avg": 1200 }
}
}
如何为上面的sampel文档定义相应的映射?到目前为止我设法得到了这个 -
"mappings": {
"_index": "myindex",
"cities": {
"dynamic": "strict",
"properties": {
"name" {"type": "string"},
"rain_fall": {
"type": "nested",
"properties": {
----???----
}
}
}
}
}
答案 0 :(得分:0)
如果您这样做,您将为每个月jan16
,feb16
等创建新的对象属性。每个月,您将创建一个新属性我不确定这是最有效的方式。这取决于你之后如何查询该索引,但我建议将月份作为嵌套对象中的新属性移动,如下所示:
{
"name": "London",
"rain_fall": [
{"month": "jan16", "max": 1200, "min": 1000, "avg": 1200 },
{"month": "feb16", "max": 1300, "min": 1000, "avg": 1200 },
{"month": "mar16", "max": 1400, "min": 1000, "avg": 1200 }
]
}
映射将如下所示:
{
"mappings": {
"cities": {
"dynamic": "strict",
"properties": {
"name": {
"type": "string"
},
"rain_fall": {
"type": "nested",
"properties": {
"avg": {
"type": "long"
},
"min": {
"type": "long"
},
"month": {
"type": "string"
},
"max": {
"type": "long"
}
}
}
}
}
}
}