本頁說明如何使用 Google Cloud 控制台預覽搜尋結果,以及如何使用 API 取得搜尋結果。
此外,除了建立搜尋小工具並新增到網頁,您還能傳送 API 呼叫,並整合到伺服器或應用程式。本頁面提供程式碼範例,說明如何使用 gRPC 用戶端程式庫和服務帳戶發出搜尋查詢。
加上雙引號的完全比對
如要完全相符的搜尋結果,請在搜尋查詢前後加上雙引號 ("")。這類搜尋通常稱為「加引號」搜尋。
如果沒有用雙引號括住搜尋查詢,則搜尋會部分相符。這類搜尋也稱為「未加引號」搜尋。
舉例來說,如果搜尋查詢是 "query": "\"Mary had a little lamb\"",
Vertex AI Search 會完全比對這個詞組,不會傳回含有 Mary had lamb (缺少字詞) 或 a little lamb
had Mary (字詞順序不同) 的搜尋結果。
您可以透過不同方式,將完全比對搜尋與邏輯運算子結合,縮小搜尋結果範圍。詳情請參閱「搜尋查詢情境」。
邏輯運算子
搜尋結構化資料和含有中繼資料的非結構化資料時,您可以在搜尋中加入邏輯運算子。在多個字詞或詞組之間,您可以在搜尋查詢中加入 OR 和 AND。不支援 NOT 邏輯運算子
搜尋字詞的連結方式會決定結果的精確度:
- 且
- 查詢中的每個字詞都必須出現在結果中。舉例來說,搜尋
jazz AND piano會顯示同時包含jazz和piano的結果。 - 或
- 結果中必須至少包含一個查詢字詞。舉例來說,搜尋「
rock OR pop」會傳回包含「rock」、「pop」或兩者的結果。
您可以將不同的邏輯運算子彼此組合,或與完全比對搜尋搭配使用,藉此縮小搜尋結果範圍。
搜尋查詢情境
下表列出使用完全比對或部分比對搜尋時,可能會遇到的幾種情況。
| 情境 | 說明 | 範例 |
|---|---|---|
| 不含任何邏輯運算子的部分比對搜尋 | 如果搜尋字詞沒有加上雙引號,且字詞之間沒有邏輯運算子,搜尋時系統會假設字詞之間有 AND 運算子。此外,由於 Vertex AI Search 會進行語意搜尋,因此搜尋結果也可能包含系統認為與查詢相關的其他文件。 |
"query": "Mary little lamb"
對於這項查詢,回覆中最相關的文件包含所有字詞 |
| 完全比對搜尋,不含任何邏輯運算子 | 如果多個個別搜尋字詞或詞組以半形雙引號括住,且之間沒有邏輯運算子,搜尋時會視為詞組之間有 AND 運算子。在查詢中至少一個搜尋字詞加上雙引號,系統就會停用整個查詢的語意搜尋功能。 |
"query": "\"Mary\" \"little lamb\""
這項查詢的搜尋結果會同時包含「 |
| 完全比對和部分比對搜尋 | 在查詢中為至少一個搜尋字詞加上雙引號,系統就會停用整個查詢的語意搜尋功能。
如果指定邏輯運算子,系統會按照指定方式處理。如果查詢中未指定任何邏輯運算子,搜尋作業會假設各個片語之間均有 AND 運算子。 |
"query": "Mary \"little lamb\""
對於這項查詢,搜尋功能會將詞組之間的運算子視為 |
使用網站資料取得應用程式的搜尋結果
控制台
如要透過 Google Cloud 控制台預覽含有網站資料的應用程式搜尋結果,請按照下列步驟操作:
前往 Google Cloud 控制台的「AI Applications」頁面。
按一下要編輯的應用程式名稱。
按一下「預覽」。
在控制台中開啟「預覽」頁面。
選用:如果應用程式連結多個資料儲存庫,但您只想要特定資料儲存庫的結果,請選取該資料儲存庫。
輸入搜尋查詢。
如果已啟用自動完成功能,搜尋列下方會在您輸入內容時顯示自動完成建議清單。
按下 Enter 鍵提交查詢。
- 搜尋列下方會顯示搜尋結果清單。
- 每個結果都包含標題、摘要和網址。
- 點選搜尋結果即可開啟該網址。
- 如果應用程式已啟用進階 LLM 功能,系統也可能會顯示生成式回答。
REST
如要使用 API 取得含有網站資料的應用程式搜尋結果,請使用 engines.servingConfigs.search 方法:
找出應用程式 ID。如果已有應用程式 ID,請跳到下一個步驟。
前往 Google Cloud 控制台的「AI Applications」頁面。
在「應用程式」頁面中找出應用程式名稱,然後從「ID」欄取得應用程式的 ID。
取得搜尋結果。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search", "query": "QUERY", "pageSize": "PAGE_SIZE", "offset": "OFFSET", "orderBy": "ORDER_BY", "params": {"user_country_code": "USER_COUNTRY_CODE", "searchType": "SEARCH_TYPE"}, "filter": "FILTER", "boostSpec": "BOOST_SPEC", "contentSearchSpec": { "searchResultMode": "RESULT_MODE" }, "userPseudoId": "USER_PSEUDO_ID", "dataStoreSpecs": [{"DATA_STORE_SPEC"}] }'更改下列內容:
PROJECT_ID: Google Cloud 專案的 ID。APP_ID:要查詢的 Vertex AI Search 應用程式 ID。QUERY:要搜尋的查詢文字。PAGE_SIZE:搜尋傳回的結果數量。 允許的頁面大小上限取決於資料類型。如果網頁大小超出上限,系統會強制設為上限值。- 基本索引網站:預設
10,最多25 - 進階索引建立功能:預設
25、最多50 - 其他:預設
50、最大100
- 基本索引網站:預設
OFFSET:結果的起始索引。預設值為 0。舉例來說,如果偏移值為 2,頁面大小為 10,且有 15 個結果要傳回,則第一頁會傳回結果 2 到 12。
ORDER_BY:結果的排列順序。要排序的屬性必須有數值解讀,例如date。詳情請參閱「排序網頁搜尋結果」。USER_COUNTRY_CODE:使用者的位置。這個鍵/值組合是params對應欄位唯一支援的項目。預設值為空白。如需可接受的值,請參閱 Programmable Search Engine JSON API 參考說明文件中的「國家/地區代碼」。SEARCH_TYPE:要執行的搜尋類型。文件搜尋的預設值為 0。圖片搜尋支援的另一個值為 1。FILTER:文字欄位,可使用篩選器運算式篩選搜尋結果。預設值為空字串。如要進一步瞭解如何使用filter欄位,請參閱「篩選網站搜尋結果」。BOOST_SPEC:選用。用來提高或隱藏文件優先順序的規格。值:RESULT_MODE:決定搜尋結果是以完整文件還是以區塊形式傳回。如要取得區塊,資料儲存庫必須開啟文件區塊功能。可接受的值為documents和chunks。如果資料儲存區已啟用分塊功能,預設值為chunks。否則預設值為documents。如要瞭解文件分塊,請參閱「剖析文件及進行分塊」。這個欄位目前為公開預先發布版,如要使用,請在 curl 指令中將v1變更為v1alpha。USER_PSEUDO_ID:以 UTF-8 編碼的字串,可做為追蹤使用者的專屬匿名 ID。長度上限為 128 個半形字元。 Google 強烈建議使用這個欄位,因為這有助於提升模型效能和個人化品質。您可以使用 HTTP Cookie 做為這個欄位的值,明確識別單一裝置上的訪客。以下是幾個重要考量:- 訪客登入或登出網站時,這個 ID 不會變更。
- 這個欄位不得為多位使用者設定相同的 ID。 否則,如果多位使用者使用相同的 User-ID,系統可能會合併不同使用者的事件記錄,導致模型品質下降。
- 這個欄位不得包含個人識別資訊 (PII)。
- 針對特定搜尋或瀏覽要求,這個欄位必須對應至使用者事件中的相應
userPseudoId欄位。
詳情請參閱「
userPseudoId」。DATA_STORE_SPEC:特定資料存放區的篩選條件,用於搜尋。如果搜尋應用程式已連結至多個資料儲存庫,但您只想要特定資料儲存庫的結果,請使用dataStoreSpecs。詳情請參閱「DataStoreSpec」。
C#
詳情請參閱 Vertex AI Search C# API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
詳情請參閱 Vertex AI Search Java API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
詳情請參閱 Vertex AI Search Node.js API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
詳情請參閱 Vertex AI Search PHP API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
詳情請參閱 Vertex AI Search Python API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
詳情請參閱 Vertex AI Search Ruby API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
使用網站資料取得應用程式的搜尋結果 (API 金鑰)
如要使用 API 金鑰驗證搜尋方法呼叫,而非透過服務帳戶或使用者帳戶使用 OAuth 2.0,請按照下列程序操作,其中會使用 searchLite 方法。searchLite 方法與 search 方法的功能相同,但只能用於搜尋公開網站。
在下列情況中,searchLite 方法特別適用:
您有靜態網站,透過服務帳戶或使用者帳戶設定 OAuth 2.0 並不實際。
您已從程式化搜尋引擎的 Custom Search Site Restricted JSON API 遷移至 Vertex AI Search。
不想使用搜尋小工具。
事前準備
您必須先取得 API 金鑰,才能呼叫 servingConfigs.searchLite 方法。如果您沒有 API 金鑰,請完成「部署搜尋應用程式 (API 金鑰)」的步驟 1。
程序
REST
如要使用 API 取得應用程式的搜尋結果,並透過 API 金鑰驗證公開網站資料,請使用 engines.servingConfigs.searchLite 方法:
找出應用程式 ID。如果已有應用程式 ID,請跳到下一個步驟。
前往 Google Cloud 控制台的「AI Applications」頁面。
在「應用程式」頁面中找出應用程式名稱,然後從「ID」欄取得應用程式的 ID。
執行下列 curl 指令,取得搜尋結果:
curl -X POST -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:searchLite?key=API_KEY" \ -d '{ "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search", "query": "QUERY", "userPseudoId": "USER_PSEUDO_ID" }'更改下列內容:
PROJECT_ID: Google Cloud 專案的 ID。API_KEY:您的 API 金鑰字串。PROJECT_ID: Google Cloud 專案的 ID。APP_ID:要查詢的 Vertex AI Search 應用程式 ID。QUERY:要搜尋的查詢文字。USER_PSEUDO_ID:以 UTF-8 編碼的字串,可做為追蹤使用者的專屬匿名 ID。長度上限為 128 個半形字元。 Google 強烈建議使用這個欄位,因為這有助於提升模型效能和個人化品質。您可以使用 HTTP Cookie 做為這個欄位的值,明確識別單一裝置上的訪客。以下是幾個重要考量:- 訪客登入或登出網站時,這個 ID 不會變更。
- 這個欄位不得為多位使用者設定相同的 ID。 否則,如果多位使用者使用相同的 User-ID,系統可能會合併不同使用者的事件記錄,導致模型品質下降。
- 這個欄位不得包含個人識別資訊 (PII)。
- 針對特定搜尋或瀏覽要求,這個欄位必須對應至使用者事件中的相應
userPseudoId欄位。
詳情請參閱「
userPseudoId」。
Python
詳情請參閱 Vertex AI Search Python API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
取得以結構化或非結構化資料為基礎的應用程式搜尋結果
您可以從 Google Cloud 控制台預覽搜尋結果,也可以使用 API 取得搜尋結果。
控制台
如要透過 Google Cloud 控制台預覽以結構化或非結構化資料為基礎的應用程式搜尋結果,請按照下列步驟操作:
- 在控制台中開啟「預覽」頁面。
輸入搜尋查詢。
如果已啟用自動完成功能,搜尋列下方會在您輸入內容時顯示自動完成建議清單。
(選用) 如果您已將多個資料儲存庫連結至應用程式,但只想取得特定資料儲存庫的結果,請選取該資料儲存庫。
按下 Enter 鍵提交查詢。
搜尋列下方會顯示搜尋結果清單。
結構化資料適用下列規定:
如果未在「設定」 >「設定結果中的欄位」中定義屬性對應,搜尋結果就會顯示為原始屬性名稱和值的清單。
如果已在「設定」>「設定結果中的欄位」中儲存任何屬性對應,搜尋結果的顯示方式就會與「設定」頁面預覽畫面相同。
如果「設定」>「構面設定」中指定了任何構面,系統會以相同方式顯示。
REST
如要使用 API 從含有結構化/非結構化資料的應用程式取得搜尋結果,請使用 engines.servingConfigs.search 方法:
找出應用程式 ID。如果已有應用程式 ID,請跳到下一個步驟。
前往 Google Cloud 控制台的「AI Applications」頁面。
在「應用程式」頁面中找出應用程式名稱,然後從「ID」欄取得應用程式的 ID。
取得搜尋結果。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "query": "QUERY", "userPseudoId": "USER_PSEUDO_ID", "pageSize": "PAGE_SIZE", "offset": "OFFSET", "orderBy": "ORDER_BY", "filter": "FILTER", "boostSpec": "BOOST_SPEC", "facetSpec": "FACET_SPEC", "queryExpansionSpec": "QUERY_EXPANSION_SPEC", "spellCorrectionSpec": "SPELL_CORRECTION_SPEC", "contentSearchSpec": "CONTENT_SEARCH_SPEC", "dataStoreSpecs": [{"DATA_STORE_SPEC"}], }'更改下列內容:
PROJECT_ID: Google Cloud 專案的 ID。APP_ID:要查詢的 Vertex AI Search 應用程式 ID。QUERY:要搜尋的查詢文字。USER_PSEUDO_ID:以 UTF-8 編碼的字串,可做為追蹤使用者的專屬匿名 ID。長度上限為 128 個半形字元。 Google 強烈建議使用這個欄位,因為這有助於提升模型效能和個人化品質。您可以使用 HTTP Cookie 做為這個欄位的值,明確識別單一裝置上的訪客。以下是幾個重要考量:- 訪客登入或登出網站時,這個 ID 不會變更。
- 這個欄位不得為多位使用者設定相同的 ID。 否則,如果多位使用者使用相同的 User-ID,系統可能會合併不同使用者的事件記錄,導致模型品質下降。
- 這個欄位不得包含個人識別資訊 (PII)。
- 針對特定搜尋或瀏覽要求,這個欄位必須對應至使用者事件中的相應
userPseudoId欄位。
詳情請參閱「
userPseudoId」。PAGE_SIZE:搜尋傳回的結果數量。允許的頁面大小上限取決於資料類型。如果頁面大小超過上限,系統會強制設為上限值。- 基本索引網站:預設
10,最多25 - 進階索引建立功能:預設
25、最多50 - 其他:預設
50、最大100
- 基本索引網站:預設
OFFSET:選用。結果的起始索引。 預設值為 0。舉例來說,如果偏移值為 2,頁面大小為 10,且有 15 個結果要傳回,則第一頁會傳回結果 2 到 11。
ORDER_BY:選用。結果的排列順序。FILTER:選用。文字欄位,可使用篩選器運算式篩選搜尋結果。預設值為空字串,表示未套用任何篩選器。範例:
color: ANY("red", "blue") AND score: IN(*, 100.0e)詳情請參閱「篩選結構化或非結構化資料的搜尋結果」。
BOOST_SPEC:選用。可提升或隱藏文件的規格。值:BOOST: 範圍 [-1,1] 中的浮點數。如果值為負數,結果會遭到降級 (顯示在結果的較下方)。如果值為正數,結果就會獲得升級 (在結果中排名較高)。CONDITION: 用來選取要套用加成效果的文件的文字篩選運算式。篩選器必須評估布林值。
如要瞭解如何提升結構化搜尋的搜尋結果,請參閱「提升搜尋結果」。
FACET_SPEC:選用。執行多面向搜尋的 Facet 規格。QUERY_EXPANSION_SPEC:選用。這項規格可決定查詢擴展的條件。預設值為DISABLED。SPELL_CORRECTION_SPEC:選用。這項規格可決定在哪些條件下進行拼字修正。預設值為AUTO。CONTENT_SEARCH_SPEC:選用。取得程式碼片段、擷取式答案、擷取式片段和搜尋摘要。僅適用於非結構化資料。如需詳細資訊,請參閱:DATA_STORE_SPEC:特定資料儲存空間的篩選條件,可供搜尋。如果搜尋應用程式連結至多個資料儲存庫,即可使用這項功能。在搜尋回應中查看導覽搜尋結果:
系統會傳回引導式搜尋結果,以及結構化和非結構化搜尋的搜尋回覆。導覽式搜尋結果會根據搜尋結果文件,列出擷取的屬性鍵/值組合。使用者可以將部分屬性鍵和值做為篩選條件,縮小搜尋結果範圍。
在本例中,我們使用綠色來縮小搜尋結果範圍,方法是發出新的搜尋要求,並將篩選欄位指定為
_gs.color: ANY("green"):{ "guidedSearchResult": { "refinementAttributes": [ { "attributeKey": "_gs.color", "attributeValue": "green" }, { "attributeKey": "_gs.category", "attributeValue": "shoe" } ] } }
C#
詳情請參閱 Vertex AI Search C# API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
詳情請參閱 Vertex AI Search Java API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
詳情請參閱 Vertex AI Search Node.js API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
詳情請參閱 Vertex AI Search PHP API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
詳情請參閱 Vertex AI Search Python API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
詳情請參閱 Vertex AI Search Ruby API 參考文件。
如要向 Vertex AI Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
取得搜尋結果的文件關聯性分數
文件關聯性分數是根據查詢與文件的相似程度計算,分數會歸入 11 個值區,範圍為 0、0.1、0.2... 到 1.0。 分數越高,代表文件越符合需求。
請考慮下列用途的文件關聯分數:
根據關聯性分數篩選搜尋結果,移除不相關的結果
搜尋後排名或做為其他應用程式的輸入內容
偵錯:關聯性分數可深入瞭解系統傳回某些搜尋結果的原因
系統會為每項搜尋結果傳回關聯性分數:
"results": [
{
"id": "DOCUMENT_ID",
"document": {
...
},
"modelScores": {
"relevance_score": {
"values": [
DOCUMENT-RELEVANCE-SCORE
]
}
}
},
...
]
另請參閱下方程序中的指令範例。
事前準備:請確認搜尋應用程式已與結構化或非結構化資料儲存庫建立關聯。也就是說,網站搜尋應用程式無法傳回文件相關性分數。
REST
如要要求系統在搜尋結果中傳回文件相關性分數,請使用 engines.servingConfigs.search 方法,如下所示:
找出應用程式 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" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search", "query": "QUERY", "relevanceScoreSpec": { "returnRelevanceScore": true } }'PROJECT_ID: Google Cloud 專案的 ID。APP_ID:要查詢的 Vertex AI Search 應用程式 ID。QUERY:要搜尋的查詢文字。
搜尋摘要功能因模型而異
如果您為查詢產生搜尋摘要,可能會發現主控台結果和 API 結果的摘要有所不同。如果看到這則訊息,可能是因為控制台使用的 LLM 模型與 API 不同。本頁的 curl 和程式碼範例使用穩定版 LLM 模型。
如要變更或查看 UI「預覽」頁面中使用的 LLM 模型 (僅支援進階搜尋應用程式和醫療保健應用程式)。
- 前往應用程式的「Configurations」頁面 >「UI」分頁。
選取「搜尋類型」:
- 選取「搜尋並取得答案」,即可在搜尋結果上方顯示生成摘要。
- 選取「含後續查詢的搜尋」,啟用對話式搜尋功能,系統會生成摘要並支援後續問題。
在「提供摘要的大型語言模型」部分,選取模型。
對於方法呼叫,穩定版模型是預設模型。如要使用穩定模型以外的 LLM 模型,請參閱「指定摘要模型」和「指定答案模型」。
後續步驟
使用 Search API 瀏覽一般搜尋應用程式中的資料。