자동 완성 기능 구현

Cloud Search의 자동 완성 기능은 사용자가 검색어를 입력할 때 단어를 추천하여 사용자를 지원합니다. 예를 들어 추천 단어는 문서 제목, 검색 연산자, 검색 연산자 값 또는 Google Workspace 조직의 이름 및 이메일 주소일 수 있습니다.

자동 완성은 색인이 생성된 문서의 제목에서 구문을 추출하고 N-그램 모델을 사용하여 Suggest API를 통해 제공할 추천을 결정합니다. 기본적으로 문서 제목의 구문이 자동 완성에 표시됩니다. 텍스트 및 열거형 스키마 속성을 is_suggestable로 표시하여 해당 속성 이름과 값을 자동 완성할 수도 있습니다.

Suggest API는 검색어를 검토하여 쿼리 언어에 대한 힌트(예: 영어, 스페인어)를 확인하고 그에 따라 검색 결과의 우선순위를 지정합니다. 요청의 languageCode 필드는 언어별 추천을 개선하는 데도 사용됩니다.

시나리오 예

예를 들어 영화에 대한 데이터가 포함된 다음과 같은 데이터 소스가 있다고 가정해 보겠습니다.

  • 데이터 소스에는 2개의 문서가 포함되어 있습니다.
  • 각 문서에는 제목(ItemMetadata.title)과 두 개의 속성(genrecharacters)이 있습니다.
  • 첫 번째 문서의 제목은 'Avengers Infinity War'이며 genre=science fictioncharacters=Iron Man, Hulk입니다.
  • 두 번째 문서의 제목은 'Harry Potter'이며 genre=Adventure, Fantasy andcharacters=Hermione, Harry Potter`입니다.

그림 1은 문서 제목, 속성, 속성 값에서 자동 완성 추천이 추출되는 방법을 보여줍니다.

두 개의 문서와 결과 N-그램
그림 1. 두 개의 문서와 자동 완성에 사용되는 결과 N-그램

문서 1에서 'Avengers', 'Infinity', 'War', 'Avengers Infinity', 'Infinity War', 'Avengers Infinity War'의 ngram (최대 트라이그램)을 추출합니다. 문서 2와 마찬가지로 'Harry', 'Potter', 'Harry Potter'를 생성합니다.

이 데이터 소스를 쿼리할 때 사용자가 'h'를 입력하여 시작한다고 가정해 보겠습니다. 사용자에게 표시되는 제안은 다음과 같습니다.

  • Harry
  • Hermione
  • Hulk
  • 해리 포터

사용자가 자동 완성 추천 용어인 'Hermione'를 선택하고 사용자의 다음 키 입력이 문자 'a'라고 가정해 보겠습니다. 사용자에게 표시되는 자동 완성 추천은 다음과 같습니다.

  • Hermione Adventure
  • Hermione Action
  • Hermione Avengers

자동 완성은 입력되는 마지막 단어 (또는 ngram)의 완성을 시도합니다. 이전 예에서는 'hermione a'로 시작하는 텍스트가 없으므로 'a'를 'adventure', 'action', 'avengers'로 확장합니다. 이 추천을 꼬리 추천이라고 합니다. 입력되는 마지막 단어/n-그램만 자동 완성합니다.

Cloud Search의 자동 완성 기능은 문서 콘텐츠에서 최대 5개의 추천과 2개의 사용자 추천을 반환합니다.

기본적으로 문서 제목의 구문이 자동 완성에 표시됩니다. Suggest API가 해당 속성 이름과 값을 자동 완성하려면 스키마 속성이 명시적으로 is_suggestable로 표시되어야 합니다.

Autocomplete API와 통합

기본 검색 애플리케이션 또는 삽입 가능한 검색 위젯을 사용하는 경우 Cloud Search의 자동 완성 기능은 추가 작업 없이 기본적으로 지원됩니다. 기본적으로 문서 제목의 구문이 자동 완성에 표시된다는 점을 기억하세요. Suggest API가 해당 속성 이름과 값을 자동 완성하려면 스키마 속성이 명시적으로 is_suggestable로 표시되어야 합니다.

커스텀 검색 애플리케이션을 빌드하는 경우 /query/suggest API 엔드포인트를 쿼리하여 자동 완성을 사용할 수 있습니다.

제한사항

자동 완성에는 다음과 같은 제한사항이 있습니다.

  • 스키마에 정의된 FilterOptions를 사용하여 Cloud Search의 자동 완성 문구를 제한하는 것은 기본 제공 필터인 objectype, mimetype, 유형 필터를 제외하고 지원되지 않습니다.

  • 쿼리 기록 기반 추천 (이전에 검색 애플리케이션에서 사용자가 수행한 검색)은 지원되지 않습니다.

  • 최대 20개의 속성을 is_suggestable로 표시할 수 있습니다. Cloud Search 지원팀에 문의하여 이 한도를 늘릴 수 있습니다.

  • exact_match_with_operator가 있는 속성에는 검색 연산자 자동 완성을 사용할 수 없습니다.

  • Cloud Search의 자동 완성 기능은 문서 콘텐츠에서 최대 5개의 추천과 2개의 사용자 추천을 반환합니다.

  • Cloud Search의 자동 완성 기능은 사용자가 액세스할 수 있는 문서에서만 구문을 추천합니다.