elasticsearch,nest,Java,C#,Database,elasticsearch,Nest" /> elasticsearch,nest,Java,C#,Database,elasticsearch,Nest" />

Java 嵌套聚合搜索请求

Java 嵌套聚合搜索请求,java,c#,database,elasticsearch,nest,Java,C#,Database,elasticsearch,Nest,我正试图通过Nest使用Elasticsearch聚合。首先,我在postman中创建请求,并对其进行测试。当我看到它们正在工作时,我正在尝试创建via Nest。 但我无法在nest中创建此请求: { "size":0, "query":{ "filtered":{ "filter":{ "term":{ "operationCode":"logincomplete"} } } }, "aggregations" : {

我正试图通过Nest使用Elasticsearch聚合。首先,我在postman中创建请求,并对其进行测试。当我看到它们正在工作时,我正在尝试创建via Nest。 但我无法在nest中创建此请求:

{
"size":0,
"query":{
    "filtered":{
        "filter":{
            "term":{ "operationCode":"logincomplete"}
        }
    }
},
"aggregations" : {
    "operations": {
        "terms": {
            "field": "operationCode"
        },
        "aggs": {
            "login_count" : { "sum" : { "field" : "adet" } }
        }
    }
 }
}
当前的文档没有太多关于Nest中的聚合的内容。所以我有点困了。到目前为止,我已经尝试:

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)))
);
var filterResults=client.Search(s=>s
.尺寸(0)
.Filter(q=>q
.Term(p=>p.OperationCode,“logincomplete”))
.Aggregations(a=>a.Sum(“登录计数”,t=>t.Field(x=>x.Adet)))
);
谢谢

试试这个:

var results=client.Search(s=>s
.尺寸(0)
.Query(q=>q
.已筛选(f=>f
.Filter(ff=>ff
.Term(o=>o.OperationCode,“logincomplete”))
.聚合(a=>a
.Terms(“操作”,t=>t.Field(o=>o.OperationCode)
.聚合(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"
        }
      }
    }
  }
}
注意fluent API与json DSL的映射是多么紧密,几乎是一字不差。另外,
aggs
是ES中
聚合的简写形式