搜尋自動完成功能

本頁面將介紹自動完成功能及其使用方式。搜尋功能提供自動完成功能,以便在搜尋框中提供預先輸入建議。

自動完成功能可預測使用者輸入的查詢剩餘部分,進而改善使用者的搜尋體驗,並加快結帳前的購物流程。這項功能還能提供格式正確的查詢,進而改善搜尋回應品質,並提高收益。

總覽

當使用者開始在網站上輸入搜尋字詞時,搜尋功能會提供使用者可能需要的建議清單。舉例來說,當使用者輸入 sh 時,系統可能會建議「鞋子」和「襯衫」

資料來源

您可以為建議預測功能選擇下列任一資料來源:

  • 您上傳的 BigQuery 資料集。
  • 使用機器學習技術,從使用者事件和其他中繼資料產生的資料集。

已上傳的資料集

您上傳的 BigQuery 建議表格,用於建議查詢。如要瞭解如何上傳資料集,請參閱「匯入自動完成資料」。

自動學習資料集

系統根據使用者的搜尋事件,透過搜尋產生的機器學習建議資料集。

如要啟用自動學習功能,請按照下列步驟操作:

Cloud 控制台

  1. 前往「Controls」(控制項) 頁面

  2. 前往「Autocomplete Controls」(自動完成控制項) 分頁。

  3. 按一下「編輯設定」

  4. 開啟「自動學習」

  5. 按一下「儲存設定」

    自動學習功能可能需要 1 到 2 天才會更新。

cURL

curl -X PATCH -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://retail.googleapis.com/v2beta/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/completionConfig?update_mask.paths=auto_learning"  --data "{auto_learning: true}"

自動學習資料集先決條件

自動學習功能會根據搜尋類型「使用者事件」(eventType = "search") 產生建議,並使用過去 180 天的使用者事件。您必須匯入大量優質的使用者事件。

自動學習功能會篩除不常出現的建議內容,因此如果搜尋類型的使用者事件數量太少 (少於 20,000 次),系統可能會篩除許多建議候選項目。在這種情況下,建議您先使用較常見的搜尋查詢來測試自動完成功能。

自動學習資料集發布時程

系統會每天產生自動學習資料集,然後推送至索引和發布。整個週期約需兩天。

自動學習功能

搜尋服務會套用機器學習技術,清理及格式化自動學習資料集的查詢和建議資料。

功能 說明 範例
移除搜尋結果為 0 的搜尋
  • 移除沒有搜尋結果的查詢。
對於雜貨零售商而言,Gucci 手提包的搜尋結果為 0,因此已遭移除。
修正錯字
  • 修正錯別字。
  • 請在比對前清理即時輸入查詢。
MilcMilk
新增許可清單查詢
  • 系統會新增您明確允許的查詢。
請查看「更多資訊」部分
移除封鎖清單查詢
  • 系統會移除您明確封鎖的查詢。
請查看「更多資訊」專區
移除不安全的字詞
  • 使用 Google 安全搜尋。
  • 移除不當的查詢。
色情、情色、粗俗或暴力內容
移除極為罕見的字詞
  • AI 系統會根據查詢統計資料調整截止時間。
  • 如果某個字詞非常罕見,系統就會將其移除。
74x39x9 英寸雙人床墊 (2 層),附 120V 手持式充氣泵浦。
刪除重複的字詞
  • 以 AI 技術為基礎的語意理解
  • 如果是幾乎相同的字詞,系統會比對任一字詞,但只會建議較熱門的字詞。
Shoes for women、womens shoeswomans shoes 會進行重複項目刪除,因此系統只會建議其中一個。

取得完成建議

使用 completeQuery API 擷取建議。範例:

cURL

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog:completeQuery?query=sho&dataset=user-data&deviceType=DESKTOP&maxSuggestions=5"

自動完成選項和控制項

本節將說明自動完成功能可用的選項和控制項。請參閱下表的概略說明和更多詳細資訊。

控制項 詳細資料 位置
拒絕清單
  • 手動從建議資料中移除查詢。
API 要求:CompletionData:import。 詳情請參閱「匯入自動完成資料」。
許可清單
  • 手動將查詢新增至建議資料。
API 要求:CompletionData:import (另請參閱「匯入 Autocomplete 資料 」)
觸發自動完成功能的字串長度下限
  • 控制自動完成功能觸發前所需的字元數。
Cloud 控制台 > 控制項
比對順序
  • 比對順序可決定使用者查詢和建議的比對方式。
Cloud 控制台 > 控制項
建議數量
  • 這是自動完成功能會傳回的建議數量。
Cloud 控制台 > 控制項
API 要求:completeQuery.maxSuggestions
裝置類型
  • 指定裝置類型後,系統會根據指定裝置類型的熱門程度產生建議。
  • 如果未指定這項參數,系統會根據所有裝置類型的綜合人氣回傳建議。
API 要求:completeQuery.deviceType
建議資料來源
  • 如果您同時有自動產生的資料來源和上傳的資料來源,可以選擇在查詢時使用哪一個。
API 要求:completeQuery.dataset
語言
  • 您可以指定建議內容的語言。
API 要求:completeQuery.languageCodes[]

許可清單 (不要移除清單)

搜尋服務會對自動完成建議資料進行後續處理,例如拼字校正。您可以建立許可清單,讓搜尋服務在後置處理時略過這些字詞。

系統一律不會從建議中篩除允許的字詞。允許清單適用於上傳的資料集自動學習資料集

例如:有些品牌名稱會故意拼錯,例如「froot loops」而非「fruit」或「foot」。請參閱匯入完成度資料中的詳細上傳操作說明。

如要匯入資料,您可以使用 Cloud 控制台 > 控制項 > 自動完成控制項 > 不移除清單,或是使用 API 中的 CompletionData:import

變更會在大約 2 天內生效。

拒絕清單

拒絕清單僅適用於自動學習資料集。拒絕清單不適用於上傳的資料集

拒絕清單中的字詞永遠不會出現在建議中。

如要匯入拒絕清單,請依序前往 Cloud 控制台 > 控制項 > 自動完成控制項 > 拒絕清單,或使用 API CompletionData:import。如需有關匯入拒絕清單的詳細操作說明,請參閱匯入完成資料

變更會在大約 2 天內生效。

觸發長度下限

您可以設定自動完成查詢必須達到這個字元數才會傳回結果。如要找到這項設定,請依序前往 Cloud 控制台 >「控制項」 >「自動完成控制項」 >「觸發條件最小長度」

變更會立即生效。

比對順序

這項屬性會決定系統如何將建議內容與使用者輸入的字詞進行比對。

如果設為「建議開頭為字詞」,自動完成功能會將使用者輸入的字詞視為建議的確切前置字詞。舉例來說,使用者輸入「sh」會與「鞋子」和「上衣」的建議字詞相符,但不會與「紅色鞋子」的建議字詞相符。

如果設定為「建議項目可以從字詞中的任意位置開始」,自動完成功能就會將使用者輸入的字詞分割成單字,並比對建議中的字詞,不受字詞順序影響。舉例來說,使用者輸入的字詞「red sh」與「紅色襯衫」、「紅色鞋子」和「兒童紅色鞋子」等建議字詞相符。不過,輸入的字詞「hoes」與這些建議不符,因為建議中沒有任何字詞以「hoes」開頭。

如要找到這項設定,請依序前往 Cloud 控制台 >「控制項」 >「自動完成控制項」 >「比對順序」

變更會立即生效。

建議數量

這是系統會從自動完成查詢傳回的建議數量,且不得超過 20 個。如要查看這項設定,請依序前往 Cloud 控制台 >「控制項」 >「自動完成控制項」 >「建議次數」,也可以在 completeQuery 中進行設定。

變更會立即生效。

裝置類型

搜尋自動完成功能支援不同類型的裝置,例如 mobiledesktop。您可以根據裝置類型上傳或取得不同的建議。如果未在 completeQuery 中指定 deviceType,系統會針對所有裝置類型提供建議。

如果是根據搜尋使用者事件的自動學習資料集,請在 UserEvent.user_info 中設定 user_agent,以支援不同的裝置類型。請參閱 Wiki 中的使用者代理程式

進階功能

本節將說明搜尋功能提供的進階自動完成功能。舉例來說,您可以透過其他建議 (例如品牌和類別) 補充查詢自動完成建議。

這些進階功能僅適用於自動學習資料集。

建議 FeatureSet

我們為每個查詢建議字詞提供額外的 FeatureSet,讓客戶在網站上顯示進階功能。

FeatureSet 會以鍵/值對應方式顯示在回應中。Vertex AI Search for Commerce 會在 completeQuery.completionResults.attributes API 回應中,針對每個建議查詢回傳最多五個熱門類別和品牌。FeatureSet 建議不必與使用者輸入的查詢字串相符。

您可以在回應中使用 FeatureSet,豐富搜尋建議。例如:

  • 匯總並建立顯示在搜尋建議清單下方的「熱門品牌」和「熱門類別」部分。
  • 在搜尋建議字詞旁顯示最熱門的品牌或類別。

變更目錄後 (例如變更產品類別),請等待兩週至 30 天,讓 FeatureSet 建議反映產品目錄變更。這是因為自動學習功能會訓練過去 30 天的搜尋事件資料。

屬性建議

搜尋功能會提供與使用者輸入字串相符的屬性建議。系統支援的屬性建議類型為品牌和類別。

屬性建議與 FeatureSet 建議不同。屬性建議是建議的產品屬性清單 (例如品牌和類別),類似於查詢建議是建議查詢清單。屬性建議可獨立於查詢建議使用。建議 FeatureSet 是查詢建議的結構描述,因此取決於查詢建議。

屬性建議可用於自動完成使用者輸入的品牌或類別,並顯示在搜尋建議清單下方的專屬區段中。

含有產品數量的建議切面 (實驗功能)

這是實驗功能,僅供部分客戶使用。如要使用這項功能,請與支援團隊聯絡。

啟用含有產品計數功能的建議面向後,系統會傳回 completeQuery.completionResults,其中包含正常的自動完成建議清單,以及每個建議的產品計數,以及依面向 (例如 colorcategory) 計算的產品計數。

舉例來說,如果搜尋查詢是「鞋子」,系統可能會傳回下列自動完成建議:

  • 女鞋
  • 男鞋

此外,如果感興趣的商情項目索引鍵為 color,系統也會在每個自動完成建議中,一併傳回產品數量和按顏色劃分的產品數量:

  • 女鞋 (32)
    • 黑色 (10)
    • 灰褐色 (16)
    • 白色 (10)
  • 男鞋 (43)
    • 黑色 (10)
    • 棕色 (5)
    • 綠色 (17)

零售商不必向購物者顯示產品數量,但可以選擇依據產品數量排序建議清單,而非 completeQuery.completionResults 中傳回的順序。舉例來說,您可能想鼓勵購物者查看男用綠色鞋,因此將綠色鞋顯示在建議方塊頂端,即使這不是最受歡迎的商品也一樣。

例如:

{
  "completion_results": [{ 
    "suggestion": "womens shoes"
    "facets": [ 
      {
        "key": "color"
        "values": [ 
          {
            "value": "black"
            "count": 10
          }
          {
            "value": "taupe"
            "count": 16
          }
          {
            "value": "white"
            "count": 10
          }
        ]
      }
    ]
    "total_product_count": 32
  },
  (...)
  ],
}

每個建議搜尋查詢的切面計數資訊會以 completeQuery.completionResults.facets 中的 Facets 清單形式顯示。每個面向都有一個 FacetValues 清單,其中包含每個面向值的產品計數。每個建議搜尋查詢的產品總數會傳回至 completeQuery.completionResults.totalProductCount

如要啟用並使用含有產品數量的建議切面,請按照下列步驟操作:

  1. 請與支援團隊聯絡,請他們啟用「含有產品數量的建議切面」功能。指定要為哪些 FacetKeys 計算產品數量。只能使用 textual_fields 切面。

  2. 至少在 7 天內,請務必在使用 search API 時,將面向維度的索引鍵加入 FacetSpecs 中,並將面向維度的索引鍵加入 search.searchRequest.facetSpecs 中。

    這是因為系統會使用過去一週的搜尋記錄資料來計算面向資訊。

  3. 這項功能啟用後,completeQuery API 傳回的建議會包含依面向和建議計算的產品數量。

依實體篩選的建議

實體可讓您篩選自動完成搜尋建議。實體可能是不同品牌或區域的網站。您希望自動完成功能能盡可能反映使用者在特定品牌或區域網站購物的行為。如要進一步瞭解實體,請參閱「實體」。

請注意,實體篩選只會套用至 completion_results (與 UserEvent 相關)。這個篩選條件不會套用至 attribute_results (與 Product 相關)。因此,無論 entity 的值為何,attribute_results 都會相同。

如要在自動完成建議中加入實體,請按照下列步驟操作:

  1. 在搜尋使用者事件 (eventType = "search") 中加入 entity 欄位。如需相關資訊,請參閱 搜尋使用者事件的完整物件範例。

  2. CompleteQuery API 要求中設定 entity 欄位,即可只取得該實體的建議。

    使用者事件和 API 要求中的實體字串必須完全相符。否則,自動完成功能會傳回空白建議。

  3. 請確認實體 (無論是在搜尋使用者事件或 AutoComplete 要求中) 的長度不得超過 256 個字元。處理事件或要求時,系統會將長度較長的值截斷為 256 個半形字元,因此可能會發生不相符的情形。

通常需要 30 到 90 天的使用者事件資料,實體功能才能傳回最佳的自動完成建議。