我必须使用elasticsearch和python为需要索引的json数据创建索引示例我有一个嵌套数组[[39.909971141540645,1452077285.150548,1452077286.196072,1.0455241203308105]]我需要为这个数组定义一个映射,如第一个字段是count,第二个字段是start_time,end_time,duration。请帮助如何声明嵌套数组的映射。
我已经使用python和elasticsearch模块声明了映射
index_mapping={
"properties": {
"speed_events":{
"type":"object",
"properties":{
"count":{"type":"double"},
"start_time":{"type":"date"},
"end_time":{"type":"date"},
"duration":{"type":"double"}
}}}
es.indices.put_mapping(index=index_name, doc_type=type_name, body=index_mapping)
[speed_events]的抛出错误对象映射试图将field [null]解析为对象,但找到了具体的值') 需要帮助解决这个问题
答案 0 :(得分:0)
您需要使用nested mapping。 这将确保每个嵌套对象独立于其他对象。见documentation
无论如何,我认为不可能为匿名的两级嵌套数组编制索引。 您需要在嵌套级别命名属性。
因此,在映射count, start_time, end_time, duration
时,确定属性的顺序是不行的:
[
[
1,
'1999-01-01',
'2000-01-01',
14.6
],
[
2,
'1999-01-01',
'2000-01-01',
16.6
]
]
但你应该生产这样的东西:
[
{
'count':1,
'start_time':'1999-01-01',
'end_time':'2000-01-01',
'duration':14.6
},
{
'count':2,
'start_time':'1999-01-01',
'end_time':'2000-01-01',
'duration':16.6
}
]