首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套聚合搜索请求

嵌套聚合搜索请求
EN

Stack Overflow用户
提问于 2014-06-17 14:19:01
回答 1查看 643关注 0票数 0

我正在尝试通过Nest使用Elasticsearch集合。首先,我在邮递员中创建我的请求,测试它们。当我看到他们在工作,我试图通过巢创造。但我无法在nest中创建这个请求:

代码语言:javascript
复制
{
"size":0,
"query":{
    "filtered":{
        "filter":{
            "term":{ "operationCode":"logincomplete"}
        }
    }
},
"aggregations" : {
    "operations": {
        "terms": {
            "field": "operationCode"
        },
        "aggs": {
            "login_count" : { "sum" : { "field" : "adet" } }
        }
    }
 }
}

当前的文档对Nest中的聚合没有太多的描述。所以我有点卡住了。到目前为止,我已经尝试过:

代码语言:javascript
复制
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)))
);

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-18 02:12:46

试试这个:

代码语言:javascript
复制
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))))));

它将产生:

代码语言:javascript
复制
{
  "size": 0,
  "aggs": {
    "operations": {
      "terms": {
        "field": "operationCode"
      },
      "aggs": {
        "login_count": {
          "sum": {
            "field": "adet"
          }
        }
      }
    }
  },
  "query": {
    "filtered": {
      "filter": {
        "term": {
          "operationCode": "logincomplete"
        }
      }
    }
  }
}

请注意fluent API与json的映射有多近,它几乎是逐字的。此外,aggs是ES中aggregations的简写形式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24266239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档