本頁說明如何使用 Google Cloud 控制台預覽搜尋結果,以及如何使用 API 取得搜尋結果。
此外,除了建立搜尋小工具並新增到網頁,您還能傳送 API 呼叫,並整合到伺服器或應用程式。本頁面提供程式碼範例,說明如何使用 gRPC 用戶端程式庫和服務帳戶發出搜尋查詢。
使用網站資料取得應用程式的搜尋結果
控制台
如要使用 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。 否則,相同的使用者 ID 可能會合併不同使用者的事件記錄,導致模型品質下降。
- 這個欄位不得包含個人識別資訊 (PII)。
- 針對特定搜尋或瀏覽要求,這個欄位必須對應至使用者事件中的相應
userPseudoId
欄位。
詳情請參閱
userPseudoId
。DATA_STORE_SPEC
:特定資料儲存區的篩選條件,用於搜尋。如果搜尋應用程式已連結至多個資料儲存庫,但您只想要特定資料儲存庫的結果,請使用dataStoreSpecs
。詳情請參閱「DataStoreSpec」。
C#
詳情請參閱 AI Applications C# API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
詳情請參閱 AI Applications Java API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
詳情請參閱 AI Applications Node.js API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
PHP
詳情請參閱 AI Applications PHP API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
詳情請參閱 AI Applications Python API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Ruby
詳情請參閱 AI Applications Ruby API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
使用網站資料取得應用程式的搜尋結果 (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。 否則,相同的使用者 ID 可能會合併不同使用者的事件記錄,導致模型品質下降。
- 這個欄位不得包含個人識別資訊 (PII)。
- 針對特定搜尋或瀏覽要求,這個欄位必須對應至使用者事件中的相應
userPseudoId
欄位。
詳情請參閱
userPseudoId
。
Python
詳情請參閱 AI Applications Python API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
取得以結構化或非結構化資料為基礎的應用程式搜尋結果
您可以從 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。 否則,相同的使用者 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#
詳情請參閱 AI Applications C# API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
詳情請參閱 AI Applications Java API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
詳情請參閱 AI Applications Node.js API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
PHP
詳情請參閱 AI Applications PHP API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
詳情請參閱 AI Applications Python API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Ruby
詳情請參閱 AI Applications Ruby API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
取得搜尋結果的文件關聯性分數
文件關聯性分數是根據查詢與文件的相似度計算而得。分數會歸入 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 瀏覽一般搜尋應用程式中的資料。