运维开发网

NoSQL:如何根据lat&long检索’house’?

运维开发网 https://www.qedev.com 2020-03-18 17:47 出处:网络 作者:运维开发网整理
我有一个用于存储房地产房的NoSQL系统. 我在每个房子的钥匙价值商店中获得的一条信息是经度和纬度. 如果我想检索geo-lat / long框中的所有房屋,如下面的SQL: SELECT * from houses WHERE latitude IS BETWEEN xxx AND yyy AND longitude IS BETWEEN www AND zzz 题: >如何使用NoSQL进行
我有一个用于存储房地产房的NoSQL系统.

我在每个房子的钥匙价值商店中获得的一条信息是经度和纬度.

如果我想检索geo-lat / long框中的所有房屋,如下面的SQL:

SELECT * from houses 
WHERE latitude IS BETWEEN xxx AND yyy
AND longitude IS BETWEEN www AND zzz

题:

>如何使用NoSQL进行这种类型的检索…仅使用键值存储系统?

>即使我能用NoSQL做到这一点,它甚至会有效还是只是回到使用传统数据库更快地检索这类信息?

sql或没有sql不是问题 – 严格来说,问题是你的密钥是什么类型的索引. spatial indices,这是你需要有效地满足你的查询,与Sql无关,或者更一般地与关系数据库无关 – 它们与关系问题和非关系问题完全正交.不幸的是,我不知道Cassandra或其他流行的非关系数据库的任何公开可用的空间索引系统(事实上,我唯一知道的唯一面向GIS的数据库引擎是PostGIS,它恰好是作为强大的开源PostGres ……这是关系型的;-).

如果你没有空间索引但只有一个普通索引(例如,一个按Lat排序,然后是Long),那么你将需要扫描所有具有合适Lat的记录,以丢弃那些不合适的Long – 就像在相同的情况下,关系引擎必须为你做(当你选择几个BETWEEN并且它必须继续时,它是两个字段的明确排序索引,因此受到限制).与关系无关……与索引有关;-).

0

精彩评论

暂无评论...
验证码 换一张
取 消