放送控制項 (也稱為控制項) 會變更傳回結果時,要求放送的預設行為。服務控制項會在資料儲存層級運作。
舉例來說,控制項可以提高/降低搜尋結果排名、從傳回的結果中篩除項目、將字串彼此關聯為同義詞,或將結果重新導向至指定 URI。
本頁說明搜尋應用程式的放送控制選項。如要瞭解如何搭配媒體建議使用放送控制選項,請參閱「建立及管理媒體放送設定」。
關於供應控制項
如要變更要求結果,請先建立放送控制項。然後將該控制項附加至搜尋應用程式的供應設定。供應設定會設定用於產生供應時間結果 (例如搜尋結果或答案) 的中繼資料。只有在供應控制項附加至應用程式的供應設定時,才會影響應用程式放送的請求。
部分控制項 (例如升級控制項) 依附於資料儲存區。如果從應用程式中移除資料儲存庫,系統也會從該應用程式中移除所有依附於資料儲存庫的控制項,並將其設為無效,但不會刪除。
供應控制項類型
可用的放送控制項類型如下:
控制項 | 說明 | 適用的裝置 |
---|---|---|
增強控制 | 變更傳回結果的順序 | 具備支援結構定義資料儲存庫的搜尋應用程式,例如包含結構化資料的資料儲存庫、具備結構化資料的網站 (進階網站索引)、具備中繼資料的非結構化資料,或媒體資料 |
篩選器控制項 | 從傳回的結果中移除項目 | 搜尋應用程式,且資料儲存庫支援結構定義,例如包含結構化資料、網站 (進階網站索引)、含中繼資料的非結構化資料或媒體資料的資料儲存庫 |
同義詞控制項 | 將查詢彼此建立關聯 | 搜尋應用程式 (具備進階網站索引建立功能),以及結構化、非結構化或媒體資料儲存庫 |
重新導向控制 | 重新導向至指定 URI | 所有搜尋應用程式 |
宣傳控制項 | 針對查詢宣傳指定連結 | 所有搜尋應用程式 |
關於條件
建立控制項時,您可以選擇定義條件,決定何時套用控制項。條件是使用條件欄位定義的。可用的條件欄位如下:
查詢字詞 (
queryTerms
):選用控制項,在搜尋特定查詢時套用。使用queryTerms
條件時,如果queryTerms
的值與SearchRequest.query
中的字詞相符,系統就會套用控制項。只有在Control.searchUseCase
設為SOLUTION_TYPE_SEARCH
時,才能使用查詢字詞。單一Control.condition
最多可指定 10 個不同的queryTerms
。如未指定任何查詢字詞,系統會忽略queryTerms
欄位。如果是宣傳放送控制項,指定
queryRegex
條件時,就無法指定queryTerms
,這只適用於基本網站搜尋。此外,如果指定queryTerms
,基本網站搜尋的fullMatch
欄位必須設為true
。如果是其他搜尋應用程式,則僅支援queryTerms
,且fullMatch
可設為true
或false
。時間範圍 (
activeTimeRange
):選用控制項,適用於在指定時間範圍內提出的要求。這項檢查會確認收到要求的時間是否介於activeTimeRange.startTime
和activeTimeRange.endTime
之間。單一Control.condition
最多可指定 10 個activeTimeRange
範圍。如未指定activeTimeRange
欄位,系統會忽略該欄位。queryRegex
。僅適用於基本網站搜尋的宣傳放送控制項。這是選用條件,當查詢符合指定的規則運算式時,系統就會套用控制項。如果指定queryTerms
條件,則無法指定這項條件。
如果為控制項指定多個條件,則當兩種條件類型都符合時,系統就會將控制項套用至搜尋要求。如果為同一條件指定多個值,只要其中一個值相符,該條件就會成立。
舉例來說,假設您指定了兩個查詢字詞,並設定下列條件:
"queryTerms": [
{
"value": "gShoe",
"fullMatch": true
},
{
"value": "gBoot",
"fullMatch": true
}
]
如果要求包含 SearchRequest.query="gShoe"
或 SearchRequest.query="gBoot"
,條件就會成立,但如果包含 SearchRequest.query="gSandal"
或任何其他字串,條件就不會成立。
如未指定任何條件,系統一律會套用控管機制。
詳情請參閱 API 參考資料中的 Condition
欄位。
建立及附加放送量提升控制項
放送控制項會根據套用的條件升級或降級結果,藉此重新排序結果。如果文件符合提升條件,系統就會套用乘數,提高文件排名。
如要建立及附加升壓控制項,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「AI Applications」頁面。
選取要建立升級控制項的應用程式。
在應用程式的總覽頁面中,確認您位於「系統總覽」分頁。
在「信號」階段,按一下「升級/埋藏」圖塊。
按一下「建立控制項」。
在「建立控制項」窗格中,執行下列操作:
在「為控制選項命名」中,輸入提高/降低排名控制選項的名稱,然後按一下「繼續」。
在「設定規則範圍和影響」部分,定義要透過這個控制項觸發的動作:
在「選用:這項規則的啟用時間點」中,設定觸發控管的條件。如未設定任何條件,則此控制項隨時都會處於有效狀態:
新增部分比對查詢字詞。當這些查詢字詞部分相符時,控制項就會生效。
新增完全比對查詢字詞。只有在查詢字詞完全相符時,這項控制項才會生效。
如要新增有效時段,請按一下「新增時段」,然後設定「開始時間 1」和「結束時間 1」。這會定義條件處於有效狀態的時段。最多可新增 10 個時間範圍。
按一下「繼續」。
如要立即套用這項控制項,請在「其他設定」中開啟「立即發布這項控制項」,然後按一下「繼續」。
按一下「提交」。
REST
提升放送控制項是指具有 boostAction
的控制項。
請按照下列操作說明建立放送量提升控制項。
如需欄位詳細資料,請參閱 engines.controls
API 參考資料和 engines.controls.create
API 參考資料。
找出應用程式 ID。如果已有應用程式 ID,請跳到下一個步驟。
前往 Google Cloud 控制台的「AI Applications」頁面。
在「應用程式」頁面中,找出應用程式名稱,然後從「ID」欄取得應用程式的 ID。
執行下列 curl 指令來建立控制項。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": [ "USE_CASE" ], "conditions": { "queryTerms": [ { "value": "VALUE", "fullMatch": FULL_MATCH } ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP", "endTime": "END_TIMESTAMP" } ] }, "boostAction": { "boost": BOOST_VALUE, "filter": "FILTER", "dataStore": "DATA_STORE_RESOURCE_PATH" } }'
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案編號或 ID。APP_ID
:Vertex AI Search 應用程式的 ID。CONTROL_ID
:控制項的專屬 ID。 ID 可包含 [1-63] 個字元,可以是字母、數字、連字號和底線。DISPLAY_NAME
:控制項的易讀名稱。Google 建議這個名稱應指出何時或為何要使用控制項。必須是長度介於 [1,128] 的 UTF-8 編碼字串。USE_CASE
:必須是SEARCH_USE_CASE_SEARCH
或SEARCH_USE_CASE_BROWSE
。如果指定SEARCH_USE_CASE_BROWSE
,條件中就不能使用Condition.queryTerms
。CONDITION
:選用欄位,用於定義應套用控制項的時間。包含下列欄位:VALUE
:要比對的特定查詢值。這是長度為[1, 5000]
的小寫 UTF-8 字串。如果FULL_MATCH_1
為true
,這個欄位最多可包含三個以空格分隔的字詞。FULL_MATCH
:布林值,指出搜尋查詢是否需要與查詢字詞完全相符。設為true
時,SearchRequest.query
必須與queryTerm.value
完全相符。設為false
時,SearchRequest.query
必須包含queryTerm.value
做為子字串。START_TIMESTAMP
:RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的開始時間。END_TIMESTAMP
:採用 RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的結束時間。
BOOST_VALUE
:[-1,1] 範圍內的浮點數。如果值為負數,結果會遭到降級 (顯示在結果的較下方)。如果值為正數,結果就會獲得升級 (在結果中排名較高)。詳情請參閱boostAction
的說明。FILTER
:指定文件必須符合哪些要求的字串。如果文件符合所有規定,系統就會套用加成。否則不會有任何變更。如果這個欄位留空,系統就會對資料儲存庫中的所有文件套用加成。如需篩選語法,請參閱篩選運算式語法。 注意:無法篩選文件欄位title
。DATA_STORE_RESOURCE_PATH
:資料儲存庫的完整資源路徑,該儲存庫的文件應由這項控制項提升。完整資源路徑的格式為projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATA_STORE_ID
。這個資料儲存庫必須附加至要求中指定的引擎。
使用
engines.servingConfigs.patch
方法,將控管機制附加至應用程式的供應設定。curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=boost_control_ids" \ -d '{ "boostControlIds": ["BOOST_ID_1", "BOOST_ID_2"] }'
將
BOOST_ID_N
替換為您在上一個步驟中建立的控制項 ID。
建立及附加篩選器放送控制項
放送控制篩選器會依據特定條件或規則進行篩選。舉例來說,在飯店網站上,您可以套用篩選器,只顯示每晚價格低於 $175 美元的寵物友善飯店。(price < 175 AND petfriendly = "true")
篩選器服務控制項定義為具有 filterAction
的控制項。
請按照下列操作說明建立篩選器放送控制選項。
如需欄位詳細資料,請參閱 engines.controls
API 參考資料和 engines.controls.create
API 參考資料。
控制台
前往 Google Cloud 控制台的「AI Applications」頁面。
選取要建立篩選器控制項的應用程式。
在應用程式的總覽頁面中,確認您位於「系統總覽」分頁。
在「信號」階段,按一下「篩選器」圖塊。
按一下「建立控制項」。
在「建立控制項」窗格中,執行下列操作:
在「為控制項命名」中,輸入篩選器控制項的名稱,然後按一下「繼續」。
在「規則範圍和影響」部分,設定下列項目:
在「選用:這項規則的啟用時間點」部分,定義要透過這個控制項觸發的動作。如未設定任何條件,則此控制項隨時都會處於有效狀態:
新增部分比對查詢字詞。當這些查詢字詞部分相符時,控制項就會生效。
新增完全比對查詢字詞。只有在查詢字詞完全相符時,這項控制項才會生效。
如要新增有效時段,請按一下「新增時段」,然後設定「開始時間 1」和「結束時間 1」。這會定義條件處於有效狀態的時段。最多可新增 10 個時間範圍。
按一下「繼續」。
如要立即套用這項控制項,請在「其他設定」中開啟「立即發布這項控制項」,然後按一下「繼續」
按一下「提交」。
REST
找出應用程式 ID。如果已有應用程式 ID,請跳到下一個步驟。
前往 Google Cloud 控制台的「AI Applications」頁面。
在「應用程式」頁面中,找出應用程式名稱,然後從「ID」欄取得應用程式的 ID。
執行下列 curl 指令來建立控制項。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": { "queryTerms": [ { "value": "VALUE", "fullMatch": FULL_MATCH } ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP", "endTime": "END_TIMESTAMP" } ] }, "filterAction": { "filter": "FILTER" } }'
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案編號或 ID。APP_ID
:Vertex AI Search 應用程式的 ID。CONTROL_ID
:控制項的專屬 ID。 ID 可包含 [1-63] 個字元,可以是字母、數字、連字號和底線。DISPLAY_NAME
:控制項的易讀名稱。Google 建議這個名稱應指出何時或為何要使用控制項。必須是長度介於 [1,128] 的 UTF-8 編碼字串。USE_CASE
:必須是SEARCH_USE_CASE_SEARCH
或SEARCH_USE_CASE_BROWSE
。如果指定SEARCH_USE_CASE_BROWSE
,條件中就不能使用Condition.queryTerms
。CONDITION
:選用欄位,用於定義應套用控制項的時間。包含下列欄位:VALUE
:要比對的特定查詢值。這是長度為[1, 5000]
的小寫 UTF-8 字串。如果FULL_MATCH_1
為true
,這個欄位最多可包含三個以空格分隔的字詞。FULL_MATCH
:布林值,指出搜尋查詢是否需要與查詢字詞完全相符。設為true
時,SearchRequest.query
必須與queryTerm.value
完全相符。設為false
時,SearchRequest.query
必須包含queryTerm.value
做為子字串。START_TIMESTAMP
:RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的開始時間。END_TIMESTAMP
:採用 RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的結束時間。
FILTER
:指定文件必須符合哪些要求的字串。如果文件符合所有規定,就會在結果中傳回。否則文件不會出現在結果中。如需篩選語法,請參閱「篩選運算式語法」。 詳情請參閱
filterAction
。注意:無法篩選文件欄位title
。
使用
engines.servingConfigs.patch
方法,將控管機制附加至應用程式的供應設定。curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=filter_control_ids" \ -d '{ "filterControlIds": ["FILTER_ID_1", "FILTER_ID_2"] }'
將
FILTER_ID_N
替換為您在上一個步驟中建立的控制項 ID。
建立及附加同義字放送控制項
同義字服務控制項定義為具有 synonymsAction
的控制項。
請按照下列操作說明建立同義字放送控制項。
如需欄位詳細資料,請參閱 engines.controls
API 參考資料和 engines.controls.create
API 參考資料。
控制台
前往 Google Cloud 控制台的「AI Applications」頁面。
選取要建立同義字控制項的應用程式。
在應用程式的總覽頁面中,確認您位於「系統總覽」分頁。
在「準備」階段,按一下「同義詞」圖塊。
按一下「建立控制項」。
在「建立控制項」窗格中,執行下列操作:
在「Name Your Control」(為控制項命名) 中,輸入同義字控制項的名稱,然後按一下「Continue」(繼續)。
「規則範圍和影響」:
輸入要納入控制項的同義字。舉例來說,請輸入「cats」,然後按 Return 鍵 (不是逗號),再輸入「feline」。
輸入同義字後,按一下「繼續」。
在「選用:這項規則的啟用時間點」部分,定義要透過這個控制項觸發的動作。如未設定任何條件,則此控制項隨時都會處於有效狀態:
如要新增有效時段,請按一下「新增時段」,然後設定「開始時間 1」和「結束時間 1」。這會定義條件處於有效狀態的時段。最多可新增 10 個時間範圍。
按一下「繼續」。
如要立即套用這項控制項,請在「其他設定」中開啟「立即發布這項控制項」,然後按一下「繼續」
按一下「提交」。
REST
執行下列 curl 指令來建立控制項。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": { "queryTerms": [ { "value": "VALUE", "fullMatch": FULL_MATCH } ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP", "endTime": "END_TIMESTAMP" } ] }, "synonymsAction": { "synonyms": ["SYNONYMS_1","SYNONYMS_2"] } }'
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案編號或 ID。APP_ID
:Vertex AI Search 應用程式的 ID。CONTROL_ID
:控制項的專屬 ID。 ID 可包含 [1-63] 個字元,可以是字母、數字、連字號和底線。DISPLAY_NAME
:控制項的易讀名稱。Google 建議這個名稱應指出何時或為何要使用控制項。必須是長度介於 [1,128] 的 UTF-8 編碼字串。USE_CASE
:必須是SEARCH_USE_CASE_SEARCH
或SEARCH_USE_CASE_BROWSE
。如果指定SEARCH_USE_CASE_BROWSE
,條件中就不能使用Condition.queryTerms
。CONDITION
:選用欄位,用於定義應套用控制項的時間。包含下列欄位:VALUE
:要比對的特定查詢值。這是長度為[1, 5000]
的小寫 UTF-8 字串。如果FULL_MATCH_1
為true
,這個欄位最多可包含三個以空格分隔的字詞。FULL_MATCH
:布林值,指出搜尋查詢是否需要與查詢字詞完全相符。設為true
時,SearchRequest.query
必須與queryTerm.value
完全相符。設為false
時,SearchRequest.query
必須包含queryTerm.value
做為子字串。START_TIMESTAMP
:RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的開始時間。END_TIMESTAMP
:採用 RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的結束時間。
SYNONYMS_N
:彼此相關的字串清單,因此每個字串更有可能顯示類似結果。雖然搜尋同義字時,您很可能會得到類似的結果,但搜尋每個同義字項目時,您可能無法獲得所有相關同義字的所有相關結果。您至少須指定兩個同義詞,最多可指定 100 個同義詞。每個同義詞都必須採用 UTF-8 編碼,且為小寫。字串不得重複。舉例來說,您可以將「Pixel」、「Android 手機」和「Google 手機」新增為同義詞。詳情請參閱synonymsAction
。
使用
engines.servingConfigs.patch
方法,將控管機制附加至應用程式的供應設定。curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=synonyms_control_ids" \ -d '{ "synonymsControlIds": ["SYNONYMS_ID_1", "SYNONYMS_ID_2"] }'
將
SYNONYMS_ID_N
替換為您在上一個步驟中建立的控制項 ID。
建立並附加重新導向供應控制項
重新導向放送控制項可將使用者重新導向至提供的 URI。重新導向控制項定義為具有 redirectAction
的控制項。
請按照下列操作說明建立重新導向供應控制項。
如需欄位詳細資料,請參閱 engines.controls
API 參考資料和 engines.controls.create
API 參考資料。
找出應用程式 ID。如果已有應用程式 ID,請跳到下一個步驟。
前往 Google Cloud 控制台的「AI Applications」頁面。
在「應用程式」頁面中,找出應用程式名稱,然後從「ID」欄取得應用程式的 ID。
執行下列 curl 指令來建立控制項。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": { "queryTerms": [ { "value": "VALUE", "fullMatch": FULL_MATCH } ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP", "endTime": "END_TIMESTAMP" } ] }, "redirectAction": { "redirectURI": "REDIRECT_URI" } }'
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案編號或 ID。APP_ID
:Vertex AI Search 應用程式的 ID。CONTROL_ID
:控制項的專屬 ID。 ID 可包含 [1-63] 個字元,可以是字母、數字、連字號和底線。DISPLAY_NAME
:控制項的易讀名稱。Google 建議這個名稱應指出何時或為何要使用控制項。必須是長度介於 [1,128] 的 UTF-8 編碼字串。USE_CASE
:必須是SEARCH_USE_CASE_SEARCH
或SEARCH_USE_CASE_BROWSE
。如果指定SEARCH_USE_CASE_BROWSE
,條件中就不能使用Condition.queryTerms
。CONDITION
:選用欄位,用於定義應套用控制項的時間。包含下列欄位:VALUE
:要比對的特定查詢值。這是長度為[1, 5000]
的小寫 UTF-8 字串。如果FULL_MATCH_1
為true
,這個欄位最多可包含三個以空格分隔的字詞。FULL_MATCH
:布林值,指出搜尋查詢是否需要與查詢字詞完全相符。設為true
時,SearchRequest.query
必須與queryTerm.value
完全相符。設為false
時,SearchRequest.query
必須包含queryTerm.value
做為子字串。START_TIMESTAMP
:RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的開始時間。END_TIMESTAMP
:採用 RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的結束時間。
REDIRECT_URI_N
:重新導向的 URI。長度上限為 2000 個半形字元。舉例來說,如果查詢字詞的值是「支援」,您可以設定重新導向至技術支援頁面,而不是傳回 (或無法傳回)「支援」的搜尋結果。在本例中,重新導向 URI 會變成"https://www.example.com/support"
。詳情請參閱redirectAction
。
使用
engines.servingConfigs.patch
方法,將控管機制附加至應用程式的供應設定。curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=redirect_control_ids" \ -d '{ "redirectControlIds": ["REDIRECT_ID_1", "REDIRECT_ID_2"] }'
將
REDIRECT_ID_N
替換為您在上一個步驟中建立的控制項 ID。
建立及附加宣傳放送控制項
宣傳供應控制項可讓您將連結顯示為宣傳結果,適用於下列類型的搜尋資料儲存庫:
提供基本網站搜尋功能的網站資料儲存庫:這類資料儲存庫不需要將宣傳控制項附加至應用程式的服務設定。建立並啟用宣傳控制項後,宣傳控制項就會啟動。如要開啟或關閉宣傳控制選項,請啟用或停用這項功能。
包含結構化和非結構化資料的資料儲存庫、具備進階網站索引建立功能的網站資料,以及混合式搜尋應用程式:對於這些資料儲存庫,您需要將升級控制項附加至服務設定。
宣傳控制項是使用 promoteAction
定義。
如要順利建立升級控制項,建立要求中必須包含下列其中一個欄位:
queryTerms
:如果您指定queryRegex
條件 (僅適用於基本網站搜尋),就無法指定這項條件。如要進行基本網站搜尋,如果指定queryTerms
,則fullMatch
必須設為true
。如果是其他搜尋應用程式,則只支援queryTerms
,且fullMatch
可設為true
或false
。queryRegex
。僅適用於基本網站搜尋的宣傳放送控制項。如果查詢符合指定的規則運算式,這項條件就會套用控制項。如果指定queryTerms
條件,則無法指定這項條件。
也就是說,如要進行基本網站搜尋,您必須指定 queryTerms
欄位,並將 fullMatch
設為 true
,或是指定 queryRegex
欄位。如要進行其他類型的搜尋,請指定 queryTerms
欄位,並將 fullMatch
設為 true
或 false
。
請按照下列操作說明建立宣傳放送控制項。
如需欄位詳細資料,請參閱 engines.controls
API 參考資料和 engines.controls.create
API 參考資料。
控制台
前往 Google Cloud 控制台的「AI Applications」頁面。
選取要建立篩選器控制項的應用程式。
在應用程式的總覽頁面中,確認您位於「系統總覽」分頁。
在「信號」階段,按一下「升級」圖塊。
按一下「建立控制項」。
在「建立控制項」窗格中,執行下列操作:
在「為控制項命名」中,輸入篩選器控制項的名稱,然後按一下「繼續」。
在「規則範圍和影響」部分,設定下列項目:
從清單中選取要附加這個篩選器控制項的資料儲存庫。如要將動作套用至多個資料儲存庫,請為每個資料儲存庫建立控制項。
輸入宣傳標題,例如「觀看最新影片」。
輸入宣傳網址,例如影片位置。
輸入宣傳圖片網址,例如縮圖或螢幕截圖。
輸入簡短的宣傳說明,例如影片內容。最多 250 個半形字元。
在「選用:這項規則的啟用時間點」部分,定義要透過這個控制項觸發的動作。如未設定任何條件,則此控制項隨時都會處於有效狀態:
新增完全比對查詢字詞。只有在查詢字詞完全相符時,這項控制項才會生效。
如要新增有效時段,請按一下「新增時段」,然後設定「開始時間 1」和「結束時間 1」。這會定義條件處於有效狀態的時段。最多可新增 10 個時間範圍。
按一下「繼續」。
按一下「提交」。
REST
執行下列 curl 指令來建立控制項。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": { "queryTerms": [ { "value": "VALUE", "fullMatch": true } ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP", "endTime": "END_TIMESTAMP" } ], "queryRegex": "VALUE_REGEX" }, "promoteAction": { "dataStore": "DATA_STORE_RESOURCE_PATH", "searchLinkPromotion": { "document": "DOCUMENT_RESOURCE_PATH", "title": "TITLE", "uri": "URI", "description": "DESCRIPTION", "enabled": ENABLED_TRUE|FALSE, } } }'
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案編號或 ID。APP_ID
:Vertex AI Search 應用程式的 ID。CONTROL_ID
:控制項的專屬 ID。 ID 可包含 [1-63] 個字元,可以是字母、數字、連字號和底線。DISPLAY_NAME
:控制項的易讀名稱。Google 建議這個名稱應指出何時或為何要使用控制項。必須是長度介於 [1,128] 的 UTF-8 編碼字串。USE_CASE
:必須是SEARCH_USE_CASE_SEARCH
或SEARCH_USE_CASE_BROWSE
。如果指定SEARCH_USE_CASE_BROWSE
,條件中就不能使用Condition.queryTerms
。Condition
:選用物件,定義應套用控制項的時間。包含下列欄位:queryTerms
:無法與queryRegex
欄位搭配使用。VALUE
:要比對的特定查詢值。這是長度為[1, 5000]
的小寫 UTF-8 字串。
activeTimeRange
:START_TIMESTAMP
:RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的開始時間。END_TIMESTAMP
:採用 RFC 3339 世界標準時間「Zulu」格式的時間戳記,表示時間範圍的結束時間。
queryRegex
:僅適用於提供基本網站搜尋功能的資料儲存空間。這個欄位無法與queryTerms
欄位搭配使用。VALUE_REGEX
:用來比對查詢的規則運算式。
DATA_STORE_RESOURCE_PATH
:資料存放區的完整資源路徑,該資料存放區的搜尋結果包含宣傳的網址。完整資源路徑的格式為projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATA_STORE_ID
。這個資料儲存庫必須附加至要求中指定的引擎。DOCUMENT_RESOURCE_PATH
:用於指定要升級的文件之文件資源路徑的欄位:- 如果是含有結構化和非結構化資料的搜尋資料儲存庫,您必須在
DOCUMENT_RESOURCE_PATH
欄位中提供文件資源路徑,或在URI
欄位中提供 URI,或同時提供兩者。完整資源路徑的格式為projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID
。 - 如果是網站資料儲存庫,這個欄位必須未設定,並改為設定 URI 欄位。
- 如果是含有結構化和非結構化資料的搜尋資料儲存庫,您必須在
TITLE
:必要欄位,用於指定要宣傳的文件或網頁標題。這個標題會顯示在搜尋結果中。URI
:必要欄位,用於指定搜尋結果將使用者導向的 URI 連結。這個 URI 不一定要納入資料儲存庫。- 如果是含有結構化和非結構化資料的搜尋資料儲存庫,您必須在
DOCUMENT_RESOURCE_PATH
欄位中提供文件資源路徑,或在URI
欄位中提供 URI,或同時提供兩者。 - 如果是網站資料儲存庫,這是必填欄位,請務必設定。
- 如果是含有結構化和非結構化資料的搜尋資料儲存庫,您必須在
DESCRIPTION
:選用欄位,用於說明要宣傳的文件或網頁,並顯示在搜尋結果中。ENABLED_TRUE|FALSE
:選用的布林值欄位,用來指出宣傳控制項是否已開啟並附加至應用程式。這個欄位僅適用於具有基本網站搜尋功能的網站資料儲存庫。將這個欄位設為false
時,宣傳放送控制項會關閉,且您必須啟用控制項 (如後續步驟所述),控制項才會生效。詳情請參閱promoteAction
。
除了基本網站搜尋以外,所有搜尋應用程式都必須使用
engines.servingConfigs.patch
方法,將控制項附加至應用程式的供應設定。在下列要求中附加promoteControlIds
的順序,就是系統傳回的升級結果順序。curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search?update_mask=promote_control_ids" \ -d '{ "promoteControlIds": ["PROMOTE_ID_1", "PROMOTE_ID_2"] }'
將
PROMOTE_ID_N
替換為您在上一個步驟中建立的控制項 ID。選用:如要進行基本網站搜尋,您不需要將控制項附加至應用程式的服務設定。不過,如果是基本網站搜尋,您可以在建立升級控制項後開啟或關閉該控制項,方法是呼叫
engines.control.patch
方法。curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/controls/CONTROL_ID?updateMask=promoteAction.searchLinkPromotion.enabled" \ -d '{ "promoteAction": { "searchLinkPromotion": { "enabled": ENABLED_TRUE|FALSE, } } }'
範例
當您向應用程式傳送搜尋要求,且查詢內容符合為宣傳控制項指定的查詢或查詢規則運算式時,回應中就會顯示宣傳連結。
舉例來說,假設您在基本網站搜尋的資料儲存庫中,使用下列設定建立升級控制項:
{ "conditions": [ { "queryTerms": [ { "value": "artificial intelligence", "fullMatch": true } ] } ]" ... promoteAction": { "dataStore": "https://discoveryengine.googleapis.com/v1alpha/projects/123456/locations/us/collections/default_collection/dataStores/basic-website-data-store" \ "searchLinkPromotion": { "title": "What is AI?", "uri": "https://cloud.google.com/learn/what-is-artificial-intelligence", "description": "Explain what is AI" "enabled": true } } }
接著,您會傳送下列 search 要求:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1alpha/projects/123456/locations/us/collections/default_collection/engines/basic-website-app/servingConfigs/default_search:search" \ -d '{ "query": "artificial intelligence" }'
您應該會收到類似以下截斷式回應的 JSON 回應。
回應包含 searchLinkPromotions
欄位,內含宣傳連結。
{ "results": [...], "totalSize": 3, "attributionToken": "_gHw_QoMCMSbhboGELuI1qwCEiQ2NzQwYmYzYi0wMDAwLTJmYTctYTk1OC0yNDA1ODg4MzZmYjgiB0dFTkVSSUMqvAGrxIotzua1L5neqC_n7YgtxPzLMIOymiK0kq4wxPi8MPn2sy3LmrQw6d3EMNSynRWc1rctnN3YMOuCsS3ogrEto4CXIsLwnhX89rMtkKS0MJbeqC-jibMtkPeyMMTGsTCZ3dgw5O2ILa7Eii2NpLQw5t3EMN6PmiKOvp0VwfzLMICymiKq-LMt0ea1L634sy3Fy_MXtreMLbeSrjDHxrEwzpq0MMH4vDCgibMtn9a3LZSSxTCOkckw24-aIjAB", "guidedSearchResult": {}, "summary": {}, "searchLinkPromotions": [ { "title": "What is AI?", "uri": "https://cloud.google.com/learn/what-is-artificial-intelligence", "description": "Explain what is AI" } ] }
修改放送控制項
如要修改控制項的設定,請按照下列步驟操作:
前往 Google Cloud 控制台的「AI Applications」頁面。
選取要修改控制選項的應用程式。
在「系統總覽」分頁中,選取控制項所在的「準備」或「信號」階段。
在應用程式控制項清單中,按一下要修改的控制項
,然後按一下「編輯」。在「編輯控制項」窗格中編輯控制項。
如要啟用或停用控制項,請在應用程式篩選控制項清單中,按一下要啟用或停用控制項的
,然後分別點選「啟用」或「停用」。如要刪除控制項,請在應用程式控制項清單中,按一下要刪除的控制項的
,然後按一下「刪除」。
後續步驟
- 如要瞭解放送控制選項對自訂搜尋應用程式搜尋品質的影響,請評估搜尋品質。詳情請參閱評估搜尋品質。