當使用者輸入搜尋查詢時,Cloud Search 的自動完成功能會提供建議字詞來協助使用者。例如,建議可能是文件標題、搜尋運算子、搜尋運算子值,或是 Google Workspace 機構的名稱和電子郵件地址。
Autocomplete 會從已編入索引的文件標題中擷取詞組,並使用 n-gram 模型判斷要提供的建議 API。根據預設,文件標題中的詞組會顯示於自動完成功能中。您也可以將文字和列舉結構定義屬性標示為 is_suggestable
,自動完成對應的屬性名稱和值。
Suggest API 會檢查搜尋查詢來找出有關查詢語言 (例如英文或西班牙文) 的提示,並據此安排結果的優先順序。要求的 languageCode
欄位也用於改善特定語言的建議。
情境示例
舉例來說,假設下列資料來源包含電影相關資料:
- 資料來源包含 2 份文件。
- 每份文件都有標題 (
ItemMetadata.title
) 和兩項屬性:genre
和characters
。 - 第一份文件的標題為《Avengers Infinity War》和
genre=science fiction
和characters=Iron Man, Hulk
- 第二份文件的名稱是《哈利波特》,含有
genre=Adventure, Fantasy and
characters=Hermione, Harry Potter`
圖 1 說明如何從文件標題、屬性和屬性值中擷取自動完成建議。
從文件 1 中,我們從文件 1 中擷取出 Ngram (最多三元數)、「Avenitys」、「Infinity」、「War」、「Avengers Infinity」、「Infinity War」、「Avengers Infinity War」。 同樣地,在文件 2 中,我們產生了「哈利」、「波特」、「哈利波特」。
查詢這個資料來源時,假設使用者一開始輸入「h」。向使用者顯示的建議如下所示:
- 哈利
- 香草
- 浩克
- 哈利波特
假設使用者選取自動完成建議「Hermione」,而使用者的下一個按鍵動作為「a」字元。使用者看到的自動完成建議會是:
- 赫爾米恩冒險
- 香草動作
- 赫爾米恩復仇者聯盟
自動完成功能會嘗試完成輸入的最後一個字詞 (或 ngram)。 在上例中,由於沒有以「hermione a」開頭的文字,因此只會將「a」展開為「adventure」、「action」和「avengers」。這項建議稱為「尾部建議」;僅自動完成輸入的最後一個字詞/n-gram。
Cloud Search 的自動完成功能最多可傳回 5 項文件內容相關建議和 2 項使用者建議。
根據預設,自動完成功能會顯示文件標題中的詞組。結構定義屬性必須明確標示為 is_suggestable
,建議 API 自動完成相應的屬性名稱和值。
與 Autocomplete API 整合
如果您使用預設搜尋應用程式或嵌入式搜尋小工具,系統就能原生支援 Cloud Search 的自動完成功能,使用者無需進行任何額外操作。請注意,根據預設,文件標題中的詞組會顯示在自動完成功能中。結構定義屬性必須明確標示為 is_suggestable
,建議 API 自動完成對應的屬性名稱和值。
建構自訂搜尋應用程式時,只要查詢 /query/suggest
API 端點,即可使用自動完成功能。
限制
自動完成功能有下列限制:
系統不支援透過結構定義中定義的
FilterOptions
限制 Cloud Search 的自動完成詞組,但下列內建篩選器除外:objectype
、mimetype
和類型篩選器。不支援查詢記錄式建議 (使用者先前在搜尋應用程式中執行的搜尋)
你最多可以將 20 個屬性標示為
is_suggestable
。如要提高此上限,請聯絡 Cloud Search 支援團隊。具有
exact_match_with_operator
的屬性無法使用搜尋運算子自動完成功能。Cloud Search 的自動完成功能最多可傳回 5 項文件內容相關建議和 2 項使用者建議。
Cloud Search 的自動完成功能只會根據使用者可存取的文件提供詞組建議。