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

本頁說明如何使用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. 在「預覽」窗格中,開始輸入查詢。

  7. 如要儲存設定並在「整合」分頁中套用,請按一下「儲存並發布」

REST

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

  1. 找出應用程式 ID。如果已有應用程式 ID,請跳到下一個步驟。

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

      前往「應用程式」

    2. 在「應用程式」頁面中,找出應用程式名稱,然後從「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": {} }

後續步驟