取得媒體應用程式的搜尋結果

本頁說明如何使用Google Cloud 控制台預覽媒體應用程式的搜尋結果,以及如何使用 API 取得搜尋結果。

如要導入搜尋應用程式,您可以建立搜尋小工具並新增至網頁,也可以建立 API 呼叫,並將這些呼叫整合至網頁或應用程式。

關於搜尋模式

媒體應用程式有幾種搜尋查詢模式:

  • 完整查詢:當使用者想搜尋整個搜尋字詞或詞組時,舉例來說,在音樂串流應用程式中,使用者可以輸入歌曲的完整名稱,一次完成搜尋。使用音訊輸入或鍵盤輸入等可讓使用者一次完成搜尋的輸入介面時,這會是首選的搜尋方式。

    在完整查詢中,如果項目包含拼字錯誤,使用者會預期系統會修正錯誤。

    這與搜尋非媒體 (自訂) 應用程式的行為相同。請參閱「從含有結構化或非結構化資料的應用程式取得搜尋結果」。

  • 部分 (或即時搜尋) 查詢:當使用者輸入每個字母時,系統會動態傳回一組新的搜尋結果。舉例來說,在音樂串流應用程式中,使用者開始輸入要搜尋的歌曲名稱,每輸入一個字母,搜尋結果就會動態更新並縮小範圍。

  • 自動模式:自動模式結合了全螢幕模式和部分畫面模式。在自動模式下,您可以讓媒體搜尋決定是否要傳回部分或完整的查詢結果。

    為了判斷使用者的可能意圖,媒體搜尋會分析並權衡各種信號,例如輸入的字母數量、輸入速度,以及輸入內容是否為已知實體 (例如演員或電影名稱)。

要使用的模式

媒體搜尋查詢的預設模式為自動模式。不過,在某些情況下,您可以選擇覆寫預設模式,並指定完整或部分查詢模式。以下是一些用途範例:

情境 模式
您非常確定使用者的查詢是完整查詢。舉例來說,您有一個搜尋框,其中包含 Enter 函式,用於標示查詢完成,並讓使用者按下 Enter 鍵。 完整查詢
您非常確定使用者的查詢是部分查詢,也就是說,他們希望系統在輸入每個字母後更新結果清單。 部分查詢
以上兩種情況都不符合。讓媒體搜尋決定是否要傳回部分或完整的查詢結果。 自動

您可以透過 Google Cloud 控制台預覽搜尋結果,也可以使用 API 取得搜尋結果。如要取得媒體應用程式的搜尋結果,請按照下列步驟操作:

控制台

如要使用 Google Cloud 控制台預覽媒體搜尋並設定小工具,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「AI Applications」頁面。

    AI 應用程式

  2. 按一下媒體搜尋應用程式的名稱。

  3. 按一下 [Configurations]。

  4. 按一下「UI」分頁標籤。

  5. 在「UI」分頁中,設定「一般設定」和「資料顯示」選項。

  6. 在「Preview」窗格中,開始輸入查詢。

  7. 如要儲存設定並在「Integration」分頁中使用,請按一下「Save and publish」

REST

使用 engines.servingConfigs.search 方法取得媒體應用程式的搜尋結果:

  1. 找出應用程式 ID。如果您已取得應用程式 ID,請直接跳到下一個步驟。

    1. 前往 Google Cloud 控制台的「AI Applications」頁面。

      前往「應用程式」

    2. 在「Apps」頁面中找出應用程式名稱,然後從「ID」欄取得應用程式 ID。

  2. 執行下列 curl 指令,取得搜尋結果。

    除了 contentSearchSpec 之外,所有欄位都可以與 searchAsYouTypeSpec 欄位搭配使用。為求清楚,我們已從 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 '{
    "query": "QUERY",
    "searchAsYouTypeSpec": {"condition": "SPEC_CONDITION"}
    }'
    

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案的 ID。
    • PROJECT_ID: Google Cloud 專案的 ID。
    • APP_ID:您要查詢的 Vertex AI Search 應用程式 ID。
    • QUERY:要搜尋的查詢文字。
    • SPEC_CONDITION:搜尋輸入時的規格可以是下列其中一個值:

      • ENABLED:針對部分查詢
      • DISABLED:完整查詢
      • AUTO:視情況選擇部分或全部退款。如果您將 SPEC_CONDITION 欄位留空或未指定,預設搜尋模式為 AUTO

    指令和部分結果範例

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/my-project-123/locations/global/collections/default_collection/engines/my-app/servingConfigs/default_search:search" \
    -d '{
    "query": "Mission Impossible",
    "searchAsYouTypeSpec": {"condition": "DISABLED"}
    }'
    
    { "results": [ { "id": "189333", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/189333", "id": "189333", "structData": { "uri": "http://mytestdomain.movie/content/189333", "title": "Mission: Impossible - Fallout (2018)", "categories": [ "Action", "Adventure", "Thriller" ], "available_time": "2023-01-01T00:00:00Z", "media_type": "movie", "expire_time": "2033-01-01T00:00:00Z" } } }, { "id": "111781", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/111781", "id": "111781", "structData": { "media_type": "movie", "available_time": "2023-01-01T00:00:00Z", "uri": "http://mytestdomain.movie/content/111781", "title": "Mission: Impossible - Rogue Nation (2015)", "categories": [ "Action", "Adventure", "Thriller" ], "expire_time": "2033-01-01T00:00:00Z" } } }, ... { "id": "116507", "document": { "name": "projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/116507", "id": "116507", "structData": { "uri": "http://mytestdomain.movie/content/116507", "categories": [ "Comedy" ], "media_type": "movie", "available_time": "2023-01-01T00:00:00Z", "title": "Mission London (2010)", "expire_time": "2033-01-01T00:00:00Z" } } } ], "totalSize": 5628, "attributionToken": "vgL0PQEKDAiZxMbCBhD2koiqAxIkNjg1MWM3OTUtMDAwMC0yOWVmLThhNzUtZDQzYTJjYzdiYmNmIgVNRURJQSpUtreMLa_WoTGs1qExwvCeFaOAlyKrtZwxxcvzF-7r6TGotZwxkPeyMI6RyTDPv-Iw1L_iMJvWty2Ovp0V1LKdFfHr6THs4K8tkvGsMJXxrDCY1rctMAFKEjB4OTYzYjdjNGE0ZGYwN2FhZlKUAXByb2plY3RzLzc1NjIwNjYwODQ3OS9sb2NhdGlvbnMvZ2xvYmFsL2NvbGxlY3Rpb25zL2RlZmF1bHRfY29sbGVjdGlvbi9lbmdpbmVzL3F1aWNrc3RhcnQtbWVkaWEtcmVjb21tZW5kXzE3NDUwMjUyMjYwNDMvc2VydmluZ0NvbmZpZ3MvZGVmYXVsdF9zZWFyY2g", "nextPageToken": "Y2YiJ2NjNmMhNDNk1SN3EGOtYWZ5ITLwADMw0CN5czYxUDO2QiGDI9kgzIEGIs1tmJCMIBM1IgC", "summary": {}, "queryExpansionInfo": {} }

後續步驟