目前与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/