Как получить определенное количество элементов в сегменте из агрегации гистограммы эластичного поиска (обходной путь) - PullRequest
0 голосов
/ 18 октября 2019

Я запрашиваю количество документов с заданным атрибутом "type" за интервал времени, скажем, 1 неделю, у меня сначала около 600 документов.

С другой стороны, я хочучтобы получить ровно 10 элементов в моем сегменте из этой агрегации, поэтому я удостоверяюсь, что этот размер меньше или равен количеству доступных документов для этого конкретного временного диапазона.

, учитывая, что я делю одну неделю в миллисекундах(604800000) на 10, получая интервал 60480000.

В данный момент результат для меня несколько неожиданный, причина в том, что размер сегмента равен 3, и для каждого из них насчитывается от 100 до 300 документов. элементы корзины.

{ 
   "size":0,
   "aggs":{ 
      "sensors_aggregation":{ 
         "histogram":{ 
            "field":"@timestamp",
            "interval":60480000,
            "min_doc_count":1
         },
         "aggs":{ 
            "sensors.high_avg":{ 
               "avg":{ 
                  "field":"sensors.high"
               }
            },
            "sensors.current_avg":{ 
               "avg":{ 
                  "field":"sensors.current"
               }
            }
         }
      }
   },
   "query":{ 
      "bool":{ 
         "filter":[ 
            { 
               "term":{ 
                  "type.keyword":{ 
                     "value":"sensors"
                  }
               }
            },
            { 
               "range":{ 
                  "@timestamp":{ 
                     "format":"epoch_millis",
                     "gte":1568232646238,
                     "lte":1568837446238
                  }
               }
            }
         ]
      }
   }
}

Я ожидаю, что в моем корзине будет 10 элементов из этого запроса и среднее число подполей для 600 действительных документов.

...