我知道object
将数据存储在拼合数据中,而nested
则将数据单独存储(更像是传统上分开的表)
因此,如果要将内部对象视为单独的实体,则必须使用nested
。
但是,当您检索(通过GET请求)使用object
存储的文档时,文档如下所示:
{
id: xxx,
some_objects : [
{
key1: v1,
key2: v2,
},
{
key1: v12,
key2: v22,
},
]
}
而许多解释对象/嵌套之间的区别的文档暗示它应该返回类似(https://web.archive.org/web/20140810095505/http://www.elasticsearch.org/blog/managing-relations-inside-elasticsearch/)的内容
{
id: xxx,
some_objects.key1: [v1, v12],
some_objects.key2: [v2, v22]
}
最佳答案
JSONt_code或object
类型的对象数组在JSON文档中看起来完全相同。不同之处在于该数组的索引方式,以及如何查询该数组以及获得的结果。
您在第二个链接(即第二个代码段)中看到的内容说明了如何将普通nested
数组索引为。但是Elasticsearch永远不会修改您在源文档中发送的内容,即它将始终是其中包含普通JSON对象的普通JSON数组。
关于elasticsearch - Elasticsearch,检索对象与嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60406928/