Про Aggregations в Elasticsearch?

Допустим у меня в logstash хранится лог с записями когда, где и во сколько (timestamp) гуляли с собакой
(name -- имя собаки). Мне нужно по списку имен собак получить последние записи выгулки собак. Не получается написать нормальный запрос, вот что сделал:
GET logstash-1/dogs_walk/_search?pretty
{
  "aggs": {
    "filtered": {
      "filter": {
        "terms": {
          "name": [
            "Sharik",
            "Strelka"
          ]
        }
      },
        
      "aggs": {
        "group": {
          "terms": {
            "field": "name",
            "size": 2
          }
        }
      }
        
    }
  }
}
Не подскажите как лучше решить эту проблему? Про https://www.elastic.co/guide/en/elasticsearch/refe... я вкурсе, пока нужный запрос составиться не получилось.
  • Вопрос задан
  • 588 просмотров
Решения вопроса 1
@tid0wlas Автор вопроса
Кажется решил, нужно было использовать top_hits https://www.elastic.co/guide/en/elasticsearch/refe...
{
  "aggs": {
  
    "filtered": {
      "filter": {
        "terms": {
          "name": [
            "Sharik",
            "Strelka"
          ]
        }
      },    
      
      "aggs": {
        "group": {
          "terms": {
            "field": "name",
            "size": 2
          },
          
          "aggs": {
            "top_dogs_timestamp": {
              "top_hits": {
                "sort": [
                  {
                    "timestamp:" {
                      "order": "desc"
                    }
                  }
                ],
                "size": 1
              }
            }
          }
          
        }
      }      
        
    }
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы