ElasticSearch находит документ с точным соответствием по долготе
У меня есть это отображение поля в моем индексе:
"businessLocation": {
"type": "geo_point"
},
Я хотел найти документы, используя точное совпадение с моим lat/long
координаты. я пробовал geo_distance
однако есть требование, чтобы мое расстояние было больше 0.
Я даже попробовал этот запрос:
{
"query": {
"bool": {
"must": [
{
"query_string": {
"default_field": "businessLocation",
"query": "src.lat = 34.47 AND src.lon = -122.37"
}
}
]
}
}
}
Тем не менее, я получил эту ошибку:
Geo fields do not support exact searching, use dedicated geo queries instead: [businessLocation]
1 ответ
Вам нужно запросить гео поля другим способом. Это то, что говорится об ошибке. Пожалуйста, смотрите https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-query.html для получения дополнительной информации.
Если вам нужны совпадения, близкие к вашим критериям, рассмотрите возможность понижения параметра расстояния в запросе расстояния, но помните о https://wiki.openstreetmap.org/wiki/Precision_of_coordinates.
{
"query": {
"bool" : {
"must" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "2km",
"businessLocation" : {
"lat" : 34.47,
"lon" : -122.37
}
}
}
}
}
}