이제 전체 텍스트 검색 서비스에서 다음을 제공합니다. Couchbase 7.0의 범위 및 컬렉션 도입으로 클러스터 전반의 검색 성능과 리소스 활용도를 개선하세요.
잠시 뒤로 물러서서 살펴봅시다: 이제 카우치베이스 서버 7.0 릴리스 의 개념을 소개합니다. 범위 및 컬렉션 를 사용하여 Couchbase 버킷 내에서 데이터 네임스페이스를 지정할 수 있습니다. 모든 JSON 문서가 단일 공유 네임스페이스에 있어야 하는 경우, 범위 및 컬렉션은 다음과 같은 수동 속성을 추가하지 않고도 문서를 그룹화할 수 있는 기본 제공 기능을 제공합니다. 유형 를 문서에 추가합니다.
다음에서 검색 서비스를 사용하여 범위 및 컬렉션의 데이터를 색인하고 검색하는 방법을 살펴보겠습니다. 카우치베이스.
단일 컬렉션 내에서 검색을 위해 데이터를 색인화하는 방법
그리고 카우치베이스 전체 텍스트 검색(FTS) 서비스 는 버킷 안에 있는 문서에 대한 새 인덱스를 운영하고 정의할 때 이전과 똑같이 작동합니다. 범위 및 컬렉션을 사용하면 버킷에 있는 모든 기존(7.0 이전) 문서들이 _기본값 범위 및 _기본값 컬렉션. 그리고 기존 인덱스는 계속해서 새로운 돌연변이를 색인하고 모든 쿼리는 평소처럼 작동합니다.
팀에서 범위 및 컬렉션을 채택하면 데이터베이스 사용자는 다중 스키마 문서를 다양한 컬렉션으로 네임스페이싱하기 시작합니다. 다음은 7.0 릴리즈에서 Couchbase 전체 텍스트 검색이 변경되는 부분입니다.
검색 서비스는 다음을 지원합니다. 인덱스 생성 를 단일 소스 컬렉션뿐만 아니라 여러 소스 컬렉션에서도 사용할 수 있습니다. 단일 범위.
기본적으로 검색 인덱스는 여러 컬렉션에 걸쳐 있을 수 있지만 여러 범위에 걸쳐 있을 수는 없습니다..
예시: CRM을 사용한 전체 텍스트 검색
예시를 통해 좀 더 자세히 살펴보겠습니다.
고객 세부 정보가 다음에서 캡처되는 CRM 사용 사례를 생각해 보겠습니다. 고객 버킷과 주문 세부 정보를 주문 버킷.
지리적 지역에 따라 다양한 고객을 서로 다른 범위로 구성했다고 가정해 보겠습니다. 예를 들어 아시아 태평양 지역의 모든 고객을 다음과 같은 특정 Scope에 매핑한다고 가정해 보겠습니다. apac 등입니다.
아래 다이어그램은 CRM의 버킷, 범위 및 컬렉션을 구성하는 방법을 보여줍니다.

컬렉션을 사용하면 단일 소스 컬렉션에서 데이터를 색인하고 검색하는 것이 가장 일반적이고 자연스러운 사용 사례입니다. 기존의 버킷 기반 인덱스 생성 프로세스와 비슷하게 작동합니다. 유일한 차이점은 사용자가 인덱스 정의를 생성하는 동안 범위와 컬렉션 세부 정보를 지정해야 한다는 점입니다.
버킷 내에서 기본 범위 및 컬렉션을 인덱싱하는 경우에는 인덱스 생성 단계 컬렉션 이전과 완전히 동일하게 보입니다.
기본값이 아닌 범위 및/또는 컬렉션을 색인하려면 Couchbase 웹 UI에서 "기본값이 아닌 범위/컬렉션 사용" 확인란을 선택해야 합니다. 이 단계를 완료하면 인덱스 생성 프로세스에서 아래 그림과 같이 소스 범위 및 컬렉션 세부 정보를 입력하라는 메시지가 표시됩니다.

기본값이 아닌 범위/컬렉션 확인란을 활성화한 후에는 문서의 소스 범위를 선택할 수 있습니다(아래 참조). 이제 범위 드롭다운에 선택한 버킷(이 예에서는 CRM) 내에서 사용 가능한 모든 범위가 나열되는 것을 볼 수 있습니다.

위 스크린샷과 같이 드롭다운 목록에서 컬렉션이 속한 범위를 선택할 수 있습니다.
유형 매핑 지정
범위를 선택하면 색인할 문서 유형을 지정할 준비가 완료됩니다.
유형 매핑을 통해 문서 유형을 지정하는 것이 관례이며, 여기에서도 동일한 유형 매핑 정의 패턴이 계속 적용됩니다. 새 유형 매핑을 추가하면 아래와 같이 사용자에게 소스 컬렉션을 지정할 수 있는 옵션이 제공됩니다.

사용자는 앞서 언급한 범위에서 사용 가능한 모든 컬렉션을 볼 수 있어야 합니다(예, emea)를 위와 같은 드롭다운 목록으로 표시합니다.
지정된 컬렉션 내의 모든 문서 유형 인덱싱하기
인덱싱할 수 있습니다. 모든 유형 매핑 이름의 드롭다운 목록에서 컬렉션 이름을 선택하여 컬렉션의 문서 유형을 지정합니다. 아래 이미지를 참조하세요.

컬렉션 내에서 여러 문서 유형 색인화
컬렉션이 여러 문서 유형을 호스팅하는 경우, 아래와 같이 컬렉션 이름 뒤에 관심 있는 유형 매핑 이름을 원하는 만큼 지정할 수 있습니다.

위의 예에서는 다음과 같은 문서 유형을 색인화합니다. 부서 주문 그리고 인벤토리 주문 컬렉션에서 customer1 범위 아래 emea.
스케일링 참고 사항
이제 버킷 데이터가 범위와 컬렉션에서 더 세분화된 단위로 분할되므로 각 컬렉션 내의 문서가 더 작은 카디널리티를 가질 가능성이 높습니다.
컬렉션의 특성에 따라 다음을 수행할 수 있습니다. not 의 기본 파티션 설정을 사용해야 합니다. 6 를 인덱스당 사용하여 더 작은 데이터 집합을 지원합니다.
주어진 데이터 양에 적합한 파티션 수를 사용하면 지원에 도움이 됩니다:
-
- 노드에서 리소스 활용도 향상
- 특정 노드에 인덱스 수가 많을수록
- 검색 성능 향상
따라서 기본 파티션 수를 다음과 같이 재정의하는 것이 좋습니다. lower 값을 설정합니다.
RBAC 참고 사항
이제 다음을 관리할 수 있습니다. 버킷, 범위 또는 컬렉션 수준에서 전체 텍스트 검색 인덱스에 대한 역할 기반 액세스 제어(RBAC).
다음 중 하나에 해당하는 사용자 리더 검색 권한이 있는 사용자는 소스 컬렉션 수준에서 전체 텍스트 검색 인덱스에 액세스할 수 있습니다.
여러 컬렉션에서 검색을 위해 데이터를 색인하는 방법
다중 컬렉션 인덱스는 사용자가 단일 인덱스에서 단일 범위 내의 여러 컬렉션을 색인하고 검색할 수 있도록 도와줍니다. 다중 컬렉션에 유리한 몇 가지 사용 사례는 다음과 같습니다:
-
- 사용자는 각 컬렉션 또는 네임스페이스가 고객 계정 또는 제품 브랜드 등이 될 수 있는 여러 컬렉션에 걸쳐 데이터를 슬라이스했습니다(즉, 컬렉션 간에 동질적인 데이터).
- 사용자는 데이터의 논리적 분할(즉, 컬렉션 간에 이질적인 데이터)로 인해 데이터 집합에 상대적으로 작은 크기의 컬렉션이 많이 있습니다.
이러한 모든 경우에 여러 컬렉션의 데이터에 대한 전체 텍스트 검색을 사용하려면 수많은 인덱스를 만들어야 할 수 있습니다. 그러나 이렇게 많은 수의 인덱스를 만들고 유지 관리해야 하는 것은 번거로운 일입니다.
멀티컬렉션 인덱스가 바로 여기에 있습니다.
다중 컬렉션 인덱스는 여러 컬렉션을 포괄하는 엄브렐러 인덱스를 생성할 수 있어 오버헤드를 줄여줍니다. 이러한 컬렉션에는 동질적인 또는 이기종 데이터.
유형 매핑 지정
아래 스크린샷에서 다음과 같은 다양한 컬렉션의 이기종 데이터 유형을 인덱싱하기 위한 유형 매핑의 정의를 확인할 수 있습니다. customer1, customer2 그리고 customer3. 다음과 같은 다양한 컬렉션에서 유사한 데이터 유형을 사용할 수도 있습니다. customer1.travels 그리고 customer3.travels 등입니다.

라이프사이클 노트
멀티컬렉션 인덱스에서 소스 컬렉션이 삭제되면 인덱스도 삭제됩니다(!).
따라서 멀티 컬렉션 인덱스는 수명이 비슷한 컬렉션에 가장 적합합니다.
RBAC 참고 사항
Couchbase RBAC 보안에서는 다음이 필요합니다. 리더 검색 멀티컬렉션 인덱스에 액세스하려면 모든 소스 컬렉션에 대한 권한이 필요합니다.
전체 텍스트 검색을 사용하여 컬렉션의 데이터를 검색하는 방법
단일 컬렉션 색인: 이전 버킷 기반 인덱스와 동일한 방식으로 단일 컬렉션 인덱스에서 데이터를 검색하고 검색할 수 있습니다.
다중 컬렉션 색인: 동일한 이전 검색 요청을 사용하여 멀티컬렉션 인덱스를 검색할 수 있습니다. 다중 컬렉션 인덱스에는 여러 소스 컬렉션의 데이터가 포함되어 있으므로 관련 히트의 소스 컬렉션을 아는 것이 유용합니다.
다중 컬렉션 인덱스를 사용하면 검색 결과의 각 히트 항목에 해당 항목이 속한 컬렉션에 대한 정보가 포함됩니다. 이 소스 컬렉션 세부 정보는 필드 키 아래의 각 히트 섹션 _$c. 예를 들어 아래 이미지를 참조하세요.

전체 텍스트 검색 요청을 다중 컬렉션 색인 내의 특정 컬렉션으로만 좁힐 수도 있습니다. 이렇게 하면 대규모 색인에서 검색 속도를 높일 수 있습니다.
다음은 컬렉션에 대한 컬렉션 검색 요청 샘플입니다. customer1 그리고 customer3.
|
1 2 3 4 5 6 7 8 9 |
{ "query": { "match_phrase": "예산 초과" }, "컬렉션": [ "customer1", "customer3" ] } |
업그레이드 참고 사항
전체 텍스트 검색 서비스에 대한 컬렉션 지원은 완전히 업그레이드된 Couchbase 7.0 클러스터에서만 이용할 수 있습니다.
혼합 버전 클러스터에서는 FTS에 대한 컬렉션 지원을 사용 설정할 수 없습니다.
결론
7.0 릴리스에 도입된 새로운 범위 및 컬렉션 기능과 함께 Couchbase 전체 텍스트 검색 서비스를 즐겁게 사용하시기 바랍니다.
Couchbase Server 7에 대해 자세히 알아보려면 다음을 참조하세요, 새로운 기능 확인 및/또는 7.0 릴리스 노트.
Couchbase 7 체험하기