采样器聚合
如果您正在聚合大量文档,可以使用 sampler
聚合将范围缩小到少量文档样本,从而获得更快的响应。sampler
聚合通过得分最高的文档选择样本。
结果是近似的,但能密切代表真实数据的分布。sampler
聚合显著提高了查询性能,但估计的响应并非完全可靠。
基本语法是
“aggs”: {
"SAMPLE": {
"sampler": {
"shard_size": 100
},
"aggs": {...}
}
}
分片大小属性
shard_size
属性告诉 OpenSearch 从每个分片最多收集多少文档。
以下示例将每个分片上收集的文档数量限制为 1,000,然后通过 terms
聚合对文档进行分桶
GET opensearch_dashboards_sample_data_logs/_search
{
"size": 0,
"aggs": {
"sample": {
"sampler": {
"shard_size": 1000
},
"aggs": {
"terms": {
"terms": {
"field": "agent.keyword"
}
}
}
}
}
}
示例响应
...
"aggregations" : {
"sample" : {
"doc_count" : 1000,
"terms" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "Mozilla/5.0 (X11; Linux x86_64; rv:6.0a1) Gecko/20110421 Firefox/6.0a1",
"doc_count" : 368
},
{
"key" : "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.50 Safari/534.24",
"doc_count" : 329
},
{
"key" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)",
"doc_count" : 303
}
]
}
}
}
}