【发布时间】:2018-10-31 15:01:47
【问题描述】:
我有一个大约 2000 万坐标的数据集。我希望能够以英里为单位传递纬度、经度和距离,并返回在我给定坐标的英里范围内的所有坐标。我需要理想的响应时间低于 50 毫秒。
我已经尝试在 golang 服务中加载内存中的所有坐标,该服务在每次请求时都会循环遍历数据并使用 hasrsine 过滤所有坐标,这些坐标在我给定坐标的给定英里距离内。
此方法会在大约 2 秒后返回结果。什么方法可以提高结果的速度?我愿意接受任何建议。
我正在玩弄按度数对所有坐标进行分组并仅按最接近给定坐标的值进行过滤的想法。不过,还没有任何运气可以改善响应时间。我的数据集也只是一个测试集,因为真实数据可能有数亿。
【问题讨论】:
-
我很好奇redis geo implementation 是否能提供更好的结果。您介意在其中加载您的数据并进行比较吗?
标签: go coordinates geo