我将数据放入ES并检查创建的映射
我正在执行此操作:
curl -XPOST 'http://localhost:9200/testnested2/type1/0' -d '{
"p1": ["1","2","3","4"],
"users" : {
"first" : "John",
"last" : "Sm11ith"
}
}'
这是它创建的架构:
{
"testnested2":{
"mappings":{
"type1":{
"properties":{
"p1":{"type":"string"},
"users":{
"properties":{
"first":{"type":"string"},
"last":{"type":"string"}
}
}
}
}
}
}
}
我想知道是否可以告诉它“用户”是嵌套的,或者我必须为自己创建映射。
我希望ES可以像这样创造一个shema:
curl -XPOST http://180.5.5.93:9200/testnested3 -d '{
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"type1" : {
"properties" : {
"propiedad1" : { "type" : "string"},
"users" : {
"type" : "nested",
"include_in_parent": true,
"properties": {
"first" : {"type": "string" },
"last" : {"type": "string" }
}
}
}
}
}
}'
答案 0 :(得分:1)
默认情况下,ElasticSearch的动态映射功能会将users
映射为object
而不是nested
。
如果要调整此行为,则必须明确地将users
属性定义为nested
:
users
属性将自动设置为nested
(有关默认映射信息,请参阅here)