Ну, скажем, вот мой первый индекс:
PUT test
{
"mappings": {
"doc": {
"properties": {
"id": {
"type": "keyword"
},
"loc": {
"type": "geo_point"
}
}
}
}
}
PUT test/doc/1
{
"id": "foo",
"loc": "42.358056,-71.063611"
}
PUT test/doc/2
{
"id": "foo",
"loc": "55.75,37.616667"
}
PUT test/doc/3
{
"id": "bar",
"loc":"40.7127,-74.0059"
}
Я сначала нахожу нужные координаты:
GET test/doc/_search
{
"query": {
"term": {
"id": {
"value": "foo"
}
}
}
}
Этот запрос возвращает мне "42.358056,-71.063611" и "55.75,37.616667". Я из них в моем приложении формирую следующей запрос:
GET other_index/doc/_search
{
"query": {
"bool": {
"should": [
{
"geo_distance": {
"distance": "12km",
"loc": "42.358056,-71.063611"
}
},
{
"geo_distance": {
"distance": "12km",
"loc": "55.75,37.616667"
}
}
]
}
}
}