2016-09-07 3 views
0
{ 
"aggs":{ 
    "nest_exams":{ 
     "nested":{ 
      "path": "exams" 
     }, 
     "aggs":{ 
      "exams":{ 
       "filter" : { 
        "term": { 
         "exams.exam_id": 96690 
        } 
       }, 
       "aggs":{ 
        "nested_attempts":{ 
         "nested":{ 
          "path": "exams.attempts" 
         }, 
         "aggs":{ 
          "user_attempts":{ 
           "terms":{ 
            "field": "exams.attempts.user_id", 
            "size": 0 
           }, 
           "aggs":{ 
            "max_score":{ 
             "max":{ 
              "field": "exams.attempts.order_score" 
             } 
            } 
           } 
          } 
         } 
        } 
       } 
      } 
     } 
    }   
} 

Здравствуйте, У меня есть этот запрос агрегирования. Проблема в том, что даже я могу найти max_score для каждого пользователя, я не могу суммировать агрегат максимум, чтобы найти дату этого наилучшего результата.Elasticsearch Aggregation Макс. Значение

Попытка быть user_id, order_score, DATE_START

ответ

1

Альтернативой является не запускать max метрический суб-агрегации, но top_hits вместо отсортирован по убыванию max_score, так что вы можете извлечь date_start из этого документа:

{ 
    "aggs": { 
    "nest_exams": { 
     "nested": { 
     "path": "exams" 
     }, 
     "aggs": { 
     "exams": { 
      "filter": { 
      "term": { 
       "exams.exam_id": 96690 
      } 
      }, 
      "aggs": { 
      "nested_attempts": { 
       "nested": { 
       "path": "exams.attempts" 
       }, 
       "aggs": { 
       "user_attempts": { 
        "terms": { 
        "field": "exams.attempts.user_id", 
        "size": 0 
        }, 
        "aggs": { 
        "max_score": { 
         "top_hits": { 
         "sort": { 
          "exams.attempts.order_score": "desc" 
         }, 
         "size": 1, 
         "_source": [ 
          "date_start" 
         ] 
         } 
        } 
        } 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 
+0

Могу ли я сортировать результаты на основе date_start? – Michalis

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