자동 완성 기능 구현

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

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

Suggest API는 검색어에서 영어 또는 스페인어와 같은 검색어 언어에 관한 힌트를 검사하고 그에 따라 결과의 우선순위를 지정합니다. 요청의 languageCode 필드는 언어별 추천을 개선하는 데도 사용됩니다.

예시 시나리오

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

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

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

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

문서 1에서 N-그램 (트라이그램까지) 'Avengers', 'Infinity', 'War', 'Avengers Infinity', 'Infinity War', 'Avengers Infinity War'를 추출합니다. 마찬가지로 문서 2에서는 'Harry', 'Potter', 'Harry Potter'를 생성합니다.

데이터 소스를 쿼리할 때 사용자가 가장 먼저 'h'를 입력한다고 가정해 보겠습니다. 사용자에게 표시되는 추천은 다음과 같습니다.

  • CANNOT TRANSLATE
  • Hermione
  • Hulk
  • 해리 포터

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

  • Hermione Adventure
  • Hermione Action
  • Hermione Avengers

자동 완성 기능은 입력되는 마지막 단어 (또는 N-그램)의 완성을 시도합니다. 이전 예시의 경우 '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의 자동 완성 기능은 사용자가 액세스할 수 있는 문서에서만 구문을 추천합니다.