我正在尝试使用ElasticSearch执行以下任务:
目标:找到最接近给定位置的路线
步骤:
1.将一些从某个源到目的地的路线作为一组地理坐标,称为“路线”
2.找到到达给定坐标的最近路线
3.在步骤2中获取路线上的最近点
- 卷曲请求步骤1:
a。
curl -XPUT 'http://localhost:9200/routes' -d '{"mappings": {
"route": {
"properties": {
"name": {
"type": "string"
},
"location": {
"type": "geo_shape"
}
}
}
}
}'
湾
curl -XPOST 'http://localhost:9200/routes/1' -d '{"name": "Indira Nagar", "path": {
"type": "polygon",
"coordinates": [
[
[
77.643495,
12.960354
],
[
77.643138,
12.960391
],
[
77.642692,
12.960435
],
[
77.642605,
12.960446
],
[
77.642252,
12.960486
],
[
77.641928,
12.96054
],[
77.64556,
12.972287
]
]
]
}
}'
- 在第2步中查询:
curl -XPOST 'http://localhost:9200/routes/_search' -d '{
"query": {
"geo_shape": {
"location": {
"shape": {
"type": "circle",
"radius": "1km",
"coordinates": [
77.643495,
12.960354
]
}
}
}
}
}'
结果:
{"took":2,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":0,"max_score":null,"hits":[]}}
请在上述步骤中指出故障。
我假设应该可以使用ElasticSearch找到最近的geo_shape到给定位置
注意:查询中的数据与快照中的数据不同。
我也尝试使用path.type作为linestring,multipoint但没有成功。