我有一个如下所示的弹性索引结构,
"-source":{
"file_name":"abc.ex",
"file_format":"ex",
"created_time":"2016-05-11"
"mime_type":"xyz",
"metadata":{
"meta_id":"11222",
"description":"xyzz",
"profile":[
{"key_id":"1"
"value":2
},
{"key_id":"2",
"value":44
}...]
}
}
在配置文件中,我应该将每个key_id映射到其值.Ex查询key_id =" 1" AND值= 2应该匹配。出于这个原因,我将配置文件映射为嵌套对象,如下所示。
{"metadata":{
"properties":{
"meta_id":{"type":"string"}...
"profile":{
"type":"nested",
"properties":{
"key_id":{"type":"string"},
"value":{"type":"string"}
}}}
}
有没有其他方法而不是使它成为嵌套对象?因为它将它视为一个不同的文档,当我做一个简单的查询字符串搜索
{'查询':{' bool':{'必须':[{' query_string':{'查询& #39;:你' abc ','字段':[' metadata.profile.value','元数据。 profile.meta-ID']}}]}}}
它排除了嵌套文档(metadata.profile.value),但我希望它们被包含在内。这意味着什么"要添加,更改或删除嵌套文档,必须重新编制整个文档的索引。 ?。