Elasticsearch Агрегационная сортировка

Мое сопоставление Elasticsearch

{
  "mappings" : {
     "loc" : {
        "dynamic": "true",
        "properties" : {
            "geoip" : {
                "properties" : {
                "location" : { "type": "geo_point"}
                }
            },
        "lon" : { "type" : "double" },
        "lat" : { "type" : "double" },
        "altitude" : { "type" : "double" },
        "id" : { "type" : "long" },
        "date" : { "type" : "date", "format" : "epoch_millis" },
        "ip" : { "type" : "string" },
        "port" : { "type" : "string" }
       }
    }
  }
}

И я хочу отсортировать по времени. Итак, я сделал запрос.

{
    "query": {
        "bool" : {
            "must" : {
                "match_all" : {}
            },
            "filter" : {
                "geo_distance" : {
                    "distance" : "0.2km",
                    "geoip.location" : {
                        "lat" : 36.773353,
                        "lon" : 126.933847
                    }
                }
            }
        }
    },
    "size" : 0,
    "sort" : { "date" : { "order" : "desc" } },
    "aggs" : {
        "ids" : {
            "terms" : {
                "field" : "id"
            },
        "aggs" : {
            "dedup_docs" : {
                "top_hits" : {"size" : 1}
            }
        }
    }
   }
}

Я хочу вернуть последнее время, сгруппировав результаты применения фильтра gps по id и отсортировав их в хронологическом порядке.

Однако значение даты результата является неупорядоченным результатом. Я не знаю, как изменить запрос.

0 ответов

Другие вопросы по тегам