查詢擴充功能會逐步放寬查詢限制,以便在最初找不到任何結果或結果太少時,納入更多結果。這會導致每個查詢的結果大小有所調整。
如果查詢沒有相關文件,查詢擴展功能會傳回較不相關的文件,確保不會傳回零個搜尋結果。
與動態分面或放送控制項不同,查詢擴展無法直接在 Google Cloud 控制台中設定。您必須為每項搜尋要求,以程式輔助方式設定查詢擴展功能。請繼續閱讀下文,瞭解如何在 API 中設定查詢擴展。
教學課程:查詢擴充
本教學課程會說明如何啟用查詢擴充功能。如果購物者使用模稜兩可或內含多個字詞的搜尋詞組,可能會收到空白回覆。開啟查詢擴充功能後,系統會分析要求,並根據剖析的搜尋查詢傳回擴充產品清單。
如要直接在 Cloud Shell 編輯器中按照逐步指南操作,請按一下「Guide me」(逐步引導):
查詢擴充總覽
查詢擴充功能是一項強大功能,可提升搜尋召回率,避免出現零結果的情況,特別是針對長尾或複雜的使用者查詢。
如果產品目錄中沒有完全相符的結果,查詢擴展功能會找出並顯示相關或替代產品,這項功能可提升使用者體驗,並提高轉換率。
查詢擴展的主要用途包括:
- 長尾查詢:如果搜尋內容非常具體,例如「糖尿病高蛋白低脂有機牛奶」,目錄可能沒有完全相符的結果。查詢擴展功能可傳回符合部分意圖的產品,例如標記為適合糖尿病患者飲用的牛奶、高蛋白牛奶等屬性或屬性值的產品。
- 替代產品:如果使用者搜尋目錄中沒有的品牌或產品 (例如「星巴克咖啡 100 毫升」),查詢擴展功能可以建議可供購買的替代咖啡品牌,避免搜尋結果無效。
接下來的章節將說明 Vertex AI Search for commerce 的查詢擴展功能,包括功能、觸發機制和設定細節,並特別著重於標準篩選器的重要角色。
查詢擴充觸發機制
系統會根據快速設定的標準篩選規則,自動決定是否啟用查詢擴充功能或特定搜尋查詢。
- 觸發條件:只有在以標準篩選器查詢的初始搜尋結果少於 3 個產品時,系統才會觸發查詢擴充功能。
- 門檻:預設門檻為 3,可加以變更。這項功能適用於大多數電子商務用途,可確保只有在初始結果集確實稀疏時,才會啟用查詢擴充功能。
在 API 中設定查詢擴展功能
您可以使用 API,針對每個要求以程式輔助方式設定查詢擴展功能,如下所示:
API 設定:在
SearchRequest中加入queryExpansionSpec物件,即可控管查詢擴展功能。設定:在
queryExpansionSpec中,將condition欄位設為AUTO可啟用這項功能,設為DISABLED則會停用。如果未指定,預設為停用。釘選:您可以在要求中選擇將
pinUnexpandedResults設為true,確保原始查詢的完全比對結果會顯示在搜尋結果頂端,接著才是擴展結果。詳情請參閱釘選頁面。
設定標準篩選器
如要有效觸發查詢擴展功能,請務必在搜尋要求中正確設定 canonical_filter。
如要正確導入查詢擴展功能,請務必瞭解搜尋要求中的兩個主要篩選器參數:頂層篩選器和標準篩選器。
頂層篩選器 (
filter):這是套用至搜尋結果的主要篩選器,使用者會看到經過篩選的結果。這項功能結合了兩種潛在圖層:業務/基本篩選器:套用至所有搜尋的預先定義規則,通常不需要使用者直接輸入,例如
inStock=TRUE, category="groceries", storeId="XYZ"。使用者選取的構面篩選器:使用者與搜尋介面互動時動態套用的篩選器,例如選取「品牌 =『Adidas』,尺寸 =『L』」構面篩選器。
標準篩選器 (
canonical_filter):這是專用篩選器,僅供查詢擴展決策模組使用。其唯一工作是定義目錄檢視畫面,並根據該畫面評估查詢擴展觸發條件 (少於五個結果)。
核心標準篩選函式
標準篩選器可區分自然搜尋結果不佳,以及使用者刻意縮小範圍的結果集。
情境 1
-
使用者歷程:使用者搜尋「T 恤」,並獲得數千筆結果。系統會預設
business_filter,例如只篩選有現貨的產品,以及符合自訂商店層級屬性的產品。使用者接著套用「品牌 = Adidas」和「尺寸 = L」的切面篩選器,結果數量減少至兩項。 - 如果
canonical_filter與filter相同:查詢擴展決策系統只會看到 2 個結果,並錯誤觸發查詢擴展,顯示相關但不相干的產品,例如 Nike T 恤,這會忽略使用者的明確篩選條件。 - 正確設定是
canonical_filter = business filter:查詢擴展決策應根據初始查詢 (不含使用者選取的層面) 做出。
情境 2
-
使用者歷程:使用者搜尋「adidas t-shirt with black graphic prints」(有黑色圖案的 adidas T 恤),但只得到一或兩個結果 (如有)。系統會預設
business_filter,例如只篩選出有現貨的產品,以及符合自訂商店層級屬性的產品。 - 如果
canonical_filter未設定或設定不正確,使用標準篩選器搜尋時,可能會找到符合查詢條件但缺貨或來自不同商店的產品,也就是自訂商店層級屬性的值不同。在這種情況下,系統不會觸發查詢擴展功能。 -
正確設定為
canonical_filter = business filter。查詢擴展決策會針對指定的長查詢找出少於三項產品,然後觸發查詢擴展,並將相關產品帶入原始查詢,也就是符合商店層級屬性且有現貨的產品。因此,搜尋結果會擴大範圍,納入其他品牌的黑色圖案印花 T 恤、其他顏色的圖案印花 T 恤,或是查詢中品牌的其他 T 恤產品。
查詢擴展功能最佳做法
正統篩選器幾乎一律應設為與商家或基本篩選器相同。這樣一來,查詢擴展模組就能根據與使用者最初看到的相同廣泛目錄檢視畫面,評估查詢的潛在結果,然後再開始套用篩選條件。
端對端搜尋和查詢擴展程序流程
提出搜尋要求時,會同時進行下列程序:
收到要求:API 收到搜尋要求,其中包含查詢、主要
filter和canonical_filter。查詢擴展決策搜尋:查詢擴展決策模組會使用查詢和標準篩選器組合,執行自己的內部搜尋。
檢查結果數量:模組會檢查內部搜尋傳回的產品數量。
- 如果結果有五個以上:系統「不會」觸發查詢擴展功能。標準搜尋結果會進入最後的篩選步驟。
- 如果結果少於五個:系統會觸發查詢擴展。模型會系統性地放寬查詢條件,找出相關產品。例如,模型可能會尋找 Pixel 5 手機、Pixel 4 手機、Pixel 耳機,甚至是 Samsung 手機。
- 最終篩選:產品組合 (原始組合或查詢擴展功能擴展的組合) 會傳遞至最後階段。在這種情況下,系統會嚴格套用頂層篩選器,其中包含業務規則和使用者選取的任何層面。
- 傳送回應:API 回應會傳回最終篩選後的產品清單。
選擇性啟用查詢擴展功能的進階用途
您可以策略性地設定篩選條件,針對目錄的特定部分啟用或停用查詢擴展功能。
假設大型目錄包含雜貨、電子產品和時裝,在這種情況下,請注意下列事項。
目標
針對難以尋找或稀有的生鮮雜貨查詢啟用查詢擴充功能,但電子產品或時尚單品查詢則顯示零個結果。這裡的業務需求是只在生鮮雜貨部分選擇性啟用查詢擴充功能。
設定
在這個用途情境中,選擇性查詢擴展功能可設定如下:
canonical_filter:設為「broad」。應包含所有類別:食品雜貨、電子產品和服飾,以及任何基本規則 (例如庫存供應情形),並使用category="groceries" OR category="electronics" OR category="fashion") AND inStock=TRUE定義標準篩選器)filter:根據使用者的情境,將其設為「narrow」。如果是雜貨區的使用者,篩選條件會是category="groceries" AND inStock=TRUE。
運作方式
在此情境中,選擇性查詢擴充功能的運作方式如下:
- 使用者搜尋「iPhone 20」:查詢擴展模組使用廣泛的 canonical_filter,找到現有的 iPhone 型號 (少於 5 個結果),並決定不觸發查詢擴展。接著,系統會將標準搜尋結果 (現有 iPhone) 傳遞至主要篩選器,但由於
category="electronics"與category="groceries"不符,因此篩選器會封鎖這些結果。使用者正確看到零個結果。 - 使用者搜尋「高蛋白糖尿病牛奶」:查詢擴充模組使用廣泛比對
canonical_filter找到少於 5 個結果,因此會觸發查詢擴充,尋找相關牛奶產品。這些產品會傳遞至主要篩選器。由於這些產品符合category="groceries",因此已成功退回給使用者。
透過操控 canonical_filter (決策檢視畫面) 和主要 filter (最終輸出檢視畫面) 的範圍,您可以精確控制搜尋體驗。
範例資料集
本頁會使用下列資料集做為範例。展開即可查看範例產品說明資料集中的欄位。
產品資料集範例
| ID | title | 品牌 | 類別 | price_info.price |
|---|---|---|---|---|
| "nest_mini_2nd_gen" | 「Nest Mini (第 2 代)」 | ["Google", "Nest"] | ["Nest > 音箱和螢幕"] | 49.00 |
| 「nest_audio」 | 「Nest Audio」 | ["Google", "Nest"] | ["Nest > 音箱和螢幕"] | 99.99 |
| 「nest_hub_max」 | 「Nest Hub Max」 | ["Google", "Nest"] | ["Nest > 音箱和螢幕"] | 229.00 |
| 「nest_hub」 | 「Nest Hub」 | ["Google", "Nest"] | ["Nest > 音箱和螢幕"] | 88.99 |
| 「google_home_max」 | 「Google Home Max」 | ["Google", "Nest"] | ["Nest > 音箱和螢幕"] | 299.00 |
| 「google_home_mini」 | 「Google Home Mini」 | ["Google", "Nest"] | ["Nest > 音箱和螢幕"] | 49.00 |
| 「google_pixel_5」 | 「Google Pixel 5」 | ["Google", "Pixel"] | ["Pixel > 手機"] | 699.00 |
| "google_pixel_4a_with_5g" | 「Google Pixel 4a 5G 版」 | ["Google", "Pixel"] | ["Pixel > 手機"] | 499.00 |
| 「google_pixel_4a」 | 「Google Pixel 4a 手機」 | ["Google", "Pixel"] | ["Pixel > 手機"] | 349.00 |
| 「google_pixel_stand」 | 「Google Pixel Stand」 | ["Google", "Pixel"] | ["Pixel > featured accessories"] | 79.00 |
| 「google_pixel_buds」 | 「Google Pixel Buds」 | ["Google", "Pixel"] | ["Pixel > featured accessories"] | 179.00 |
| "google_pixel_5_case" | 「Google Pixel 5 保護殼」 | ["Google", "Pixel"] | ["Pixel > featured accessories"] | 40.00 |
| "google_pixel_4a_5g_case" | 「Google Pixel 4a (5G) 保護殼」 | ["Google", "Pixel"] | ["Pixel > featured accessories"] | 40.00 |
| "google_pixel_4a_case" | 「Google Pixel 4a 保護殼」 | ["Google", "Pixel"] | ["Pixel > featured accessories"] | 40.00 |
查詢擴充
查詢擴充功能可提高結果較少的查詢字詞 (尤其是長尾查詢) 的召回率。
這項搜尋功能是由規格驅動,可判斷查詢擴展條件。其中包含預設為關閉的 pinUnexpandedResults 選項。如果設為 true,搜尋結果頂端會顯示未使用擴充功能的產品。頂端會顯示展開的結果。
Java
舉例來說,如果您搜尋「Google Pixel 5」,但未擴大查詢範圍,結果會僅限於 google_pixel_5 ID。不過,透過查詢擴展功能,您也可能會在範例產品說明資料集中取得 google_pixel_4a_with_5g、google_pixel_4a 和 google_pixel_5_case ID。