Page History
...
다음과 같은 다양한 집계처리 선언이 가능합니다.
집계 연산 정의
Code Block | ||
---|---|---|
| ||
//Paging var searchDes = new SearchDescriptor<SearchGoods>() .From(page) .Size(limit); // Filter기능은 3장 참고 //Aggregations(검색 결과 집계 처리) searchDes.Aggregations(aggs => aggs .Average("average_per_price", avg => avg.Field(p => p.price)) .Max("max_per_price", avg => avg.Field(p => p.price)) .Min("min_per_price", avg => avg.Field(p => p.price)) .Terms("category1_cnt", st => st .Field(p => p.category1.Suffix("keyword")) .MinimumDocumentCount(1) .Size(100000) .ShardSize(100) .ExecutionHint(TermsAggregationExecutionHint.Map) .Missing("na") .Order(o => o .KeyAscending() .CountDescending() ) .Meta(m => m .Add("foo", "bar") ) ) .Terms("category2_cnt", st => st .Field(p => p.category2.Suffix("keyword")) .MinimumDocumentCount(1) .Size(100000) .ShardSize(100) .ExecutionHint(TermsAggregationExecutionHint.Map) .Missing("na") .Order(o => o .KeyAscending() .CountDescending() ) .Meta(m => m .Add("foo", "bar") ) ) .Terms("tag_cnt", st => st .Field(p => p.tags.Suffix("keyword")) .MinimumDocumentCount(1) .Size(100000) .ShardSize(100) .ExecutionHint(TermsAggregationExecutionHint.Map) .Missing("na") .Order(o => o .KeyAscending() .CountDescending() ) .Meta(m => m .Add("foo", "bar") ) ) ); |
- 최소 최대가격 범위 : 검색 결과가 가진 가격범위 스크롤바에 활용됩니다.
- 카테고리별 집계 : 카테고리 결과내 재검색에서 사용되며, 카테고리로 범위를 축소할때 사용됩니다.
- 태그 나열 : 검색에의해 나열된 연관 태그를 나열해줌으로, 태그를 통한 컬렉션 점프를 할수 있습니다.
집계 연산 사용
Code Block | ||
---|---|---|
| ||
var agg = engine_result.Aggregations; var category1_aggs = agg.Terms("category1_cnt"); var category2_aggs = agg.Terms("category2_cnt"); var tag_aggs = agg.Terms("tag_cnt"); var minPrice = agg.ValueCount("min_per_price").Value |
...