Select 时间范围内最近的位置

Select nearest location in a range of time

案例研究:

我正在创建一项服务来显示在用户附近的某个时间范围内可用的出租车

我有一个包含出租车可用性数据的数据库

id | lat | long | availableFrom | availableTo
n  | n   | n    | timestamp     | timestamp

我正在使用 Redis 实例来存储地理空间数据以进行快速地理空间查询

taxi
0) taxiId
0) 0) lat
   1) long

我需要的是检索 taxiId 和坐标以在地图上显示出租车。

我很难在 SQL 数据库中创建一个时间范围内的出租车查询,然后将其与 Redis 结果合并,但效率非常低。

我目前可以使用此配置查询我附近的出租车,但我想不出一个高效方法来按时间范围过滤它们。

那么我如何才能以有效的方式从数据库中检索在某个时间范围内可用的给定坐标附近的出租车? 只使用 SQL 是最好的方法吗? 是否有任何服务或图书馆可以做到这一点?

RediSearch module 允许您在同一个 Redis 请求中组合 NUMERIC(时间戳)和 GEO(经纬度)过滤器。