Elasticsearch Nest 컬렉션 그룹화 최소값 조회
2772 단어 ElasticSearch
주: 제품 가격은 구간 가격,nested 유형
{
"query": {
"bool": {
"must": [
{
"term": {
"model": "LP3985IM5X-3.3"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 10,
"sort": [],
"aggs": {
"top_tag_hits": {
"terms": {
"field": "model"
},
"aggs": {
"stockprice": {
"nested": {
"path": "stockPrice"
},
"aggs": {
"minprice": {
"min": {
"field": "stockPrice.price"
}
}
}
}
}
}
}
}
public PUB_StockSearchResult SearchMinPrice(PUB_StockSearch param)
{
PUB_StockSearchResult result = new PUB_StockSearchResult();
result.ResultList = new List();
if (param.ModelArr == null || param.ModelArr.Length == 0)
{
return result;
}
QueryContainer query = new TermsQuery() { Field = ES_PUB_StockField.Model, Terms = param.ModelArr };
TermsAggregation aggs = new TermsAggregation("top_tag_hits")
{
Field = ES_PUB_StockField.Model,
Aggregations = new NestedAggregation("stockprice")
{
Path = "stockPrice",
Aggregations = new MinAggregation("minprice", "stockPrice.price")
}
};
var searchRequest = new SearchRequest();
searchRequest.Query = query;
searchRequest.From = 0;
searchRequest.Aggregations = aggs;
searchRequest.Size = 1000;
var response = client.Search(searchRequest);
result.Total = response.Total;
var states = response.Aggs.Terms("top_tag_hits");
foreach (var state in states.Buckets)
{
var topStateHits = state.Nested("stockprice").Min("minprice").Value;
if (topStateHits != null)
{
ES_PUB_StockResult resultItem = new ES_PUB_StockResult();
resultItem.Model = state.Key;
resultItem.Price = Convert.ToDecimal(topStateHits);
result.ResultList.Add(resultItem);
}
}
return result;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spring-data-elasticsearch 페이지 조회부록: 1. 이름에서 알 수 있듯이QueryBuilder는 검색 조건, 필터 조건을 구축하는 데 사용되고 SortBuilder는 정렬을 구축하는 데 사용된다. 예를 들어 우리는 어느 위치에서 100미터 범위 내의 모...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.