Cloud Search のオートコンプリートは、ユーザーが検索クエリを入力するときに単語を提案することでユーザーを支援します。たとえば、候補は、ドキュメント タイトルからの単語、検索演算子、検索演算子の値、Google Workspace 組織からの名前とメールアドレスなどになります。
オートコンプリートは、インデックスに登録されたドキュメントのタイトルからフレーズを抽出し、n-gram モデルを使用して、Suggest API で提供する提案を決定します。デフォルトでは、ドキュメント タイトルのフレーズはオートコンプリートで表示されます。テキストと列挙型スキーマ プロパティを is_suggestable としてマークして、対応するプロパティ名と値をオートコンプリートすることもできます。
Suggest API は、検索クエリを調べて、クエリの言語(英語やスペイン語など)に関するヒントを探し、それに応じて結果の優先順位を付けます。リクエストの languageCode フィールドは、言語固有の候補の改善にも使用されます。
シナリオ例
たとえば、映画に関するデータを含む次のデータソースがあるとします。
- データソースには 2 つのドキュメントが含まれています。
- 各ドキュメントには、タイトル(
ItemMetadata.title)と 2 つのプロパティ(genreとcharacters)があります。 - 最初のドキュメントは、タイトルが「Avengers Infinity War」で、
genre=science fictionとcharacters=Iron Man, Hulkとされています。 - 2 番目のドキュメントは、タイトルが「Harry Potter」で、
genre=Adventure, Fantasy andcharacters=Hermione, Harry Potter` とされています。
図 1 は、ドキュメントのタイトル、プロパティ、プロパティ値から、オートコンプリートの提案がどのように抽出されるかを示しています。
ドキュメント 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)の補完が試行されます。前の例では、「a」が「adventure」、「action」、「avengers」にのみ展開されます。「hermione a」で始まるテキストはないためです。この提案はテール提案と呼ばれ、最後に入力された単語または n-gram のみがオートコンプリートされます。
Cloud Search のオートコンプリートでは、ドキュメントのコンテンツから、最大 5 つの提案と 2 つの人名の提案を返します。
デフォルトでは、ドキュメント タイトルのフレーズはオートコンプリートで表示されます。スキーマ プロパティに対応するプロパティ名と値が API によってオートコンプリートされるようにするには、そのスキーマ プロパティを is_suggestable として明示的にマークする必要があります。
オートコンプリート API と統合する
デフォルトの検索アプリケーションまたは埋め込み可能な検索ウィジェットを使用している場合、Cloud Search のオートコンプリート機能は、追加作業なしでネイティブにサポートされます。デフォルトでは、ドキュメント タイトルのフレーズはオートコンプリートで表示されます。スキーマ プロパティに対応するプロパティ名と値が 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 のオートコンプリートは、ユーザーがアクセスできるドキュメントからのみフレーズを提案します。