このページでは、 コンソールを使用してメディアアプリの検索結果をプレビューする方法と、API を使用して検索結果を取得する方法について説明します。Google Cloud
検索アプリを実装するには、ウェブページに追加する検索ウィジェットを作成するか、API 呼び出しを行って、それらの呼び出しを ウェブページやアプリケーションに統合します。
検索モードについて
メディアアプリの検索クエリには、次のようないくつかのモードがあります。
完全クエリ: エンドユーザーが検索キーワードまたは フレーズ全体を検索する場合。たとえば、音楽ストリーミング アプリでは、ユーザーが曲のタイトル全体を入力して、一度に検索します。これは、音声入力やキーボード入力など、ユーザーが一度に検索できる入力インターフェースを使用する場合に推奨される検索方法です。
完全クエリでは、入力にスペルミスが含まれている場合、ユーザーはそのミスが修正されることを期待します。
これは、メディア以外の(カスタム)アプリの検索と同じ動作です。構造化データまたは非構造化 データを含むアプリの検索結果を取得するをご覧ください。
部分クエリ(入力逐次検索): エンドユーザーが文字を入力するたびに、新しい検索結果が動的に 表示される場合。たとえば、音楽ストリーミング アプリでは、ユーザーが検索する曲の名前を入力し始め、文字を入力するたびに検索結果が動的に更新されて絞り込まれます。
自動モード: 自動モードは、完全モードと部分モードを組み合わせたものです。自動モードでは、クエリ結果を部分的に返すか完全に返すかをメディア検索で判断します。
エンドユーザーの意図を判断するために、メディア検索では、入力された文字数、入力速度、入力が認識されたエンティティ(俳優や映画の名前など)であるかどうかなど、さまざまなシグナルを分析して重み付けします。
使用するモード
メディア検索クエリのデフォルト モードは自動モードです。ただし、デフォルト モードをオーバーライドして、完全クエリ モードまたは部分クエリ モードを指定する場合があります。ユースケースの例を以下に示します。
| シナリオ | モード |
|---|---|
| エンドユーザーのクエリが完全 クエリであると確信している場合。たとえば、クエリの完了を示す Enter 機能を含む検索ボックスがあり、ユーザーが Enter キーを押します。 | 完全クエリ |
| エンドユーザーのクエリが 部分クエリを意図していると確信している場合。つまり、入力した文字ごとに結果リストが更新されることを期待しています。 | 部分クエリ |
| 上記のいずれのシナリオにも当てはまらない場合。クエリ結果を部分的に返すか完全に返すかをメディア検索で判断します。 | 自動モード |
メディアアプリの検索結果を取得する
検索結果は、 Google Cloud コンソールでプレビューするか、検索結果を API を使用して取得できます。メディアアプリの検索結果を取得する手順は次のとおりです。
コンソール
コンソールを使用してメディア検索をプレビューし、ウィジェットを構成する手順は次のとおりです。 Google Cloud
コンソールで、[AI アプリケーション] ページに移動します。 Google Cloud
メディア検索アプリの名前をクリックします。
[設定] をクリックします。
[UI] タブをクリックします。
[UI] タブで、[全般設定] オプションと [データ表示] オプションを設定します。
[プレビュー] ペインで、クエリの入力を開始します。
構成を保存して [統合] タブで使用できるようにするには、[保存して公開] をクリックします。
REST
engines.servingConfigs.search メソッドを使用して
、メディアアプリの検索結果を取得します。
アプリ ID を調べます。アプリ ID をすでに保有している場合は、次のステップに進みます。
コンソールで、[AI アプリケーション] ページに移動します。 Google Cloud
[アプリ] ページで、アプリの名前を見つけ、[ID] 列からアプリの ID を取得します。
次の curl コマンドを実行して、入力逐次検索の結果を取得します。
contentSearchSpec以外のすべてのフィールドは、searchAsYouTypeSpecフィールドと組み合わせて使用できます。明確にするために記すと、省略可能なフィールドは curl コマンドから省略されています。省略可能なフィールドについては、Get search データ構造化データまたは非構造化データを含むアプリの検索結果を取得するをご覧ください。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: クエリする Agent 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": {} }