相关疑难解决方法(0)

向ElasticSearch术语聚合添加其他字段

索引文档如下:

{
  id: 1, 
  title: 'Blah',
  ...
  platform: {id: 84, url: 'http://facebook.com', title: 'Facebook'}
  ...
}
Run Code Online (Sandbox Code Playgroud)

我想要的是按平台计算和输出统计数据.对于计数,我可以使用术语聚合platform.id作为字段来计算:

aggs: {
  platforms: {
    terms: {field: 'platform.id'}
  }
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以像{key: 8, doc_count: 162511}预期的那样收到像多个桶一样的统计数据.

现在,我可以以某种方式添加到那些桶platform.nameplatform.url(对于漂亮的统计输出)?我带来的最好看起来像:

aggs: {
  platforms: {
    terms: {field: 'platform.id'},
    aggs: {
      name: {terms: {field: 'platform.name'}},
      url: {terms: {field: 'platform.url'}}
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

事实上,它可以工作,并在每个桶中返回相当复杂的结构:

{key: 7,
  doc_count: 528568,
  url:
   {doc_count_error_upper_bound: 0,
    sum_other_doc_count: 0,
    buckets: [{key: "http://facebook.com", doc_count: 528568}]},
  name:
   {doc_count_error_upper_bound: 0,
    sum_other_doc_count: 0,
    buckets: …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

23
推荐指数
1
解决办法
1万
查看次数

标签 统计

elasticsearch ×1