Попробуйте поставить search_after
из query
:
{
"query": {
"bool" : {
"should" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "150km",
"location" : {
"lat" : xxxx,
"lon" : xxxxx
}
}
}
}
}
search_after": [1463538857, "654323"]
}
Так, как следует из названия, search_after
начнет совпадение после заданного значения. Вы должны указать для этого какой-то порядок. Например, в примере из документации
GET twitter/_search
{
"size": 10,
"query": {
"match" : {
"title" : "elasticsearch"
}
},
"search_after": [1463538857, "654323"],
"sort": [
{"date": "asc"},
{"tie_breaker_id": "asc"}
]
}
первая сортировка документов на основе полей date
и tie_breaker_id
, поэтому оператор "search_after": [1463538857, "654323"]
означает, что начать поиск после даты 1463538857
и tie_breaker_id "654323"
Итак, что вам нужно сделать, это отсортировать документы по некоторому полю, а затем предоставить search_after желаемое значение.