标签: mysql search indexing geohashing
最近,我正在使用GeoHash将配对的地理坐标散列为散列值并将其存储在MySQL中。现在,我想根据其他哈希找到最接近的哈希。我注意到,MYSQL通过在SQL查询中使用命令“ like”来提供BTree结构来查找最接近的散列范围。
问题是,由于有时我不知道范围,我怎么能找到最接近的范围而不是给出范围。
有人可以给我一个提示吗?
真的很感激。
答案 0 :(得分:1)
QuadTile(或GeoHash?)可逆地将纬度+经度转换为一个数字。但是使用它“找到最近的”变得复杂而混乱。了解有关Z顺序的信息。据我了解,您需要使用ORDER BY和LIMIT运行4个查询; UNION个结果在一起;然后检查哪个是最好的。
ORDER BY
LIMIT
UNION
但是,如果尝试找不到足够的项目,要知道该怎么办就很棘手。
SPATIAL索引提供了一种更直接的方法。
SPATIAL
Here是一项针对大型数据集有效“查找最近”的技术。