728x90

이번 블로그는 Query 및 Search 성능을 향상시킬수 있는 인덱스에 대해 살펴 보겠습니다.

 

Couchbase에서 제공하는 인덱스의 종류는 다음과 같습니다.

  • Primary 인덱스 : Index 서비스
  • Secondary 인덱스 : Index 서비스
  • Full Text 인덱스 : Search 서비스
  • Analytics 인덱스 : Analytics 서비스
  • View 인덱스

 

먼저 Primary 인덱스는 특정 Collection의 Key 에 생성되는 인덱스입니다. 조건절이 포함되지 않은 간단한 Query를 위해 사용되며 운영 환경에서는 권장하지 않습니다.

 

Secondary 인덱스는 Document 내에 특정한 Attribute 에 생성되는 인덱스입니다. 이 인덱스는 Global Secondary Index(GSI)라고도 부릅니다. Couchbase에서 대부분의 인덱스이며 N1QL Query를 수행하는데 사용됩니다.

 

Full Text 인덱스는 Document 내에 텍스트 내용에 대한 검색을 위해 생성되는 인덱스입니다. 텍스트 검색, Fuzzy 검색 등에 사용됩니다.

 

Analytics 인덱스는 Shadow Copy에 대한 Materialized Access Path를 제공합니다. 이 인덱스는 Analytics Query 성능을 향상시키는데 사용합니다.(Select & Join)

 

View 인덱스는 Document 내 특정한 Attribute 및 Value를 저장하고 있는 View를 지원하는 인덱스입니다. Couchbase 7 이후로는 사라지는 기능입니다. 이 인덱스는 Secondary 인덱스로 대체될 수 있습니다.

 

 

참고자료

https://docs.couchbase.com/server/current/learn/services-and-indexes/indexes/indexes.html

'Couchbase 아키텍처' 카테고리의 다른 글

[데이터]Expiration(Time To Live : TTL)  (0) 2022.08.22
[데이터]Durability  (0) 2022.08.22
[데이터]Scope, Collection  (0) 2022.08.20
[데이터]데이터 모델 : JSON  (0) 2022.08.20
[서비스]Backup 서비스  (0) 2022.08.16
728x90

이번 블로그는 자연어 처리를 수행하여 검색을 제공하는 Search 서비스에 대해 살펴 보도록 하겠습니다.

 

Search 서비스는 Naver, Google과 같은 검색 엔진이 제공하는 서비스와 유사합니다. 다음은 Search 서비스의 특징입니다.

  • 자연어를 인식하는 검색, "beauties"를 검색해도 "beauty", "beautiful"도 같이 검색 결과로 제공
  • 검색 결과에 대한 스코어링, 검색 결과가 많더라도 높은 스코어링 점수를 가진 결과만 필터링
  • 빠른 검색을 위한 인덱스 제공
  • Geosptial Query 지원, 특정한 위치를 포함한 Document 검색
  • 구간 검색 제공, 수치 구간/날짜 구간
  • Fuzzy 검색, 정규 표현식 검색, Wildcard 검색 지원 
  • Search 서비스를 위한 인덱스는 Index 서비스에서 관리하는 인덱스와 성격이 완전히 다르고 별도로 관리하지만 N1QL을 통해 Search 서비스를 이용하려면 Index 서비스 및 Query 서비스가 클러스터 내에서 운영

 

다음은 Search 서비스의 아키텍처입니다.

[출처 : docs.couchbase.com]

  • 검색 인덱스를 생성하면 해당 인덱스의 대상 vBucket의 데이터가 해당 인덱스를 구성하는 파티션에 균등하게 분산되어 저장됩니다.
  • 클러스터 내 Search 서비스를 운영하는 노드는 모두 검색 요청을 받을 수 있고 검색 요청을 받은 노드가 Coordinator가 되어 다른 Search 서비스 노드에 요청을 배분하고 취합하는 역할을 합니다.(Scatter and Gather)

 

N1QL을 통해 검색 서비스를 접근하여 검색 기능을 사용하려면 Search 함수를 사용하면 되고 Flex 인덱스 기능을 통해 N1QL에서 검색 인덱스를 기반으로 SQL을 수행할 수 있습니다.

 

관련자료

https://docs.couchbase.com/server/current/learn/services-and-indexes/services/search-service.html

'Couchbase 아키텍처' 카테고리의 다른 글

[서비스]Eventing 서비스  (0) 2022.08.16
[서비스]Analytics 서비스  (0) 2022.08.16
[서비스]Index 서비스  (0) 2022.08.16
[서비스]Query 서비스  (0) 2022.08.16
[서비스]Data 서비스  (0) 2022.08.16

+ Recent posts