放送控制項 (也稱為控制項) 會變更傳回結果時,要求放送的預設行為。服務控制項會在資料儲存層級運作。
舉例來說,控制項可以提高/降低搜尋結果排名、從傳回的結果中篩除項目、將字串彼此關聯為同義詞,或將結果重新導向至指定 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。
建立及附加篩選器放送控制項
篩選器服務控制項定義為具有 filterAction
的控制項。
請按照下列操作說明建立篩選器放送控制選項。
如需欄位詳細資料,請參閱 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" } ] }, "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 參考資料。
找出應用程式 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" } ] }, "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
欄位,並將 設為 true
,或是指定 queryRegex
欄位。fullMatch
如要進行其他類型的搜尋,請指定 queryTerms
欄位,並將 fullMatch
設為 true
或 false
。
請按照下列操作說明建立宣傳放送控制項。
如需欄位詳細資料,請參閱 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": 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" } ] }
後續步驟
- 如要瞭解放送控制項對自訂搜尋應用程式搜尋品質的影響,請評估搜尋品質。詳情請參閱評估搜尋品質。