이 페이지에서는Google Cloud 콘솔을 사용하여 미디어 앱의 검색 결과를 미리 보는 방법과 API를 사용하여 검색 결과를 가져오는 방법을 보여줍니다.
검색 앱을 구현하려면 웹페이지에 추가할 검색 위젯을 만들거나 API 호출을 수행하고 이러한 호출을 웹페이지 또는 애플리케이션에 통합하면 됩니다.
검색 모드에 대한 정보
미디어 앱의 검색어 모드에는 여러 가지가 있습니다.
전체 검색어: 최종 사용자가 전체 검색어 또는 문구를 검색하려고 할 때 사용됩니다. 예를 들어 음악 스트리밍 앱에서 사용자는 노래 제목 전체를 입력하고 한 번에 검색합니다. 이는 오디오 입력이나 키보드 입력과 같이 사용자가 한 번에 검색할 수 있는 입력 인터페이스를 사용할 때 선호되는 검색 방법입니다.
전체 쿼리에서 항목에 맞춤법 오류가 포함된 경우 사용자는 오류가 수정될 것으로 예상합니다.
contentSearchSpec을 제외한 모든 필드를 searchAsYouTypeSpec 필드와 함께 사용할 수 있습니다. curl 명령어에서는 명확한 설명을 위해 선택적인 필드가 생략되었습니다. 선택적인 필드는 정형 또는 비정형 데이터가 있는 앱의 검색 결과 가져오기를 참조하세요.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-05(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)"]]