elasticsearch - Elasticsearch,检索对象与嵌套

标签 elasticsearch

我知道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/

相关文章:

elasticsearch - 3节点Elasticsearch设置的理想分片数量是多少

Elasticsearch:如何过滤 bool 字段

node.js - 从 Angular 6 应用程序向 Elasticsearch 发送 get 请求时出现 CORS 错误,即使允许

Elasticsearch 日期字段 : epoch millis input, 字符串输出?

node.js - 单个 SHOULD 查询 block 中的多个条件

elasticsearch - 如何使用 RestHighLevelClient 从 Elasticsearch 中的索引中删除所有文档

ruby-on-rails - Searchkick word_start与嵌套字段匹配

elasticsearch - Elasticsearch通过使用关键字对数据进行排序

symfony - FosElasticaBundle:如何转储传递给ElasticSearch的实际JSON?

elasticsearch - Elasticsearch中的聚合切割字符串而不是全部