實作自動完成功能

Google Cloud Search 自動完成功能會在使用者輸入搜尋查詢時建議字詞,例如,搜尋建議可能包含文件標題中的字詞、搜尋運算子,或 Google Workspace 機構中的名稱。

自動完成功能會從已建立索引的文件標題中擷取片語,並使用 n-gram 模型,透過 Suggest API 判斷建議。根據預設,自動完成功能會顯示文件標題中的片語。您也可以將文字和列舉結構定義屬性標示為 is_suggestable,自動完成屬性名稱和值。

Suggest API 會檢查搜尋查詢的語言提示 (例如英文或西班牙文),並優先顯示結果。要求中的「languageCode」欄位也會改善特定語言的建議。

範例情境

假設資料來源包含電影資料:

  • 資料來源包含兩份文件。
  • 每份文件都有標題 (ItemMetadata.title) 和兩個屬性:genrecharacters
  • 文件 1 標題:「復仇者聯盟:無限之戰」;genre=science fiction characters=Iron Man, Hulk
  • 文件 2 標題:「哈利波特」;genre=Adventure, Fantasycharacters=Hermione, Harry Potter

圖 1 說明自動完成功能如何擷取建議。

兩個文件和產生的 N 元語法
圖 1. 用於自動完成的兩個文件和產生的 n 元語法

模型會從文件 1 擷取 n 元語法 (最多三元語法),例如「復仇者聯盟」、「無限」、「之戰」、「復仇者聯盟無限」、「無限之戰」和「復仇者聯盟無限之戰」。從文件 2 生成「哈利」、「波特」和「哈利波特」。

如果使用者在查詢這個資料來源時輸入「h」,可能會看到下列建議:

  • 哈利
  • Hermione
  • 浩克
  • 哈利波特

如果使用者選取「Hermione」,然後輸入「a」,自動完成功能可能會顯示:

  • Hermione Adventure
  • Hermione Action
  • Hermione Avengers

自動完成功能會嘗試完成您輸入的最後一個字詞或 n 元語法。在本例中,由於沒有以「hermione a」開頭的索引文字,因此系統會將「a」擴展為「adventure」、「action」和「avengers」。這是尾部建議。

Cloud Search 自動完成功能最多會根據文件內容提供五項建議,以及兩項使用者建議。

根據預設,自動完成功能會顯示文件標題中的詞組。您必須明確將結構化資料屬性標示為 is_suggestable,Suggest API 才能自動完成屬性名稱和值。

整合 Suggest API

如果您使用預設搜尋應用程式或可嵌入的搜尋小工具,Cloud Search 會原生支援自動完成功能。如要自動完成結構化資料屬性,請記得將屬性標示為 is_suggestable

如果您要建構自訂搜尋應用程式,可以使用 /query/suggest API 端點取得自動完成功能。

限制

自動完成功能有以下限制:

  • 系統不支援使用 FilterOptions 限制自動完成片語,但 objecttypemimetype 等內建篩選器除外。
  • 系統不支援根據使用者查詢記錄提供建議。
  • 最多可將 20 個房源標示為 is_suggestable。如要提高這項上限,請與 Cloud Search 支援團隊聯絡。
  • 如果資源含有 exact_match_with_operator,則無法使用搜尋運算子自動完成功能。
  • 自動完成功能最多會傳回五個文件內容建議和兩個使用者建議。
  • 自動完成功能只會建議使用者可存取文件中的詞組。