1

我正在使用 Elastic Search 并尝试使用来自 angularjs UI 页面的聚合查询来获取数据,我们正在使用 Elasticseach.js、Elastic.js 等插件

发布请求并获得响应,一切都在这里为我工作,除了日期范围过滤器意味着范围过滤器不起作用。以下是我用于发布请求的查询:-

var filters = [ejs.RangeFilter('purchaseDate').gte(this.startDate).lte(this.endDate)];
var composedFilter = ejs.AndFilter(filters);
var myQuery = ejs.TermsAggregation('parentsku')
                                            .field(skufield.value)
                                            .order("_term", "asc")
                                           .size(0) 
                                        .agg(ejs.StatsAggregation('cost').field('directCost'))
                                        .agg(ejs.StatsAggregation('sales').field('revenu'))
                                        .agg(ejs.StatsAggregation('salesQuantity').field('salesQuantity'))
                                        .agg(ejs.StatsAggregation('quantity').field('quantity'))
                                        .agg(ejs.FilterAggregation('filtered').filter(composedFilter)); 

这里“purchaseDate”是弹性搜索索引中我试图应用范围过滤器的字段。

它的json形式是:-

{
   "aggs":{
      "parentsku":{
         "terms":{
            "field":"parentSku",
            "order":{
               "_term":"asc"
            },
            "size":0
         },
         "aggs":{
            "cost":{
               "stats":{
                  "field":"directCost"
               }
            },
            "sales":{
               "stats":{
                  "field":"revenu"
               }
            },
            "salesQuantity":{
               "stats":{
                  "field":"salesQuantity"
               }
            },
            "quantity":{
               "stats":{
                  "field":"quantity"
               }
            },
            "filtered":{
               "filter":{
                  "and":{
                     "filters":[
                        {
                           "range":{
                              "purchaseDate":{
                                 "gte":"2016-03-01",
                                 "lte":"2016-04-10"
                              }
                           }
                        }
                     ]
                  }
               }
            }
         }
      }
   }
}

如果有人可以,我需要帮助,我将不胜感激。

4

0 回答 0