python - Elasticsearch 采样聚合未知 key

标签 python elasticsearch kibana sampling elasticsearch-aggregation

目前与Kibana合作,拥有60亿多个文档,并尝试根据“索引”(即样本收集的当天)进行抽样。

from elasticsearch import Elasticsearch
es = Elasticsearch(['https://user:secret@localhost:xxx'])

使用以下代码进行查询:
res = es.search(body=body1)
print(f"Got {res['hits']['total']} Hits:")

当我使用下面的正文时,我会收到全部60亿份文档:
body1 = {
            "query": {"match_all": {}}
        }

但是,当我设置聚合管道时,出现错误RequestError(400, 'parsing exception', 'Unknown key for a START_OBJECT in [my_agg].')
body0 = {
            "query": {"match_all": {}},
            "size": 0,
            "aggs": {
                "my_unbiased_sample": {
                    "diversified_sampler": {
                        "max_docs_per_value" : 3, 
                        "field" : "_index"
                    }
                }
            }, "my_agg": {
                "terms": {
                    "field": "_index"
                }
            }
}

我相信我的问题出在我的第二个聚合器上,而不是我的第一个多元化采样器上。我只想要来自多样化采样器的输出,但是我被迫拥有第二个聚合器。

最佳答案

您快要在那里了-只需解决嵌套问题:

{
  "query": {
    "match_all": {}
  },
  "size": 0,
  "aggs": {
    "my_unbiased_sample": {
      "diversified_sampler": {
        "max_docs_per_value": 3,
        "field": "_index"
      },
      "aggs": {
        "my_agg": {
          "terms": {
            "field": "_index"
          }
        }
      }
    }
  }
}

关于python - Elasticsearch 采样聚合未知 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62425339/

相关文章:

text - Elasticsearch和自由格式文本

node.js - 通过字符串长度搜索弹性查询

elasticsearch - Kibana 上未分析的字段

elasticsearch - Elasticsearch如何将选定的行项目放在结果顶部

elasticsearch - 从整数字段创建图表

python - 如何对具有多个属性和 unicode 字符串的 python 字典进行排序

python - 使用 n = len(s) 而不是直接使用 len(s) 是否更快?

python 标准输出回车

python - 类方法和类方法中定义的变量

elasticsearch - 从Docker中的配置文件加载Elasticsearch