자동 완성 기능 구현

Cloud Search의 자동 완성 기능은 사용자가 검색어를 입력할 때 단어를 추천하여 사용자의 작업을 지원합니다. 문서 제목의 단어, 검색 연산자, 검색 연산자 값, G Suite 도메인의 이름과 이메일 등이 추천될 수 있습니다.

자동 완성 기능은 색인이 생성된 문서에서 구문을 추출하고 N-그램 모델을 사용하여 Suggest API를 통해 사용자에게 제공할 추천을 결정합니다. 예를 들어 영화에 대한 데이터가 포함된 다음과 같은 데이터 소스가 있다고 가정해 보겠습니다.

  • 데이터 소스에는 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'를 입력한다고 가정해 보겠습니다. 사용자에게 표시되는 추천은 다음과 같을 것입니다.

  • Harry
  • Hermione
  • Hulk
  • Harry Potter

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

  • Hermione Adventure
  • Hermione Action
  • Hermione Avengers

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가 있는 속성에는 검색 연산자 자동 완성을 사용할 수 없습니다.