Elasticsearch: дата агрегации последние

У меня есть запрос, который работает. Он объединяет данные на основе идентификатора и находит объект MOST RECENT на основе созданного поля. У меня проблема в том, что я хотел бы найти ВТОРОГО ПОСЛЕДНЕГО вместо ПОСЛЕДНЕГО. Как бы я пошел по этому поводу? Я просматривал все документы, и все, что я могу найти, это диапазон, который мне не сильно помогает. Спасибо:)

{
    "query":{
      "match": {
         "name": "Robert"
      }
    },
    "aggs": {
        "previous": {
            "terms": {
                "field": "Id",
                "order": {"timeCreated": "desc"}
            },
            "aggs": {
                "timeCreated": {
                    "max": {"field": "created"}
                }

            }
        }
    }
}

1 ответ

Решение

Top_hits это то, что вы ищете. Использовать этот:

{
"query":{
  "match": {
     "name": "A"
  }
},
"aggs": {
    "previous": {
        "terms": {
            "field": "Id"

        },
         "aggs": {
            "latestRecords": {
              "top_hits": {
                "sort": {
                  "created": {
                    "order": "desc"
                  }
                },
                "size" :2
              }
            }
          }
       }
     }
   }
Другие вопросы по тегам