Sampler 집계
Sampler 집계
sampler 집계는 하위 집계 처리를 각 샤드의 최상위 점수 문서로 제한해요. 이는 전체 결과 집합을 처리하는 대신 가장 관련성 높은 일치 항목에 초점을 좁혀 계산 시간을 줄이고, 긴 꼬리(long tail)에서 관련성이 낮은 문서를 제외해 집계 결과의 품질을 향상시킬 수 있어요.
샘플링은 significant_terms 같은 하위 집계에서 특히 유용해요. sampler가 없으면 전체 결과 집합에는 관련성이 약한 문서의 긴 꼬리가 포함되어, 그 일반적인 term이 볼륨으로 지배하여 최상위 점수 일치 항목에서 찾을 수 있는 진정으로 독특한 term을 흐리게 해요.
샘플에서 단일 필드 값이 지배하는 것을 방지하는 다양성 기반 샘플링은 diversified_sampler 집계를 참고하세요.
출처: 문서
본문
파라미터 (Parameters)
sampler 집계는 다음 파라미터를 받아요.
| 파라미터 | 필수/선택 | 데이터 타입 | 설명 |
|---|---|---|---|
| shard_size | 선택 | Integer | 각 샤드에서 수집되는 최상위 점수 문서의 최대 수. 기본값은 100이에요. |
예제 (Example)
다음 예제는 샘플을 샤드당 최상위 점수 문서 200개로 제한한 다음 terms 하위 집계를 실행해 그 샘플 내에서 제품 카테고리의 분포를 찾아요:
GET /opensearch_dashboards_sample_data_ecommerce/_search
{
"size": 0,
"aggs": {
"sample": {
"sampler": {
"shard_size": 200
},
"aggs": {
"top_categories": {
"terms": {
"field": "category.keyword"
}
}
}
}
}
}
응답은 샘플이 200개의 문서를 포함하고, terms 하위 집계가 전체 4,675개가 아닌 그 200개 문서에 대해서만 동작했음을 보여줘요:
{
...
"aggregations": {
"sample": {
"doc_count": 200,
"top_categories": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "Men's Clothing",
"doc_count": 82
},
{
"key": "Women's Clothing",
"doc_count": 82
},
{
"key": "Women's Shoes",
"doc_count": 49
},
{
"key": "Women's Accessories",
"doc_count": 40
},
{
"key": "Men's Shoes",
"doc_count": 37
},
{
"key": "Men's Accessories",
"doc_count": 25
}
]
}
}
}
}
응답 본문 필드 (Response body fields)
| 필드 | 데이터 타입 | 설명 |
|---|---|---|
| doc_count | Integer | 모든 샤드에 걸친 샘플의 총 문서 수. |
제한 사항 (Limitations)
sampler 집계는 breadth-first 수집 모드를 사용하는 terms 집계 아래에 중첩할 수 없어요. breadth-first 수집은 sampler가 필요로 하는 관련성 점수를 버리기 때문이에요.