Вам нужно будет использовать geo_shape datatype и преобразовать ваши XML (я предполагаю) полуточки в строку или многоугольник перед син c.
Я собираюсь go с многоугольником здесь. Давайте визуализируем обычные кардинальные направления :
North (+90)
|
(-180) West ——+—— East (+180)
|
South (-90)
geo_shape ожидает Geo JSON -подобные входы, поэтому вам понадобятся пять координатных точек, первая и последняя из которых идентичны (согласно Geo JSON spe c).
Следовательно, заимствуя у Turf JS и двигаясь снизу слева против часовой стрелки,
const lowLeft = [west, south];
const topLeft = [west, north];
const topRight = [east, north];
const lowRight = [east, south];
return
[
[
lowLeft,
lowRight,
topRight,
topLeft,
lowLeft
]
]
Наконец, давайте создадим наш индекс и добавим ваши числа в
PUT /example
{
"mappings": {
"properties": {
"location": {
"type": "geo_shape"
}
}
}
}
POST /example/_doc
{
"location":{
"type":"polygon",
"coordinates":[
[
[
5.8663152683722,
47.2701236047002
],
[
15.0418156516163,
47.2701236047002
],
[
15.0418156516163,
55.0583836008072
],
[
5.8663152683722,
55.0583836008072
],
[
5.8663152683722,
47.2701236047002
]
]
]
}
}
Затем убедитесь, что центр вашего квадрата, если он действительно находится внутри вашего индексированного многоугольника:
GET example/_search
{
"query": {
"geo_shape": {
"location": {
"shape": {
"type": "point",
"coordinates": [
10.45406545999425,
51.1642536027537
]
},
"relation": "intersects"
}
}
}
}