【问题标题】:Elasticsearch 2.4 - Combining Date Range Filter with Date HistogramElasticsearch 2.4 - 结合日期范围过滤器和日期直方图
【发布时间】:2016-10-10 20:47:29
【问题描述】:

我有疑问:

{
  "size": 0,
 "aggs": {
   "data_bulanan" : {
    "date_histogram" : {
        "field" : "creation_date",
        "interval" : "month",
        "format": "MMMM"
        },
        "aggs": {
          "SvcCharge" : {
              "sum": {
              "field": "service_tax"
              }
          },
          "GvtTax" : {
              "sum": {
              "field": "government_tax"
              }
          },
          "Discount" : {
             "sum" : {
             "field": "discount"
              }
          }

        }
    }
  }
}

我想添加从 date 到 date 的日期范围。例如从 2014-01-01 到 2015-01-01 。

如何添加?

谢谢你

【问题讨论】:

  • 所以你基本上想将结果集限制在这些日期?

标签: elasticsearch


【解决方案1】:

如果您想将结果集限制为上述指定日期,则需要将查询组合到您的聚合中,您可以这样做

{
  "size": 0,
  "query": {
      "bool": {
          "filter": {
              "range": {
                  "creation_date": {
                      "gte": "2014-01-01",
                      "lte": "2015-01-01"
                  }
              }
          }
      }
  },
  "aggs": {
    "data_bulanan": {
      "date_histogram": {
        "field": "creation_date",
        "interval": "month",
        "format": "MMMM"
      },
      "aggs": {
        "SvcCharge": {
          "sum": {
            "field": "service_tax"
          }
        },
        "GvtTax": {
          "sum": {
            "field": "government_tax"
          }
        },
        "Discount": {
          "sum": {
            "field": "discount"
          }
        }
      }
    }
  }
}

【讨论】:

  • 如何应用过滤器例如,我只想要“user_id”的结果:1。在 mysql 中,我们有 "where user_id = 1"
猜你喜欢
  • 1970-01-01
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
相关资源
最近更新 更多