原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/search-aggregations-bucket-sampler-aggregation.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/search-aggregations-bucket-sampler-aggregation.html
本地英文版地址: ../en/search-aggregations-bucket-sampler-aggregation.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
一种过滤聚合,用于将任何子聚合的处理限制在得分最高的文档样本中。
使用用例举例:
- 将分析的焦点集中在高相关性匹配上,而不是低质量匹配的潜在长尾上
-
降低聚合的运行成本,仅使用样本即可产生有用的结果,如
significant_terms
示例:
在StackOverflow数据中查询流行的词项javascript或较罕见的词项kibana,将会匹配许多文档——其中大多数都缺少单词Kibana。
为了将significant_terms聚合集中在最有可能匹配查询中最感兴趣部分的得分最高的文档上,我们使用了一个示例。
POST /stackoverflow/_search?size=0
{
"query": {
"query_string": {
"query": "tags:kibana OR tags:javascript"
}
},
"aggs": {
"sample": {
"sampler": {
"shard_size": 200
},
"aggs": {
"keywords": {
"significant_terms": {
"field": "tags",
"exclude": ["kibana", "javascript"]
}
}
}
}
}
}
响应:
{
...
"aggregations": {
"sample": {
"doc_count": 200,
"keywords": {
"doc_count": 200,
"bg_count": 650,
"buckets": [
{
"key": "elasticsearch",
"doc_count": 150,
"score": 1.078125,
"bg_count": 200
},
{
"key": "logstash",
"doc_count": 50,
"score": 0.5625,
"bg_count": 50
}
]
}
}
}
}
如果没有sampler聚合,请求查询会考虑低质量匹配的完整“长尾”,因此会识别不太重要的词项,如jquery和angular,而不是关注更有见地的与Kibana相关的词项。
POST /stackoverflow/_search?size=0
{
"query": {
"query_string": {
"query": "tags:kibana OR tags:javascript"
}
},
"aggs": {
"low_quality_keywords": {
"significant_terms": {
"field": "tags",
"size": 3,
"exclude":["kibana", "javascript"]
}
}
}
}
响应:
{
...
"aggregations": {
"low_quality_keywords": {
"doc_count": 600,
"bg_count": 650,
"buckets": [
{
"key": "angular",
"doc_count": 200,
"score": 0.02777,
"bg_count": 200
},
{
"key": "jquery",
"doc_count": 200,
"score": 0.02777,
"bg_count": 200
},
{
"key": "logstash",
"doc_count": 50,
"score": 0.0069,
"bg_count": 50
}
]
}
}
}