【发布时间】:2017-01-18 13:04:50
【问题描述】:
现在寻找一下,看看这是否可能。
我在 es 中有文档,它们的映射中有两个地理点。
- originGeo
- 目的地地理位置
我正在寻找创建一个查询,我可以找到距离 originGeo x 英里和destinationGeo y 英里内的所有文档。
我目前正在尝试以下几种不同的方式:
1
这不是我想要的,因为它使用每个地理点的相同距离。但是,它似乎也只返回与destinationGeo 相关的文档。
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [],
"must_not": [{
"term": {
"system": "boo"
}
}]
}
},
"query": {
"filtered": {
"filter": {
"geo_distance": {
"distance": "1mi",
"originGeo": {
"lat": 33.9962144,
"lon": -118.46887759999998
},
"destinationGeo": {
"lat": 34.0348144,
"lon": -117.58480250000002
}
}
}
}
}
}
}
}
2
这会导致解析错误:过滤器格式错误,start_object 后没有字段
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [],
"must_not": [{
"term": {
"system": "boo"
}
}]
},
"geo_distance": {
"distance": "1mi",
"originGeo": {
"lat": 33.9962144,
"lon": -118.46887759999998
},
"destinationGeo": {
"lat": 34.0348144,
"lon": -117.58480250000002
}
}
}
}
}
}
一如既往地感谢任何帮助!
【问题讨论】:
标签: elasticsearch