Geografiske søk i NoSQL

stemmer
3

Vårt team jobber for tiden med noen killer iOS plassering app som vi frykter eksplodere på en god måte, så vi ønsker å legge vekt på å tenke på skalerbarhet og tilgjengelighet.

Når vi leser at tegne noe er basert på couchbase NoSQL, skannet vi sofaen basen api (spesielt .net en) og fant løsninger på alle våre app krav bortsett fra én, og vi beskriver scenariet:

  1. La oss si at vi har orden på 1.000.000 brukere over hele verden, med sin plassering spesifisert av lengdegrad og breddegrad;
  2. Vi har en bruker sirkel spekter c: den plasseringen (spesifisert av lengdegrad og breddegrad) og en radius rc
  3. Vi ønsker å effektivt finne ut hvilke av brukerne er i sirkelen.

Hvis vi skrive det i sql server som vi gjorde nå det er noe sånt som dette:

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

Men dette er NoSQL, er det bare taster (for eksempel lengdegrad tasten og breddegrad nøkkel), men vi kan ikke hente alle verdiene og spørre dem alle i minnet, kan ikke vi?

Så spørsmålet til deg er: Er det en måte du vet hvordan du skal gjøre noe slikt i NoSQL?

Takk skal du ha

ps vår beslektet spørsmål i Stackoverflow: Slik fastslår n steder inne i en sirkel effektivt?

EDIT: Couchbase støtte hadde svart meg! svaret som sitert:

Vår geo-romlige indeksering er en funksjon som debuterte i 2,0 (planlagt senere i år) som eksperimentell og vil flytte til fullt støttet i en senere utgivelse. Vi er også i ferd med å bygge de nødvendige klient-side grensesnitt for det, men det er ingenting tilgjengelig for øyeblikket. til slutt, avstand og byksende sirkel (blant annet) er funksjoner som vi vil utvikle som vi beveger oss fremover.

Publisert på 29/04/2012 klokken 22:41
kilden bruker
På andre språk...                            


1 svar

stemmer
3

Jeg er klar til å gjøre det med couchbase, men MongoDB har geografisk indeksering.

http://www.mongodb.org/display/DOCS/Geospatial+Indexing

EDIT Ser ut som Couch har Geospatial også, gjennom GeoCouch. http://www.couchbase.com/docs/couchbase-geocouch-guide/

Svarte 29/04/2012 kl. 22:47
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more