原英文版地址: 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 } ] } } }