2017-12-14 12 views
1

Redis 'GEORADIUS 명령을 사용하려고합니다.Redis GREORADIUS : 고도를 포함 하시겠습니까?

그러나이 명령은 주어진 경도와 위도를 중심으로 2 차원 원 범위 내에서만 검색합니다. 또한 고도로 검색해야하므로 3 차원 영역에서 결과를 찾을 수 있습니다.

어떻게하면 Redis에서이를 달성 할 수 있습니까?

답변

4

저는 실제로 당신이하려는 것은 지구의 구형 성질을 고려한다면 3D 실린더 (또는 원뿔의 일종) 내에서의 검색이라고 믿습니다.

고도 검색은 기본적으로 Redis의 지형 공간 색인에 포함되지 않지만 해당 속성을 자체 정렬 된 집합에 점수로 저장할 수 있습니다. 그런 다음 고도에 대해 범위 검색 (ZRANGEBYSCORE)을 수행하고 반경 쿼리 (힌트 : STORE 결과로 임시 키 사용)와 결과를 교차 (ZINTER) 할 수 있습니다.

참고로, 이것은 내가 xyzsets in geo.lua으로 가져간 접근법입니다.

+0

오 그래, 나는 실린더가 검색 범위를 더 잘 설명한다고 생각한다. –