Stay organized with collections
Save and categorize content based on your preferences.
This page shows how to preview search results for media apps using the
Google Cloud console and how to get search results using the API.
To implement the search app, you can create a search widget to add
to your web page or you can make API calls and integrate those calls into your
webpage or application.
About search modes
There are several modes of search query for media apps:
Full queries: When end users intend for their whole search term or
phrase to be searched for. For example, in a music streaming app, users type
the whole title of the song and search for it in one go. This is a preferred
way of searching when using an input interface that lets users search in one
go, such as audio input or keyboard input.
In full queries, if the entry includes a spelling mistake, users expect that
mistake to be corrected.
Partial (or search-as-you-type) queries: When end users dynamically
receive a new set of search results as they type each letter. For example,
in a music streaming app, users start entering the name of the song they're
searching for and with each letter they type, the search results dynamically
update and narrow down.
Auto mode: Auto mode is a mix of full and partial modes. With auto
mode, you let media search decide whether to return query results as partial
or full.
To determine the end users' probable intent, media search analyzes and
weights various signals, such as the number of letters entered, the speed of
entry, and whether the entry is a recognized entity—for example, the name of
an actor or movie.
Which mode to use
The default mode for media search queries is the auto mode. However, there are
scenarios where you might choose to override the default mode and specify the
full or partial query mode. Here are some use-case examples:
Scenario
Mode
You are very confident that your end users' queries are full
queries. For example, you have a search box that includes an Enter
function to mark the query complete and the user presses Enter.
Full queries
You are very confident that your end users' queries are intended as
partial queries—that is, they are expecting the results list to update
after each letter entered.
Partial queries
Neither of the above scenarios apply. Let media search decide whether
to return query results as partial or full.
Auto
Get search results for a media app
You can preview search results from the Google Cloud console or get search results
using the API. To get search results for a media app:
Console
To use the Google Cloud console to preview media search and to configure a widget:
In the Google Cloud console, go to the AI Applications page.
On the Apps page, find the name of your app and get the app's ID from
the ID column.
Run the following curl command to get search-as-you-type results.
All the fields except for contentSearchSpec can be used in conjunction with
the searchAsYouTypeSpec field. For clarity, the optional fields have been
omitted from the curl command. For the optional fields, see Get search
results for an app with structured or unstructured
data.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[],[],null,["# Get search results for media apps\n\nThis page shows how to preview search results for media apps using the\nGoogle Cloud console and how to get search results using the API.\n\nTo implement the search app, you can create a [search widget](/generative-ai-app-builder/docs/add-widget) to add\nto your web page or you can make API calls and integrate those calls into your\nwebpage or application.\n\nAbout search modes\n------------------\n\nThere are several modes of search query for media apps:\n\n- **Full queries**: When end users intend for their whole search term or\n phrase to be searched for. For example, in a music streaming app, users type\n the whole title of the song and search for it in one go. This is a preferred\n way of searching when using an input interface that lets users search in one\n go, such as audio input or keyboard input.\n\n In full queries, if the entry includes a spelling mistake, users expect that\n mistake to be corrected.\n\n This is the same behavior as search for non-media (custom)\n apps. See [Get search results for an app with structured or unstructured\n data](/generative-ai-app-builder/docs/preview-search-results#structured-unstructured).\n- **Partial (or search-as-you-type) queries**: When end users dynamically\n receive a new set of search results as they type each letter. For example,\n in a music streaming app, users start entering the name of the song they're\n searching for and with each letter they type, the search results dynamically\n update and narrow down.\n\n- **Auto mode**: Auto mode is a mix of full and partial modes. With auto\n mode, you let media search decide whether to return query results as partial\n or full.\n\n To determine the end users' probable intent, media search analyzes and\n weights various signals, such as the number of letters entered, the speed of\n entry, and whether the entry is a recognized entity---for example, the name of\n an actor or movie.\n\nWhich mode to use\n-----------------\n\nThe default mode for media search queries is the auto mode. However, there are\nscenarios where you might choose to override the default mode and specify the\nfull or partial query mode. Here are some use-case examples:\n\nGet search results for a media app\n----------------------------------\n\n| **Note:** Depending on the amount of data, it can take hours after data ingestion to generate a preview.\n\nYou can preview search results from the Google Cloud console or get search results\nusing the API. To get search results for a media app: \n\n### Console\n\nTo use the Google Cloud console to preview media search and to configure a widget:\n\n1. In the Google Cloud console, go to the **AI Applications** page.\n\n [AI Applications](https://console.cloud.google.com/gen-app-builder/start)\n2. Click the name of the media search app.\n\n3. Click **Configurations**.\n\n4. Click the **UI** tab.\n\n5. On the **UI** tab, set the **General configurations** and **Data display**\n options.\n\n6. In the **Preview** pane, start typing a query.\n\n \u003cbr /\u003e\n\n7. To save the configurations and to make them available in the **Integration**\n tab, click **Save and publish**.\n\n### REST\n\nUse the [`engines.servingConfigs.search`](/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.collections.engines.servingConfigs/search) method to\nget search results for a media app:\n\n1. Find your app ID. If you already have your app ID, skip to the next step.\n\n 1. In the Google Cloud console, go to the **AI Applications** page.\n\n [Go to Apps](https://console.cloud.google.com/gen-app-builder/engines)\n 2. On the **Apps** page, find the name of your app and get the app's ID from\n the **ID** column.\n\n2. Run the following curl command to get search-as-you-type results.\n\n All the fields except for `contentSearchSpec` can be used in conjunction with\n the `searchAsYouTypeSpec` field. For clarity, the optional fields have been\n omitted from the curl command. For the optional fields, see [Get search\n results for an app with structured or unstructured\n data](/generative-ai-app-builder/docs/preview-search-results#structured-unstructured). \n\n curl -X POST -H \"Authorization: Bearer $(gcloud auth print-access-token)\" \\\n -H \"Content-Type: application/json\" \\\n \"https://discoveryengine.googleapis.com/v1/projects/\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e/locations/global/collections/default_collection/engines/\u003cvar translate=\"no\"\u003eAPP_ID\u003c/var\u003e/servingConfigs/default_search:search\" \\\n -d '{\n \"query\": \"\u003cvar translate=\"no\"\u003eQUERY\u003c/var\u003e\",\n \"searchAsYouTypeSpec\": {\"condition\": \"\u003cvar translate=\"no\"\u003eSPEC_CONDITION\u003c/var\u003e\"}\n }'\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of your Google Cloud project.\n - \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of your Google Cloud project.\n - \u003cvar translate=\"no\"\u003eAPP_ID\u003c/var\u003e: the ID of the Vertex AI Search app that you want to query.\n - \u003cvar translate=\"no\"\u003eQUERY\u003c/var\u003e: the query text to search.\n - \u003cvar translate=\"no\"\u003eSPEC_CONDITION\u003c/var\u003e: the search as you type spec can\n have one of the following values:\n\n - `ENABLED`: for partial queries\n - `DISABLED`: for full queries\n - `AUTO`: for partial or full as deemed appropriate. If you leave the `SPEC_CONDITION` field empty or don't specify it, the default search mode is `AUTO`.\n\n #### Example command and partial result\n\n ```bash\n curl -X POST -H \"Authorization: Bearer $(gcloud auth print-access-token)\" \\\n -H \"Content-Type: application/json\" \\\n \"https://discoveryengine.googleapis.com/v1/projects/my-project-123/locations/global/collections/default_collection/engines/my-app/servingConfigs/default_search:search\" \\\n -d '{\n \"query\": \"Mission Impossible\",\n \"searchAsYouTypeSpec\": {\"condition\": \"DISABLED\"}\n }'\n\n {\n \"results\": [\n {\n \"id\": \"189333\",\n \"document\": {\n \"name\": \"projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/189333\",\n \"id\": \"189333\",\n \"structData\": {\n \"uri\": \"http://mytestdomain.movie/content/189333\",\n \"title\": \"Mission: Impossible - Fallout (2018)\",\n \"categories\": [\n \"Action\",\n \"Adventure\",\n \"Thriller\"\n ],\n \"available_time\": \"2023-01-01T00:00:00Z\",\n \"media_type\": \"movie\",\n \"expire_time\": \"2033-01-01T00:00:00Z\"\n }\n }\n },\n {\n \"id\": \"111781\",\n \"document\": {\n \"name\": \"projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/111781\",\n \"id\": \"111781\",\n \"structData\": {\n \"media_type\": \"movie\",\n \"available_time\": \"2023-01-01T00:00:00Z\",\n \"uri\": \"http://mytestdomain.movie/content/111781\",\n \"title\": \"Mission: Impossible - Rogue Nation (2015)\",\n \"categories\": [\n \"Action\",\n \"Adventure\",\n \"Thriller\"\n ],\n \"expire_time\": \"2033-01-01T00:00:00Z\"\n }\n }\n },\n ...\n {\n \"id\": \"116507\",\n \"document\": {\n \"name\": \"projects/123456/locations/global/collections/default_collection/dataStores/my-data-store/branches/0/documents/116507\",\n \"id\": \"116507\",\n \"structData\": {\n \"uri\": \"http://mytestdomain.movie/content/116507\",\n \"categories\": [\n \"Comedy\"\n ],\n \"media_type\": \"movie\",\n \"available_time\": \"2023-01-01T00:00:00Z\",\n \"title\": \"Mission London (2010)\",\n \"expire_time\": \"2033-01-01T00:00:00Z\"\n }\n }\n }\n ],\n \"totalSize\": 5628,\n \"attributionToken\": \"vgL0PQEKDAiZxMbCBhD2koiqAxIkNjg1MWM3OTUtMDAwMC0yOWVmLThhNzUtZDQzYTJjYzdiYmNmIgVNRURJQSpUtreMLa_WoTGs1qExwvCeFaOAlyKrtZwxxcvzF-7r6TGotZwxkPeyMI6RyTDPv-Iw1L_iMJvWty2Ovp0V1LKdFfHr6THs4K8tkvGsMJXxrDCY1rctMAFKEjB4OTYzYjdjNGE0ZGYwN2FhZlKUAXByb2plY3RzLzc1NjIwNjYwODQ3OS9sb2NhdGlvbnMvZ2xvYmFsL2NvbGxlY3Rpb25zL2RlZmF1bHRfY29sbGVjdGlvbi9lbmdpbmVzL3F1aWNrc3RhcnQtbWVkaWEtcmVjb21tZW5kXzE3NDUwMjUyMjYwNDMvc2VydmluZ0NvbmZpZ3MvZGVmYXVsdF9zZWFyY2g\",\n \"nextPageToken\": \"Y2YiJ2NjNmMhNDNk1SN3EGOtYWZ5ITLwADMw0CN5czYxUDO2QiGDI9kgzIEGIs1tmJCMIBM1IgC\",\n \"summary\": {},\n \"queryExpansionInfo\": {}\n }\n ```\n\n\u003cbr /\u003e\n\nNext steps\n----------\n\n- [Add the search widget to a web page](/generative-ai-app-builder/docs/add-widget)"]]