쿼리 또는 검색 — 둘 다 아닌 이유

(2020 년 10 월 16 일)

Couchbase Connect 이벤트 와에서 약속 한대로 전체 텍스트 검색에 영향을주는 N1QL 쿼리 업데이트에 대해 좀 더 자세히 살펴 봅니다.

그 밖에도 Couchbase에서 일하고 있으며 전체 텍스트 검색 제품을 출시 한 제품 관리자였습니다. 그래서 지금도 내 마음에 가깝습니다. 그래서 금요일에 같은 이벤트에서 “간체 텍스트 검색”강연을하는 것입니다. 자세한 내용은이 기사의 끝에 있습니다.

전체 텍스트 검색 (FTS 일명 검색)은 자체 주제이지만이 기사에 대해 알아야 할 것은 별도의 서비스 또는 세트라는 것입니다. Couchbase의 N1QL SQL과 유사한 쿼리 서비스의 기능. 관계형 데이터베이스와 마찬가지로 N1QL은 GSI (Global Secondary Indexing)로 알려진 인덱스 세트를 활용합니다.

Couchbase 검색 서비스에는 자체 색인 세트가 있으며 강력한 언어 인식으로 JSON 문서의 필드 또는 개체에있는 텍스트를보다 유연하게 검색 할 수 있습니다.

Binh Le s talk Flex Index — 쿼리 제한없이 표준 SQL 술어로 검색 활용 에서는 쿼리가 필요에 따라 GSI 또는 FTS 인덱스를 사용할 수 있도록하는 N1QL 기능을 살펴 봅니다. 이것은 멋진 새 기능이며 액세스 할 수있는 두 가지 방법이 있습니다.

아래 슬라이드는 Binh의 강연에서 가져온 것입니다.보다 자세한 내용과 몇 가지 라이브 예제를 보려면 전체 강연을 참조하세요.

애플리케이션은 전체 텍스트 검색 또는 GSI 기반 쿼리를 사용하도록 선택할 수 있습니다.

검색 조건 자 함수가있는 N1QL

N1QL 검색 내에서 FTS 인덱스를 활용하는 첫 번째 방법은 SEARCH () 술어는 WHERE 절입니다. 이 그림은 사용 사례에 따라 단일 진입 점을 제공하는 다양한 Couchbase 서비스 쿼리 방법을 보여줍니다.

3 번은 SEARCH 함수에 대한 N1QL 호출을 보여줍니다.

WHERE… SEARCH (indexName, text to search for )

이렇게하면 WHERE 절의 모든 술어와 검색과 일치합니다. 가장 기본적인 FTS 텍스트 쿼리 기능을 사용하지만 의도적으로 간단합니다.

인덱스 힌트가 포함 된 N1QL

대체 접근 방식은 오른쪽 하단의 Binh 슬라이드에 나와 있습니다. 참고로이 슬라이드는 다른 데이터베이스 및 검색 제품에 대한 접근 방식을 요약 한 것입니다.

색인 힌트의 경우 FROM 절의 간단한 문이 모두 기존 FTS 인덱스를 활용하는 데 필요한 정보 :

FROM crm USE INDEX (USING FTS)

또한 명시 적으로 (USING GSI) 하지만 이것이 기본값이라고 생각합니다.

이 힌트를 사용하여 N1QL 쿼리 인터프리터는 WHERE 절 (예 : title type )은 FTS에 의해 색인이 생성됩니다. GSI 관련 색인 대신 사용되며 다른 입력이 필요하지 않습니다.

SELECT 절은 소스 do 애플리케이션에서 두 번째 호출을하지 않고도 사용자에게 신호를 보내고 반환합니다.

LIKE predicates, 날짜 범위, 숫자 범위 등은이 접근 방식에서 지원되며 백그라운드에서 강력한 FTS 쿼리로 변환됩니다. 자세한 내용은 Binh의 포괄적 인 블로그 게시물 을 참조하십시오.

어떻게 사용 하시겠습니까?

워크 플로는 간단합니다. 텍스트 검색을 위해 관련 필드를 색인화 한 다음 기존 쿼리에 힌트를 추가합니다. 이것은 FTS로 프로토 타이핑 및 테스트에 적합합니다. 쿼리에 아주 작은 절을 추가 할 수 있으며 상당한 방식으로 애플리케이션을 변경할 필요가 없습니다.

그런 다음 N1QL 대신 텍스트 검색을 사용하려는 경우 방법에 대한 아이디어를 얻을 수 있습니다. 반응 할 것입니다. FTS의 목표는 더 빠르고 관련성이 높고 점수가 매겨진 경기를 빠르게 제공하는 것입니다.

또는 이미 FTS를 사용하여 애플리케이션을 구동하고있는 경우 대신 N1QL 쿼리를 활용하여 일치하는 문서에서 필드 값을 검색하기 위해 별도의 호출을 할 필요가 없습니다.

이게 왜 중요한가요?

모든 기업은 점점 더 복잡 해지는 시스템을 유지하는 데 어려움을 겪고 있습니다. 저는 항상 시스템 설계자가 필요에 따라 다른 구성 요소를 교체 할 수있는 모듈 식 시스템 접근 방식을 옹호 해 왔습니다. 그러나 이는 테스트 및 개발 단계에서만 이상적입니다. 장기 계획의 경우 핵심 기능 집합을 표준화하고 최대한 긴밀하게 통합하는 것이 매우 유용합니다.

Couchbase는 쿼리를 포함하여 모든 키-값 및 문서 요구 사항에 대한 전체 플랫폼을 제공하는 것을 목표로합니다. , 텍스트 검색, 분석, 이벤트 등이 모두 분산 된 고성능 플랫폼에서 이루어집니다. 이것은 마케팅이 말하는 것 이상입니다. :). 이러한 기능 통합을 통해 관리자와 개발자는 여러 가지를 배우지 않고 단일 플랫폼에서 전문가가 될 수 있습니다.

여러 시스템 구성 요소를 통합 된 경험으로 축소 할 수 있다면 TCO 반드시 예상하지 못한 방식으로.

그게 중요하고 제가 낙관적 인 이유라고 생각합니다. 이러한 유형의 N1QL / 검색 통합 — 단순성을 위해 bravo!

내일 내 강연 (이벤트 3 일) 10:00 PDT — 단순화 된 텍스트 검색-방법 및 아키텍처 여기서 전체 텍스트 검색 개념을 부드럽게 소개하고 전반적인 내용을 이해하도록 돕습니다. 서비스 아키텍처. 여기에서 등록하세요 .

읽어 주셔서 감사합니다!

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다