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