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