2014-06-17 2 views
0

Nest를 통해 Elasticsearch Aggregations를 사용하려고합니다. 첫째, 우편 배달부에서 내 요청을 만들어 테스트하고 있습니다. 그들이 일하고 있다는 것을 알게되면 Nest를 통해 만들려고합니다.Nest 집계 검색 요청

{ 
"size":0, 
"query":{ 
    "filtered":{ 
     "filter":{ 
      "term":{ "operationCode":"logincomplete"} 
     } 
    } 
}, 
"aggregations" : { 
    "operations": { 
     "terms": { 
      "field": "operationCode" 
     }, 
     "aggs": { 
      "login_count" : { "sum" : { "field" : "adet" } } 
     } 
    } 
} 
} 

현재 문서가 둥지 집계에 대해 많은 말을하지 않습니다 는하지만 둥지에서이 요청을 만들 수 없습니다. 그래서 나는 좀 붙어있다. 지금까지 시도 :

var filterResults = client.Search<MCAOnlineExtRT>(s => s 
      .Size(0) 
      .Filter(q => q 
      .Term(p => p.OperationCode, "logincomplete")) 
      .Aggregations(a => a.Sum("login_count", t => t.Field(x => x.Adet))) 
); 

감사합니다!

답변

2

이 시도 :

var results = client.Search<MCAOnlineExtRT>(s => s 
    .Size(0) 
    .Query(q => q 
    .Filtered(f => f 
     .Filter(ff => ff 
     .Term(o => o.OperationCode, "logincomplete")))) 
    .Aggregations(a => a 
    .Terms("operations", t => t.Field(o => o.OperationCode) 
     .Aggregations(aa => aa 
     .Sum("login_count", ss => ss.Field(o => o.Adet)))))); 

를 생성합니다 어떤 :

{ 
    "size": 0, 
    "aggs": { 
    "operations": { 
     "terms": { 
     "field": "operationCode" 
     }, 
     "aggs": { 
     "login_count": { 
      "sum": { 
      "field": "adet" 
      } 
     } 
     } 
    } 
    }, 
    "query": { 
    "filtered": { 
     "filter": { 
     "term": { 
      "operationCode": "logincomplete" 
     } 
     } 
    } 
    } 
} 

공지 사항이 어떻게 밀접하게 유창 API지도 json으로 DSL에, 거의 그대로입니다. 또한 aggs은 ES에 aggregations의 속기 양식입니다.