Solr json.facet带月份分组的范围查询

Solr json.facet带月份分组的范围查询,solr,Solr,我有一个solr查询(solr版本6.0.2),它对每天的销售额进行分组和求和。通过以下参数,一切都很好: json.facet=sales:{ type:range, field:date_add, start:'2016-05-31T22:00:00Z', end:'2016-10-31T22:59:59Z', gap:'+1DAY', facet:{ ordersSum:'sum(sales_valu

我有一个solr查询(solr版本6.0.2),它对每天的销售额进行分组和求和。通过以下参数,一切都很好:

json.facet=sales:{
      type:range,
      field:date_add,
      start:'2016-05-31T22:00:00Z',
      end:'2016-10-31T22:59:59Z',
      gap:'+1DAY',
      facet:{
         ordersSum:'sum(sales_value)'
      }
   }
(在开始参数中指定的小时22:00:00是由于时区的原因,因为Solr将日期保留为UTC,而我的应用程序在欧洲/华沙时区工作)

有了这些,我就开始结束参数之间指定的天数获得了不错的销售值。但是现在我想做同样的事情,但是以月份为基础,所以我想要6月、7月[…]10月的销售额

我发现,可以将间隙参数更改为“+1个月”,但值不一致,因为月份不相等:

"val":"2016-05-31T22:00:00Z",
"val":"2016-06-30T22:00:00Z",
"val":"2016-07-30T22:00:00Z",
"val":"2016-08-30T22:00:00Z",
"val":"2016-09-30T22:00:00Z",
可以看出,日期默认为第一次出现的天数较低(即7月和agust有31天)。同样,可以通过操纵启动参数来解决问题:

2016-05-31T22:00:00Z/MONTH
/MONTH后缀告诉Solr默认为每月的第一天午夜。那么抓取的日期看起来不错:

"val":"2016-06-01T00:00:00Z",
"val":"2016-07-01T00:00:00Z",
"val":"2016-08-01T00:00:00Z",
"val":"2016-09-01T00:00:00Z",
"val":"2016-10-01T00:00:00Z",

但是,给定的日期值对于UTC时区是正确的。Solr有没有办法正确添加月份,或者为结果设置时区

好的,我想我已经明白了。通过向查询中添加其他参数,可以全局设置Solr查询的时区:

&TZ=欧洲/华沙

就我而言,结果如下:

"val":"2015-08-31T22:00:00Z",
"val":"2015-09-30T22:00:00Z",
"val":"2015-10-31T23:00:00Z",
"val":"2015-11-30T23:00:00Z",
(我稍微更改了开始/结束参数,以显示夏令时是如何保持的)。此外,在这种情况下不需要/MONTH后缀,它只会帮助保持开始时间正确