本頁說明如何使用 Google Cloud 控制台預覽搜尋結果,以及如何使用 API 取得搜尋結果。
此外,您可以建立 API 呼叫,並將這些呼叫整合至伺服器或應用程式,而非建立搜尋小工具再新增至網頁。本頁面提供程式碼範例,說明如何使用服務帳戶搭配 gRPC 用戶端程式庫執行搜尋查詢。
取得含有網站資料的應用程式搜尋結果
控制台
如要使用 Google Cloud 控制台預覽含有網站資料的應用程式搜尋結果,請按照下列步驟操作:
前往 Google Cloud 控制台的「AI Applications」頁面。
按一下要編輯的應用程式名稱。
按一下「預覽」。
在控制台中開啟「Preview」頁面。
選用:如果您已將多個資料儲存庫連結至應用程式,但只想取得特定資料儲存庫的結果,請選取要取得結果的資料儲存庫。
輸入搜尋查詢。
如果您已啟用自動完成功能,當您輸入內容時,搜尋列下方就會顯示自動完成建議清單。
按下 Enter 鍵提交查詢。
- 搜尋列下方會顯示搜尋結果清單。
- 每個結果都包含標題、摘要和網址。
- 按一下搜尋結果即可開啟該網址。
- 如果應用程式已啟用進階 LLM 功能,系統可能也會顯示生成的答案。
REST
如要使用 API 取得含有網站資料的應用程式搜尋結果,請使用 engines.servingConfigs.search
方法:
找出應用程式 ID。如果您已取得應用程式 ID,請直接跳到下一個步驟。
前往 Google Cloud 控制台的「AI Applications」頁面。
在「Apps」頁面中找出應用程式名稱,然後從「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" }, "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
。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」頁面。
在「Apps」頁面中找出應用程式名稱,然後從「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", }'
更改下列內容:
PROJECT_ID
: Google Cloud 專案的 ID。API_KEY
:您的 API 金鑰字串。PROJECT_ID
: Google Cloud 專案的 ID。APP_ID
:您要查詢的 Vertex AI Search 應用程式 ID。QUERY
:要搜尋的查詢文字。
Python
詳情請參閱 AI Applications Python API 參考說明文件。
如要向 AI Applications 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
取得含有結構化或非結構化資料的應用程式搜尋結果
您可以透過 Google Cloud 控制台預覽搜尋結果,也可以使用 API 取得搜尋結果。
控制台
如要使用 Google Cloud 控制台預覽含有結構化資料或非結構化資料的應用程式搜尋結果,請按照下列步驟操作:
- 在控制台中開啟「Preview」頁面。
輸入搜尋查詢。
如果您已啟用自動完成功能,當您輸入內容時,搜尋列下方就會顯示自動完成建議清單。
(選用) 如果您已將多個資料儲存庫連結至應用程式,但只想取得特定資料儲存庫的結果,請選取要取得結果的資料儲存庫。
按下 Enter 鍵提交查詢。
搜尋列下方會顯示搜尋結果清單。
針對結構化資料,請遵守下列規範:
如果在「設定」 >「在結果中設定欄位」中未定義屬性對應項目,系統會以原始屬性名稱和值的清單顯示搜尋結果。
如果在「設定」>「在結果中設定欄位」中儲存任何屬性對應項目,搜尋結果的顯示方式就會與「設定」頁面預覽畫面相同。
如果在「設定」 >「切面設定」中指定了任何切面,則會以相同方式顯示。
REST
如要使用 API 從含有結構化/非結構化資料的應用程式取得搜尋結果,請使用 engines.servingConfigs.search
方法:
找出應用程式 ID。如果您已取得應用程式 ID,請直接跳到下一個步驟。
前往 Google Cloud 控制台的「AI Applications」頁面。
在「Apps」頁面中找出應用程式名稱,然後從「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。PROJECT_ID
: Google Cloud 專案的 ID。APP_ID
:您要查詢的 Vertex AI Search 應用程式 ID。QUERY
:要搜尋的查詢文字。USER_PSEUDO_ID
:選用。這是用於追蹤搜尋訪客的匿名 ID。Google 強烈建議使用這個欄位,以提升模型效能和個人化品質。您可以使用 HTTP Cookie 做為這個欄位,這樣就能明確識別單一裝置上的訪客。訪客登入或登出網站時,這個 ID 不會變更。請勿將這個欄位設為多位使用者的相同 ID,否則系統會合併他們的事件記錄,並降低模型品質。請勿在這個欄位中加入個人識別資訊 (PII)。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
:選用。用於執行多面向搜尋的面向規格。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」頁面。
在「Apps」頁面中找出應用程式名稱,然後從「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 結果的摘要有所不同。如果您看到這則訊息,可能是因為控制台使用了與 API 不同的 LLM 模型。本頁的 curl 和程式碼範例使用穩定的 LLM 模型。
如要變更或查看 UI 預覽頁面中使用的 LLM 模型 (僅支援進階搜尋應用程式和醫療應用程式)。
- 依序前往應用程式的「設定」頁面 >「UI」分頁。
選取搜尋類型:
- 選取「Search with an answer」,即可在搜尋結果上方顯示生成摘要。
- 選取「含後續查詢的搜尋」,即可啟用對話式搜尋功能,並生成摘要和後續問題。
在「提供摘要的大型語言模型」部分,選取模型。
對於方法呼叫,穩定模式是預設模式。如要使用穩定模型以外的 LLM 模型,請參閱「指定摘要模型」和「指定答案模型」。
後續步驟
使用 Search API 瀏覽一般搜尋應用程式中的資料。