2016-08-01 2 views
1

Поэтому у меня есть этот запрос с двумя уровнями агрегации агрегации и фильтра по имени timestamps_bucket_filterДобавить суб-агрегации для bucket_selector агрегации

{ 
    "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" 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 

Теперь, что я хотел бы сделать, это добавить еще один суб-агрегацию ниже timestamps_bucket_filter, что-то вроде:

{ 
    "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" 
        } 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 

К сожалению, я получаю Aggregation [timestamps_bucket_filter] cannot define sub-aggregations

есть ли обходной путь Ф.О. r этот барьер. Мне действительно нужно получить эти имена под сценарием фильтра, который я создал.

Заранее спасибо.

ответ

0

Это, кажется, дефект. Первоначальное чтение документов требует сказать прямо противоположное:

Следующая интересная деталь. Поскольку каждое ведро эффективно определяет набор документов (все документы, принадлежащие ведру), можно потенциально связать агрегаты на уровне ковша, и они будут выполняться в контексте этого ведра. Здесь происходит реальная сила агрегаций: агрегации могут быть вложенными!

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

Смежные вопросы