Я использую Elasticsearch 7.6 и пытаюсь выполнить запрос, который запускает запрос geo_distance, чтобы найти соответствующие документы в точном городе ИЛИ в пределах диапазона расстояний 25 миль в этом случае.
С точки зрения непрофессионала, это будет «Выполнить поиск всех вакансий в городе «Санта-Роза, Калифорния» ИЛИ в 25 милях от него. Если есть вакансии в пределах 25 миль от Санта-Розы, Калифорния, эти документы должны быть возвращены в поиск. результаты в дополнение к любым вакансиям, где поле «job_location» конкретно указано «Санта-Роза, Калифорния».
Вот мой запрос, который возвращает 0 результатов, несмотря на наличие соответствующих документов в пределах 25 миль от указанных мною долготы и широты, то есть Санта-Роза, Калифорния.
Должно быть, у меня неправильный синтаксис.
{
"query": {
"bool": {
"filter": {
"geo_distance": {
"distance": "25 miles",
"geo_location": "38.440429,-122.7140548"
}
},
"must": [
{
"match": {
"active": true
}
},
{
"bool": {
"should": [
{
"term": {
"job_location": "Santa Rosa, CA"
}
}
]
}
}
]
}
}
}