【问题标题】:Nest Aggregation Search Request嵌套聚合搜索请求
【发布时间】:2014-08-07 14:37:07
【问题描述】:

我正在尝试通过 Nest 使用 Elasticsearch 聚合。首先,我在邮递员中创建我的请求,并对其进行测试。当我看到他们正在工作时,我正在尝试通过 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)))
);

谢谢!

【问题讨论】:

    标签: java c# database elasticsearch nest


    【解决方案1】:

    试试这个:

    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"
            }
          }
        }
      }
    }
    

    注意 fluent API 与 json DSL 的映射有多紧密,几乎是逐字记录。另外,aggs 是 ES 中aggregations 的简写形式。

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 2019-04-24
      • 2018-11-05
      • 1970-01-01
      相关资源
      最近更新 更多