我正在使用 Elasticsearch 7.6 并尝试运行一个运行 geo_distance 查询的查询,以在这种情况下在一个确切的城市或25 英里的距离范围内查找匹配的文档。
用外行的话来说,这将是“搜索“加利福尼亚州圣罗莎”市或其周围 25 英里内的所有工作。如果在加利福尼亚州圣罗莎 25 英里范围内有工作,则应在搜索中返回这些文件除了“job_location”字段专门为“Santa Rosa, CA”的任何工作之外的结果
这是我的查询,尽管在我指定的经度和纬度(加利福尼亚州圣罗莎)的 25 英里范围内有匹配的文档,但它返回 0 个结果。
我一定是语法错误。
{
"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"
}
}
]
}
}
]
}
}
}