使用边界框查询Redis地理空间数据?

时间:2017-11-04 12:38:18

标签: redis geo bounding-box

我正在尝试使用边框来查找Redis中的地理空间数据。

在浏览了Redis网站上的所有文档后,我可以找到的唯一引用的边界框位于GEORADIUS命令的文档中;

  

时间复杂度:O(N + log(M))其中N是由中心和半径分隔的圆形区域的边界框内的元素数,M是索引内的项目数。

换句话说,看起来Redis中已经存在一个基本的边界框,但由于某种原因,它似乎并不容易为用户所用。我觉得这很奇怪。

我知道有一些库可用,例如geo.lua可以增加Redis的功能。如果可能的话,我想避免扩展我的Redis数据库,特别是因为看起来边界框的概念已经在Redis的地理空间系统中了。

我随时都会看到对边界框的引用(例如Redis release notes)我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:2)

令人遗憾的是,你的研究是正确的 - 目前在核心Redis中没有关于geoset的边界框查询。

在这种情况下,您可以选择执行包含框的半径搜索,然后过滤掉框外的结果。可以进行过滤:

  • 在客户端:效率最低但可能最简单
  • 服务器端Lua:类似于geo.lua的建议
  • 服务器端模块:可能是性能最高的(并且可能对社区有用)但实现起来也不那么简单

您还可以向Redis存储库提交功能请求,要求将此功能作为核心的一部分并描述用例 - IMO将是一个很好的补充。