2016-08-01 16 views
1

So habe ich diese Abfrage mit zwei Aggregationsebenen und Filter Aggregation timestamps_bucket_filter genannt bucket_selectorhinzufügen Unter Aggregation Aggregation

{ 
    "size": 0, 
    "aggregations": { 
    "colors": { 
     "terms": { 
     "field": "color" 
     }, 
     "aggregations": { 
     "timestamps": { 
      "date_histogram": { 
      "field": "timestamp", 
      "interval": "1m", 
      "order": { 
       "_key": "desc" 
      } 
      }, 
      "aggregations": { 
      "timestamps_bucket_filter": { 
       "bucket_selector": { 
       "buckets_path": { 
        "counterts": "_count" 
       }, 
       "script": { 
        "lang": "expression", 
        "script": "counterts <= 50" 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 

Nun, was würde ich tun möchte, ist eine weitere Unter Aggregation unter timestamps_bucket_filter hinzufügen möchten, so etwas wie:

{ 
    "size": 0, 
    "aggregations": { 
    "colors": { 
     "terms": { 
     "field": "color" 
     }, 
     "aggregations": { 
     "timestamps": { 
      "date_histogram": { 
      "field": "timestamp", 
      "interval": "1m", 
      "order": { 
       "_key": "desc" 
      } 
      }, 
      "aggregations": { 
      "timestamps_bucket_filter": { 
       "bucket_selector": { 
       "buckets_path": { 
        "counterts": "_count" 
       }, 
       "script": { 
        "lang": "expression", 
        "script": "counterts <= 50" 
       } 
       }, 
       "aggregations": {    <-- I would like to add this aggregation 
       "name": { 
        "terms": { 
        "field": "name" 
        } 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 

Leider erhalte ich Aggregation [timestamps_bucket_filter] cannot define sub-aggregations

gibt es eine Abhilfe fo Diese Barriere. Ich muss diese Namen wirklich unter dem von mir erstellten Filter-Skript finden.

Vielen Dank im Voraus.

Antwort

0

Dies scheint ein Fehler zu sein. Ein Neuling der Dokumente behauptet, das genaue Gegenteil zu sagen:

Der interessante Teil kommt als nächstes. Da jeder Bucket effektiv einen Dokumentensatz definiert (alle Dokumente, die zu dem Bucket gehören), kann man möglicherweise Aggregationen auf der Bucket-Ebene assoziieren, und diese werden innerhalb des Kontexts dieses Buckets ausgeführt. Hier setzt die wahre Kraft von Aggregationen ein: Aggregationen können verschachtelt werden!

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html