弹性搜索采样聚合 UNKNOWN KEY
Elastic Search Sampling Aggregation UNKNOWN KEY
目前正在使用 Kibana 处理超过 60 亿份文档,并尝试根据 'index' 收集样本的特定日期进行抽样。
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"
}
}
}
}
}
}
目前正在使用 Kibana 处理超过 60 亿份文档,并尝试根据 'index' 收集样本的特定日期进行抽样。
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"
}
}
}
}
}
}