【问题标题】:How to add a filter to my Lucene query?如何向我的 Lucene 查询添加过滤器?
【发布时间】:2018-02-15 02:17:25
【问题描述】:

我想获取过去一小时内发生的每小时平均事件数。所有事件的“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" 
                }
            ]
        }
    }
}
}

【问题讨论】:

    标签: elasticsearch lucene elasticsearch-5


    【解决方案1】:

    您可以在查询中添加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" 
                    }
                ]
            }
        }
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 2018-11-14
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      相关资源
      最近更新 更多