이 페이지에서는Google Cloud 콘솔을 사용하여 미디어 앱의 검색 결과를 미리 보는 방법과 API를 사용하여 검색 결과를 가져오는 방법을 보여줍니다.
검색 앱을 구현하려면 웹페이지에 추가할 검색 위젯을 만들거나 API 호출을 수행하고 이러한 호출을 웹페이지 또는 애플리케이션에 통합하면 됩니다.
검색 모드에 대한 정보
미디어 앱의 검색어 모드에는 여러 가지가 있습니다.
전체 검색어: 최종 사용자가 전체 검색어 또는 문구를 검색하려고 할 때 사용됩니다. 예를 들어 음악 스트리밍 앱에서 사용자는 노래 제목 전체를 입력하고 한 번에 검색합니다. 이는 오디오 입력이나 키보드 입력과 같이 사용자가 한 번에 검색할 수 있는 입력 인터페이스를 사용할 때 선호되는 검색 방법입니다.
전체 쿼리에서 항목에 맞춤법 오류가 포함된 경우 사용자는 오류가 수정될 것으로 예상합니다.
이 동작은 미디어 이외 (맞춤) 앱의 검색과 동일한 동작입니다. 정형 또는 비정형 데이터가 있는 앱의 검색 결과 가져오기를 참조하세요.
부분 검색어 (또는 자동 완성): 최종 사용자가 각 글자를 입력할 때마다 새로운 검색 결과가 동적으로 표시됩니다. 예를 들어 음악 스트리밍 앱에서 사용자가 검색하려는 노래 이름을 입력하기 시작하면 입력하는 각 글자에 따라 검색 결과가 동적으로 업데이트되고 좁혀집니다.
자동 모드: 자동 모드는 전체 모드와 부분 모드가 혼합된 모드입니다. 자동 모드를 사용하면 미디어 검색에서 쿼리 결과를 부분으로 반환할지 전체로 반환할지 결정합니다.
미디어 검색은 최종 사용자의 의도를 파악하기 위해 입력된 글자 수, 입력 속도, 입력이 인식된 항목(예: 배우 또는 영화 이름)인지 여부 등 다양한 신호를 분석하고 가중치를 부여합니다.
사용할 모드
미디어 검색어의 기본 모드는 자동 모드입니다. 하지만 기본 모드를 재정의하고 전체 또는 부분 쿼리 모드를 지정해야 하는 시나리오가 있습니다. 다음은 몇 가지 사용 사례 예입니다.
시나리오 | 모드 |
---|---|
최종 사용자의 쿼리가 전체 쿼리라고 확신하는 경우 예를 들어 쿼리가 완료되었음을 표시하는 Enter 함수가 포함된 검색창이 있고 사용자가 Enter 키를 누릅니다. | 전체 쿼리 |
최종 사용자의 쿼리가 부분 쿼리임을 확신할 수 있습니다. 즉, 사용자는 입력된 각 글자 후에 결과 목록이 업데이트되기를 기대합니다. | 부분 쿼리 |
위 시나리오에 해당하지 않습니다. 미디어 검색에서 쿼리 결과를 부분으로 반환할지 전체로 반환할지 결정하도록 합니다. | 자동 |
미디어 앱의 검색 결과 가져오기
Google Cloud 콘솔에서 검색 결과를 미리보거나 API를 사용하여 검색 결과를 가져올 수 있습니다. 미디어 앱의 검색 결과를 가져오려면 다음을 실행하세요.
콘솔
Google Cloud 콘솔을 사용하여 미디어 검색을 미리 보고 위젯을 구성하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 AI 애플리케이션 페이지로 이동합니다.
미디어 검색 앱의 이름을 클릭합니다.
구성을 클릭합니다.
UI 탭을 클릭합니다.
UI 탭에서 일반 구성 및 데이터 표시 옵션을 설정합니다.
미리보기 창에서 쿼리 입력을 시작합니다.
구성을 저장하고 통합 탭에서 사용할 수 있도록 하려면 저장 및 게시를 클릭합니다.
REST
engines.servingConfigs.search
메서드를 사용하여 미디어 앱의 검색 결과를 가져옵니다.
앱 ID를 찾습니다. 앱 ID를 이미 알고 있는 경우 다음 단계로 건너뜁니다.
Google Cloud 콘솔에서 AI 애플리케이션 페이지로 이동합니다.
앱 페이지에서 앱 이름을 찾고 ID 열에서 앱 ID를 가져옵니다.
다음 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": {} }