2015-05-22 3 views
0

У меня есть поле даты внутри моих данных. Я сделал на нем гистограмму даты, с интервалом, установленным как месяц. Теперь он возвращает, количество документов в месяц, интервал. Вот запрос я использовал:Чтобы получить хиты внутри агрегатов, в elasticsearch

{ 
    "aggs": { 
     "dateHistogram": { 
      "date_histogram": { 
       "field": "currentDate", 
       "interval": "day" 
      } 
     } 
    } 
} 

Ниже точного ответа я получил.

{ 
     "aggregations": { 
      "dateHistogram": { 
       "buckets": [{ 
        "key_as_string": "2015-05-06", 
        "key": 1430870400000, 
        "doc_count": 10 
       }, { 
        "key_as_string": "2015-04-06", 
        "key": 1430870500000, 
        "doc_count": 14 
       }] 
      } 
     } 
    } 

Из приведенной выше реакции, то очевидно, что есть 10 документов под ключ «1430870400000» и 14 документов под ключ «1430870500000». Но, несмотря на количество документов, отдельные документы не отображаются. Я хочу, чтобы они отображались в ответе, чтобы я мог извлечь из него значения. Как я могу достичь этого в elasticsearch?

ответ

0

По моему разумению вы хотите получать все документы и использовал, что документы для aggregations поэтому вы должны использовать спички запрос с агрегацией, как показано ниже:

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "match_all": {} 
       } 
      ] 
     } 
    }, 
    "aggs": { 
     "date_wise_logs_counts": { 
      "date_histogram": { 
       "field": "currentDate", 
       "interval": "day" 
      } 
     } 
    } 
} 

Выше возвратом по умолчанию 10 документов в hit array, используйте sizesize=BIGNUMBER для получите более 10 предметов. (где BIGNUMBER равно числу, которое, по вашему мнению, больше, чем ваш набор данных). Но вы должны использовать scan and scroll вместо size

1

Легкий способ для этого - использовать агрегацию «топ-хитов». Вы можете найти использование «топ-хитов» here

Агрегация Top-hits предоставит вам соответствующие данные внутри сделанной вами агрегации, а также есть опции, чтобы указать, из какого результата вы хотите извлечь, и размер данных, которые вы хотите принять, а также параметры сортировки.

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