카우치베이스 서버

검색 서비스에 고급 지리 공간 지원 추가

Couchbase Search 서비스는 Couchbase Server 릴리스 7.1.2를 통해 고차원 위치 기반 정보 인덱싱 및 쿼리 기능을 도입합니다.

이 새로운 기능이 추가되기 전까지는 검색 서비스가 단일 차원 지오포인트/위치 필드를 색인하는 것으로 제한되어 있었습니다. 쿼리는 색인된 지오포인트 필드에 대한 점-거리, 경계-직사각형, 경계-다각형과 같은 경계 쿼리로 제한되었습니다. 하지만 지오포인트만으로는 실제 도형이나 구조물의 다양한 공간적 세부 사항을 표현하는 데 효과적이지 않다는 것을 알고 있습니다.

이러한 고차원 공간 구조를 지원함으로써 사용자는 우편 또는 관할 지역 경계, 배달 차량이나 항공사의 경로, 강, 호수, 하천 등 다양한 수역의 경계와 같은 다양한 실생활의 형태를 근사화할 수 있습니다.

검색 서비스는 이제 GeoJSON 공간 데이터 형식 구형 측지학 이 릴리스에 추가되었습니다. 이를 통해 사용자는 GeoJSON 모양이 있는 모든 문서를 찾는 것과 같은 사용 사례를 해결할 수 있습니다:

    • 쿼리 모양을 포함합니다.
    • 는 쿼리 모양 내에 있어야 합니다.
    • 쿼리 모양과 교차

지원되는 GeoJSON 모양은 다음과 같습니다:

위의 도형 외에도 검색은 사용자가 공간 근사치를 쉽게 만들 수 있도록 몇 가지 사용자 정의 도형을 추가로 지원합니다. 지원되는 추가 도형은 다음과 같습니다:

    • 서클
    • 봉투

새로운 GeoJSON 유형

다양한 모양 유형을 한 눈에 살펴 보겠습니다.

GeoJSON의 모든 단순 도형은 다음과 같이 구성됩니다. 유형 좌표 모음입니다.

포인트 

다음은 GeoJSON을 지정합니다. 포인트 필드에 입력합니다:

포인트는 건물의 위치 또는 지리적 위치 API에서 제공하는 현재 위치와 같은 단일 지리적 좌표입니다.

참고 : 표준은 경도와 위도의 배열 형식과 같은 좌표를 지정하는 단일 방법만 지원합니다: [롱, 위도].

라인 문자열

다음은 GeoJSON을 지정합니다. 라인 문자열 필드에 입력합니다:

선형 문자열은 두 개 이상의 위치 배열로 정의됩니다. 두 점만 지정하면 선형 문자열은 직선을 나타냅니다. 두 개 이상의 점을 지정하면 임의의 경로가 생성됩니다.

다각형

다음은 GeoJSON을 지정합니다. 다각형 필드에 입력합니다:

다각형은 점의 목록으로 정의됩니다. 각 (외부) 목록의 첫 번째 점과 마지막 점은 동일해야 합니다(즉, 다각형이 닫혀 있어야 합니다). 그리고 외부 좌표는 다음 위치에 있어야 합니다. 시계 반대 방향 오데다각형의 r(CCW).

구멍이 있는 다각형도 지원됩니다. 구멍은 다음을 따라야 합니다. 시계 방향 주문 를 경계 정점으로 설정합니다.

링이 하나인 다각형의 경우 링은 자체 교차할 수 없습니다.

참고: 카우치베이스 서버 릴리스 7.1.2의 도형에는 정점의 CCW 순서가 엄격하게 요구되며, 이 요구 사항을 위반하면 예기치 않은 검색 결과가 발생합니다.

멀티포인트

다음은 GeoJSON을 지정합니다. 멀티포인트 필드에 입력합니다:

멀티라인 문자열

다음은 GeoJSON을 지정합니다. 멀티라인 문자열 필드에 입력합니다:

멀티폴리곤

다음은 GeoJSON을 지정합니다. 멀티폴리곤 필드에 입력합니다:

지오메트리 컬렉션

다음은 GeoJSON을 지정합니다. 지오메트리 컬렉션 필드에 입력합니다:

지오메트리 컬렉션에는 "geometries"라는 이름을 가진 멤버가 있습니다. "geometries"의 값은 배열입니다. 이 배열의 각 요소는 GeoJSON 지오메트리 객체입니다. 이 배열은 비어 있을 수 있습니다.

위에서 설명한 다른 지오메트리 유형과 달리 지오메트리 컬렉션은 작은 지오메트리 개체의 이질적인 구성이 될 수 있습니다. 예를 들어 소문자 로마자 "i" 모양의 Geometry 개체는 하나의 점과 하나의 LineString으로 구성될 수 있습니다.

중첩된 지오메트리 컬렉션이 유효하지 않습니다.  

서클

사용자가 지구 표면 위에 원형 영역을 덮고자 하는 경우 이 모양을 사용할 수 있습니다.

원형 모양 샘플은 아래와 같습니다.

원은 반지름과 함께 중심점 좌표 위에 지정됩니다.

반경에 지원되는 형식의 예는 다음과 같습니다: 

"5인치" , "5인치" , "7야드" , "7야드", "9피트" , "9피트", "11km" , "11킬로미터", "3nm" , "3해리", "13mm" , "13밀리미터", "15cm" , "15센티미터", "17미리" , "17마일" 19m 또는 "19미터"를 입력합니다.

단위를 확인할 수 없는 경우 전체 문자열을 구문 분석하고 단위는 미터 가 가정됩니다.

봉투

엔벨로프 유형: 도형의 왼쪽 위와 오른쪽 아래 점의 좌표로 구성되어 경계 직사각형을 다음과 같은 형식으로 나타냅니다.  [[최소론, 최대론], [최대론, 최소론]].

공간 필드 인덱싱 - 새 기능 지오셰이프 필드 유형

검색에 다음과 같은 필드 유형이 도입되었습니다. 지오셰이프 를 사용하여 앞서 언급한 공간 모양을 표현할 수 있습니다.

문서에 geoJSON 형식을 준수하는 지리적 도형 정보가 포함된 'geometry'라는 이름의 필드가 있는 경우, 먼저 아래와 같이 인덱스 정의의 유형 매핑 아래에 지리적 공간 필드를 포함할 수 있습니다.

Couchbase geospatial JSON indexing

Geospatial field indexing with JSON

마지막으로 색인 만들기 버튼을 누르면 지리공간 데이터를 쿼리할 수 있습니다.

참고 지오셰이프 필드 유형은 다음을 포함하여 앞서 언급한 모든 공간 유형을 인덱싱할 수 있습니다. 포인트, 라인스트링, 다각형, 멀티포인트, 멀티라인스트링, 멀티폴리곤, 지오메트리컬렉션, 원, 봉투.

공간 필드 쿼리 - 새로운 지오셰이프 쿼리

검색은 주로 색인된 이질적인 유형의 지오셰이프에 대해 세 가지 유형의 공간 쿼리 기능을 지원합니다.

쿼리 구조:

세부 정보:

    • shapeDesc - 포인트, 라인스트링, 폴리곤, 멀티포인트, 멀티라인스트링, 멀티폴리곤, 지오메트리컬렉션, 원, 봉투 등 9가지 유형 중 하나가 될 수 있습니다.
    • 관계 - 교차, 포함, 내 등 3가지 유형 중 하나 일 수 있습니다.
관계 결과
교차  다음과 같은 모든 문서를 반환합니다. 공간 필드가 쿼리 지오메트리와 교차합니다.
포함 다음과 같은 모든 문서를 반환합니다. 공간 필드에는 쿼리 지오메트리가 포함됩니다.
WITHIN 다음과 같은 모든 문서를 반환합니다. 공간 필드가 쿼리 지오메트리 내에 있습니다.

몇 가지 쿼리 샘플을 살펴보겠습니다. 

포인트 포함 쿼리 는 쿼리에서 지정된 지점을 포함하는 도형을 가진 일치하는 모든 문서를 반환합니다:

라인 문자열 교차 쿼리 는 쿼리의 선형 문자열과 교차하는 도형과 일치하는 모든 문서를 반환합니다:

 

다각형 withIn 쿼리 는 쿼리에서 다각형 영역 내에 완전히 존재하는 도형과 일치하는 모든 문서를 반환합니다:

추가 팁

검색 서비스는 측지학 또는 구형 기하학을 사용하여 고급 공간 기능을 지원합니다. 즉, 공간 필터를 수행하는 동안 지구 표면의 곡률이 고려됩니다. 주어진 도형의 경계 정렬의 차이를 관찰할 때 이 점을 염두에 두시기 바랍니다.

이러한 리소스는 테스트 데이터의 지오메트리를 이해하고 검증하는 데 도움이 될 수 있습니다:

    • 구형 매퍼에 대한 참조 - gcmap
    • 지오숀 셰이프 확인을 위한 참고 자료 - 참조 geojson.io
    • 버텍스 순서 또는 GeoJSON의 정확성 검증을 위한 참조 - 참고 자료 geojsonlint 

 

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 스리칸트 시바산카란

스리칸트 시바산카란은 Couchbase R&D의 수석 엔지니어/시니어 엔지니어링 매니저입니다. 그는 분산형 고성능 검색 기능의 설계 및 개발을 이끌고 있습니다. 또한 통신, 핸드셋, 엔터프라이즈 소프트웨어, 빅 데이터 기술, 분산 시스템 등 다양한 분야에서 17년 이상의 제품 개발 경력을 보유하고 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.