NEST ElasticSearch:最小值始终为0

时间:2016-03-22 16:09:31

标签: c# .net elasticsearch nest

我对ElasticSearch和NEST相对较新。在一个项目中,我使用的是ElasticSearch 2.2.0& ElasticSearch.Net 1.7.2 with NEST。

我无法让min聚合工作。它总是返回0。

以下是获取聚合值的代码:

const string priceAggNameMin = "price_aggregation_min";
const string priceAggNameMax = "price_aggregation_max";

var searchResponse = _esClient.Search<ProductGroupDto>(s => s
    .Aggregations(a => a
        .Min(priceAggNameMin, st => st
            .Field(o => o.Price))
        .Max(priceAggNameMax, st => st
            .Field(o => o.Price))));

LogElasticSearchRequest(searchResponse.RequestInformation.RequestUrl);

var minPrice = Convert.ToDecimal(searchResponse.Aggs.Min(priceAggNameMin).Value);
var maxPrice = Convert.ToDecimal(searchResponse.Aggs.Max(priceAggNameMax).Value);

对ES的原始请求(由NEST生成)如下所示:

{
    "aggs": {
        "price_aggregation_min": {
            "min": {
                "field": "price"
            }
        },
        "price_aggregation_max": {
            "max": {
                "field": "price"
            }
        }
    }
}

Postman对此查询的响应如下所示:

{
    ....
    "aggregations": {
        "price_aggregation_max": {
          "value": 51.9
        },
        "price_aggregation_min": {
          "value": 12
        }
    }
}

因此,似乎ES响应最小聚合的正确值,但NEST将其返回为0.

我错过了什么明显的东西吗?

0 个答案:

没有答案