给定一个大的GPS坐标列表和它们的权重,是否有一个开源软件(数据库/搜索引擎)可以在一个边界框或一个圆圈内获取最高的N值?
SELECT * FROM list WHERE IS_IN_BBOX(coords, bbox) ORDER BY weight DESC LIMIT 10;我预计这份清单将有数千万个项目。包围框可能非常大(整个世界)或非常小(缩放18),但搜索仍然应该是合理的快速。还有,我们能用Elasticsearch吗?我看到它有一个基于距离的搜索,但是没有基于权重的搜索。那Postgis呢?
发布于 2015-12-03 21:02:44
您可以使用MakeEnvelope和&& operator
SELECT *
FROM list
WHERE list.coords && ST_MakeEnvelope(left, bottom, right, top, srid)
ORDER BY list.weight;完成左、下、右、上、下相应的搜索。
https://stackoverflow.com/questions/34075342
复制相似问题