如何向我的 Lucene 查询添加过滤器?

How to add a filter to my Lucene query?

我想获取过去一小时内发生的事件的每小时平均数。所有事件的字段 "DayType" 必须等于 "T1",字段 "Town" 必须等于 "NA"。

我的基本工作查询如下。但是,我不知道如何通过 "DayType" 和 "Town".

字段添加过滤器
POST /myindex/_search
{
  "size": 0,
  "aggs": {
    "range": {
        "date_range": {
            "field": "Datetime",
            "ranges": [
                { 
                   "from": "now-1H/H",
                   "to": "now/H" 
                }
            ]
        }
    }
}
}

您可以在查询中添加 bool/filter 约束,以便仅对选定的文档计算聚合:

POST /myindex/_search
{
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {"term": {"DayType": "T1"}},
        {"term": {"Town": "NA"}}
      ]
    }
  },
  "aggs": {
    "range": {
        "date_range": {
            "field": "Datetime",
            "ranges": [
                { 
                   "from": "now-1H/H",
                   "to": "now/H" 
                }
            ]
        }
    }
}
}