我们的团队目前正在研究一些我们害怕“爆炸”的杀手ios定位应用,因此我们想要考虑可扩展性和可用性。NoSQL中的地理查询
后,我们读到画东西是基于NoSQL的couchbase,我们扫描的沙发底座API(特别是.NET的一个),并发现我们所有的应用需求的解决方案,除了一个,而我们描述的情景:
- 假设我们在世界各地拥有1,000,000名用户,其位置由经度和纬度指定;
- 我们有一个用户圈范围c:它的位置(由经度和纬度指定)和半径rc我们想要有效地确定哪些用户在圈子中。
如果我们把它写在SQL Server中,因为我们没有现在它是这样的:
CREATE TABLE UserLocations
[UserId] [bigint] NOT NULL,
[CurrentLocation] [geography] NOT NULL
ALTER PROCEDURE sp_GetCurrentUsersInRange
@userPoint geography,
@RangeInMeters int
AS
BEGIN
select UserId from UserLocations
where @userPoint.STDistance(CurrentLocation) <= @RangeInMeters
and UserId <> @userId
END
但这是NoSQL的,只有按键(如经度键和纬度键),但我们无法获取所有值并在内存中查询它们全部 ,不是吗?
所以你的问题是: 有没有办法你知道如何在NoSQL中完成这样的事情?
谢谢
p.s.我们相关的问题在Stackoverflow:How to determine n locations inside a circle efficiently?
编辑: Couchbase的支持已经回答了我! 他们的回答如下:
“我们的地理空间索引是2.0版本的一个特性(预定在今年晚些时候发布)作为试验,并将在后续版本中完全支持。为它构建必要的客户端界面,但目前没有任何可用的功能。最后,距离和边界圈(等等)是随着我们前进而发展的特征。“
有关Couchbase的更多信息,请访问Couchbase论坛:http://www.couchbase.com/forums/thread/question-regarding-geographic-queries – vmx