2017-09-06 10 views
0

Ich möchte die stündliche durchschnittliche Anzahl von Ereignissen in der letzten Stunde erfahren. Für alle Ereignisse muss das Feld "DayType" gleich "T1" und das Feld "Town" gleich "NA" sein.Wie füge ich einen Filter zu meiner Lucene-Abfrage hinzu?

Meine grundlegende Arbeitsabfrage ist die folgende. Allerdings weiß ich nicht, wie man den Filter durch das Feld "DayType" und "Town" hinzufügt.

POST /myindex/_search 
{ 
    "size": 0, 
    "aggs": { 
    "range": { 
     "date_range": { 
      "field": "Datetime", 
      "ranges": [ 
       { 
        "from": "now-1H/H", 
        "to": "now/H" 
       } 
      ] 
     } 
    } 
} 
} 

Antwort

1

Sie können eine bool/filter Einschränkung in Ihrer Abfrage hinzufügen, damit nur die Aggregationen für die ausgewählten Dokumente berechnet bekommen:

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" 
       } 
      ] 
     } 
    } 
} 
} 
Verwandte Themen