Google Cloud

Vertex AI Search(現Agent Search)の使い方:データストア作成・検索API・料金

Vertex AI Search(現Agent Search)の使い方:データストア作成・検索API・料金

Vertex AI Searchは、2026年4月22日付でGoogle Cloudの名称対応表によりAgent Searchへ改称されました。社内のPDFやBigQueryのテーブル、公開Webサイトを取り込み、Google品質の検索と生成回答をAPIで返すマネージドサービスという中身は変わっていません。本記事では、データストアの作成とCloud Storageからの取り込み、検索アプリの作成、検索APIの呼び出しをcurlとPythonで示し、クエリ単価とインデックス保存料から月額を見積もる方法までを、2026年10月時点の公式ドキュメントで整理します。

まとめ:Vertex AI Searchでデータストアを作り検索APIを呼ぶまでの要点

結論から書きます。手順は「データストアを作る→データを入れる→アプリを作る→APIで検索する」の4段で、コンソールでもRESTでも同じです。つまずくのは作成時にしか決められない設定です。

  • Vertex AI SearchはAgent Searchに改称済みです。コンソールの画面名は「AI Applications」、APIはdiscoveryengine.googleapis.comのままです。
  • PDFなどの文書を入れるデータストアは、作成時にcontentConfigをCONTENT_REQUIREDにします。未指定だとNO_CONTENTになり、後から変更できません。
  • Webサイトを検索対象にするなら、アプリをEnterprise版で作る必要があります。
  • 汎用料金は1,000クエリあたりStandard版1.50ドル、Enterprise版4.00ドルです。毎月1万クエリまでの無料枠と、インデックス10GiBまでの無料枠があります。
  • 月1,500万クエリを超える規模なら、定額の構成可能料金を検討します。それ未満なら汎用料金で始めます。

Vertex AI SearchがAgent Searchへ改称された経緯と製品の構成

検索で見つかる解説の多くは改称前に書かれています。名前の対応と、操作の対象になる2つの部品を先に押さえます。

2026年4月22日の改称とコンソール・APIで残る旧名の対応

Gemini Enterprise Agent Platformのリリースノートには、2026年4月22日付でVertex AIからの名称対応表が載っています。Vertex AI SearchはAgent Search、Vertex AI Search for CommerceはAgent Search for Commerce、Vertex AI RAG EngineはRAG Engineになりました。プラットフォーム全体の位置づけはVertex AIの機能・料金とSageMaker・Azure MLとの違いで整理しています。

旧名は今も各所に残ります。Agent Searchの公式ドキュメントは、ページ冒頭で「Vertex AI Searchは改称中」と注記し、過去の名称としてAgent Builder、Vertex AI Search and Conversation、Generative AI App Builderなどを挙げています。コンソールのメニュー名は「AI Applications」、APIのエンドポイントはdiscoveryengine.googleapis.comです。社内向けの検索SaaSであるGemini Enterprise(旧Agentspace)も同じDiscovery Engine APIの上で動いており、違いはGoogle Agentspace(現Gemini Enterprise)の機能と料金にまとめています。

データストアとアプリ(エンジン)の2層構造と取り込める3種類のデータ

Vertex AI Searchは2層でできています。下の層がデータを索引化して保持する「データストア」、上の層が検索の窓口になる「アプリ」です。APIではアプリをenginesと呼び、1つのアプリに複数のデータストアをつなげられます。

データの種類 中身の例 主な取り込み元
ウェブサイト 公開サイトのページ URLパターン・サイトマップ
非構造化 PDF・HTML・DOC・TXT・PPTX Cloud Storage
構造化 JSON・CSV・テーブル行 BigQuery等(詳細は表の直後)

構造化データの主な取り込み元は、BigQuery・Cloud Storage・Cloud SQL・Spanner・Firestore等です。社内文書検索で最も多いのは、Cloud StorageのPDFを非構造化データとして入れる構成です。バケットの設計やストレージクラスの選び方はCloud Storage(GCS)の仕組みとストレージクラスを参照してください。

データストアを作成しCloud StorageのPDFを取り込むREST手順

ここからはデータストアを作成する実装手順です。コンソールの「AI Applications」から「データストア」を開いても同じ操作ができますが、再現性を残すためRESTで示します。手順は検索データストアを作成する公式ページ(2026年10月13日更新)に沿っています。

Discovery Engine APIの有効化と認証を整える事前準備2点

準備は2つだけです。プロジェクトでDiscovery Engine APIを有効にすることと、curlやSDKが使う認証情報を用意することです。ローカルで試すなら、gcloud CLIでログインしてアプリケーションのデフォルト認証情報を作ります。

# プロジェクトを指定してAPIを有効化する
gcloud config set project your-project-id
gcloud services enable discoveryengine.googleapis.com

# curl用のアクセストークンとSDK用のデフォルト認証情報を用意する
gcloud auth login
gcloud auth application-default login

取り込むバケットが別プロジェクトにある場合は、取り込み先プロジェクトのサービスエージェントservice-<プロジェクト番号>@gcp-sa-discoveryengine.iam.gserviceaccount.comに、バケットのStorage Object Viewer権限を付けます。ここを忘れると取り込みが権限エラーで止まります。

contentConfigをCONTENT_REQUIREDにするデータストア作成

データストアIDに使える文字は、英小文字・数字・アンダースコア・ハイフンです。公式ページのcurl例はcontentConfigを省略していますが、dataStoresのRESTリファレンスを見ると、このフィールドは作成後に変更できず、未指定ならNO_CONTENT(本文を持たない文書だけを入れる設定)になります。PDFを入れるならCONTENT_REQUIREDを明示します。

PROJECT_ID=your-project-id
DATA_STORE_ID=internal-docs

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: ${PROJECT_ID}" \
  "https://discoveryengine.googleapis.com/v1/projects/${PROJECT_ID}/locations/global/collections/default_collection/dataStores?dataStoreId=${DATA_STORE_ID}" \
  -d '{
    "displayName": "社内規程PDF",
    "industryVertical": "GENERIC",
    "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
    "contentConfig": "CONTENT_REQUIRED"
  }'

スキャンしたPDFが多い場合は、同じリクエストにdocumentProcessingConfigを加えてOCRパーサーを指定します。RAG向けにチャンク分割を有効にするのもこの設定で、やはり作成時に決めておく項目です。

取り込みAPIのdataSchema4種とFULL・INCREMENTALの違い

作成したデータストアに、documents:importでCloud Storageのファイルを流し込みます。

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/dataStores/${DATA_STORE_ID}/branches/0/documents:import" \
  -d '{
    "gcsSource": {
      "inputUris": ["gs://your-bucket/policies/*.pdf"],
      "dataSchema": "content"
    },
    "reconciliationMode": "INCREMENTAL"
  }'

dataSchemaは4種類です。PDFやHTMLをそのまま入れるならcontentで、文書IDはCloud StorageのURIのハッシュから自動で作られます。部署名や改定日などのメタデータを付けたいなら、1行1文書のJSONLで本文URIとメタデータを並べるdocument(既定値)を使います。構造化データはcustomかcsvです。1回の取り込みで対象にできるファイルは10万件までです。

reconciliationModeの既定値はINCREMENTALで、同じIDの文書を上書きし、新しい文書を足します。FULLは、バケットに無い文書をデータストアから削除する方式です。廃止した規程を検索結果に残したくないならFULLを選び、取り込み元のバケットを正本として運用します。取り込みは非同期の長時間オペレーションで、データ量によって数分から数時間かかります。

検索アプリを作成してservingConfigs.searchで結果を取得する実装

データストアだけでは検索できません。アプリを作って紐づけ、アプリに対して検索リクエストを送ります。

searchTierとsearchAddOnsで決まるアプリの機能と課金区分

検索アプリを作成する公式ページでは、アプリの作成時にsearchTierとsearchAddOnsを指定します。この2つが、使える機能と1クエリの単価を決めます。

APP_ID=internal-docs-app

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: ${PROJECT_ID}" \
  "https://discoveryengine.googleapis.com/v1/projects/${PROJECT_ID}/locations/global/collections/default_collection/engines?engineId=${APP_ID}" \
  -d '{
    "displayName": "社内規程検索",
    "dataStoreIds": ["internal-docs"],
    "solutionType": "SOLUTION_TYPE_SEARCH",
    "industryVertical": "GENERIC",
    "searchEngineConfig": {
      "searchTier": "SEARCH_TIER_ENTERPRISE",
      "searchAddOns": ["SEARCH_ADD_ON_LLM"]
    }
  }'

SEARCH_TIER_STANDARDは非構造化と構造化の検索まで、SEARCH_TIER_ENTERPRISEはWebサイト検索とリージョンの選択が加わります。SEARCH_ADD_ON_LLMを付けると、検索結果の要約やフォローアップ質問といった生成系の応答が使えます。要約の生成に使う安定版モデルは、Agent Searchのリリースノートの2026年10月16日の項でgemini-3.5-flash/answer_gen/v1に更新されました。

curlとPythonから検索APIを呼び出すリクエスト例と応答の読み方

検索結果を取得する公式ページは、データストア単位ではなくアプリ単位のengines.servingConfigs.searchを推奨しています。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": "出張旅費の日当はいくらですか",
    "pageSize": 10,
    "userPseudoId": "session-7f3a9c"
  }'

アプリケーションに組み込むなら、Pythonのクライアントライブラリgoogle-cloud-discoveryengine(2026年10月1日公開の0.20.5)を使います。公式サンプルを要約付きの最小構成に絞ったものです。

# pip install google-cloud-discoveryengine
from google.cloud import discoveryengine_v1 as discoveryengine

PROJECT_ID = "your-project-id"
APP_ID = "internal-docs-app"

client = discoveryengine.SearchServiceClient()  # location=globalならエンドポイント指定は不要
serving_config = (
    f"projects/{PROJECT_ID}/locations/global/collections/default_collection"
    f"/engines/{APP_ID}/servingConfigs/default_config"
)

spec = discoveryengine.SearchRequest.ContentSearchSpec(
    snippet_spec=discoveryengine.SearchRequest.ContentSearchSpec.SnippetSpec(return_snippet=True),
    summary_spec=discoveryengine.SearchRequest.ContentSearchSpec.SummarySpec(
        summary_result_count=5,
        include_citations=True,
        model_spec=discoveryengine.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec(version="stable"),
    ),
)

request = discoveryengine.SearchRequest(
    serving_config=serving_config,
    query="出張旅費の日当はいくらですか",
    page_size=10,
    content_search_spec=spec,
)

pager = client.search(request)
print(pager.summary.summary_text)       # 引用番号付きの要約
for result in pager:
    doc = result.document
    print(doc.id, doc.derived_struct_data.get("link"))  # 根拠になったPDFのURI

pageSizeの既定値と上限はデータの種類で違います。基本インデックスのWebサイトは既定10件・上限25件、高度なインデックス登録のWebサイトは既定25件・上限50件、それ以外は既定50件・上限100件で、上限を超えた値は上限に丸められます。userPseudoIdは利用者ごとの仮名IDで、最大128文字です。個人情報を入れてはいけないと公式ページは明記しています。

ウェブサイト検索でEnterprise版とドメイン所有権確認が必要な条件

公開サイトを対象にする場合は条件が増えます。Webサイトのデータストアは、Enterprise版を有効にしたアプリにつながないと使えません。要約や抽出回答まで欲しいときは「高度なウェブサイトのインデックス登録」を有効にしますが、これは対象ドメインの所有権確認が必要で、一度有効にすると無効に戻せません。

URLの自動検出モードには、動的URLの重複ページで索引が膨らむという注意書きがあります。パラメータ付きURLが多いECサイトや検索ページを抱えるサイトでは、除外パターンを先に書き、インデックス保存料の増加を抑えてください。

Vertex AI Searchの料金体系と月額を見積もる計算例

料金はAgent Searchの料金ページに載っています。従量課金の「汎用料金」と、定額の「構成可能料金」の2本立てで、データストアとアプリは同じモデルにそろえる必要があります。

Standard 1.5ドルとEnterprise 4ドルのクエリ単価と無料枠1万件

区分(汎用料金) 1,000クエリあたり 含まれる機能
Standard Edition 1.50ドル 非構造化・構造化の検索、セマンティック検索
Enterprise Edition 4.00ドル 上記+Webサイト検索、基本の生成回答
高度な生成回答 +4.00ドル フォローアップ提案・複雑な質問・マルチモーダル

無料枠として、アカウントあたり毎月1万クエリまでは課金されません。高度な生成回答(Advanced Generative Answers)は無料枠の対象外です。料金ページの定義では、ユーザーが質問して検索エンジンが応答した1往復が1クエリで、コンソールのプレビューでの検索も数えられます。

インデックス保存料の月10GiB無料とウェブサイト1,000ページの換算

クエリとは別に、取り込んだデータの量に応じて保存料がかかります。単価は1GiB・1時間あたり0.006849315ドルで、730時間で換算すると1GiBあたり月約5ドルです。毎月10GiBまでは無料です。Webサイトのデータストアは1ページを500KiBとみなして計算し、料金ページの例では1,000ページのサイトで月2.38ドルになります。

試算してみます。社内PDFが20GiB、月5万クエリをEnterprise版で受ける場合、クエリは無料枠を引いた4万件×4.00ドル÷1,000で160ドル、保存料は10GiB×約5ドルで約50ドル、合計は月約210ドルです。Advanced Generative Answersを全クエリに付けると、5万件分の200ドルが上乗せされ、月400ドルを超えます。単価はすべて米ドル表記で、為替と税は含みません。

構成可能料金が汎用料金より安くなる月1,500万クエリの分岐

料金ページは、月1,500万クエリ未満で負荷が読めない場合は汎用料金、それを超えて負荷が安定している場合は構成可能料金を推奨しています。構成可能料金は毎分クエリ数(QPM)と保存容量の月額契約に、セマンティック検索や生成回答のアドオンを従量で足す方式です。最低契約は1,000QPMと50GBで、契約QPMを超えた分は汎用料金のStandard版単価(1,000クエリあたり1.50ドル)で課金されます。

見落としやすいのが、構成可能料金で作ったデータストアは構成可能料金のアプリからしか使えないという制約です。PoCは汎用料金で作り、本番の量が見えてから構成可能料金でデータストアを作り直す、という順序が無難です。

Vertex AI Searchを採用する条件と見送ってRAG Engine等を選ぶ場面

ここまでの仕様と料金をもとに、どんなときに使い、どんなときに使わないかを言い切ります。

社内文書検索をコードを書かずに早く立ち上げたい場合の採用条件

採用してよいのは、次の3条件がそろうときです。検索対象がCloud StorageやBigQueryにすでにある、検索精度のチューニングに専任のエンジニアを置けない、月のクエリ数が数十万件までで単価が問題にならない。この場合、パーサー・埋め込み・ベクトル索引・リランクを自前で組むより、データストアとアプリの2つを作るほうが早く立ち上がります。2026年4月22日にはMCPサーバーもGAになり、https://discoveryengine.googleapis.com/mcpからAIエージェントの検索ツールとして接続できる仕組みです。エージェント側の構成はVertex AI Agent Builder(Agent Platform)の全体像とADKで解説しています。

取り込み対象の選定、アクセス権の設計、既存の業務システムへの組み込みまでを一括で任せたい場合は、一創のRAG構築支援で、Agent Searchを使う構成と自前で組む構成の比較から相談できます。

チャンク分割や埋め込みモデルを自分で制御したい場合の見送り判断

見送るのは、検索の中身を自分で決めたい場合です。埋め込みモデルの選択、チャンクの切り方、キーワード検索とベクトル検索の重み付けを細かく変えたいなら、Agent Searchの抽象度は高すぎます。同じGoogle Cloud内ならRAG Engineや、Vector Search 2.0から改称されたAgent Retrievalを部品として組むほうが筋がよい選択です。BM25とベクトルの統合の考え方はハイブリッド検索の仕組みと実装コードが参考になります。RAG Engineでのコーパス作成とチャンク・ベクトルデータベースの設定はVertex AI RAG Engineの使い方:コーパス作成・チャンク設定・料金で手順を追っています。

月1,500万クエリに届かないのにQPMの読めない一般向けサービスで使う場合も、費用面で慎重になるべきです。Enterprise版にAdvanced Generative Answersを付けると1,000クエリあたり8ドルになり、アクセスが急増した月に請求が跳ねます。RAGそのものの考え方から整理したい場合はRAGの仕組みとファインチューニングとの違いを先に読むと判断しやすくなります。

Vertex AI Search(Agent Search)に関するよくある質問

Vertex AI Searchを使い始めるときによく出る疑問に、公式ドキュメントの記載をもとに答えます。

Vertex AI SearchとAgent Searchは別の製品ですか?

同じ製品です。2026年4月22日付のAgent Platformの名称対応表で、Vertex AI SearchはAgent Searchへ改称されました。APIのエンドポイントはdiscoveryengine.googleapis.comのままなので、既存のコードを書き換える必要はありません。ドキュメントやコンソールには旧名が混在しているため、古い手順書は画面名を読み替えて使います。

Vertex AI Searchは無料で試せますか?

汎用料金では、アカウントあたり毎月1万クエリまでが無料です。インデックス保存料も毎月10GiBまで無料なので、数百ファイル規模の社内文書なら試算上の費用はほぼかかりません。ただしAdvanced Generative Answersは無料枠の対象外で、課金が有効なプロジェクトが前提です。

日本語の文書を検索できますか?

検索できます。PDF・HTML・DOC・TXT・PPTXの日本語文書を取り込めることは、ソフトバンクの技術ブログなど改称前からの国内の検証記事でも確かめられています。言語ごとの機能差は変わることがあるため、要約など生成系の機能は本番の文書で事前に確認してください。スキャン画像のPDFは文字情報を持たないため、データストア作成時にdocumentProcessingConfigでOCRパーサーを指定してください。作成後に変えられない設定があるので、少量のファイルで試してから本番のデータストアを作るのが安全です。

社員ごとに検索できる文書を制限できますか?

RESTリファレンスによると、アクセス制御(ACL)はGENERIC業種で、公開Webサイト以外のデータストアに対応しています。権限ごとに検索結果を出し分けたい場合は、データストアを作る前にACLの付け方を設計しておきます。公開範囲が部署単位で済むなら、部署ごとにデータストアを分け、アプリ側で接続先を切り替える設計のほうが単純です。

Vertex AI SearchとRAG Engineはどちらを選べばよいですか?

検索精度のチューニングをGoogleに任せたいならAgent Search、チャンク分割や埋め込みモデル、ベクトルデータベースを自分で選びたいならRAG Engineです。Agent Searchの費用はクエリ数とインデックス量でほぼ決まるため、見積もりが立てやすい点も判断材料になります。Geminiから根拠付きで回答させる用途ではどちらも使えるため、運用できる体制の厚さで決めます。RAG Engineの実装手順と、明示しないと既定になるSpannerモードの課金はVertex AI RAG Engineの使い方:コーパス作成・チャンク設定・料金で解説しています。

関連記事

お気に入りに入れた記事の一覧

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.10.16 テックブログ バーガーキング不正アクセスで約1,118万件の情報漏洩|対象確認・案内メールの真偽と運営側のログ点検
  2. 2026.10.15 テックブログ 銀のさら不正アクセス:最大650万件の対象確認と窓口、パスワード変更の手順
  3. 2026.10.16 テックブログ ソースネクスト不正アクセスで最大2,252万件流出|ログインできない理由・パスワード再設定と会員APIの点検
  4. 2026.10.15 テックブログ リゾートトラスト不正アクセス:会員2.6万件・カハラ横浜3.6万件の対象確認と窓口
  5. 2025.12.02 テックブログ クーパン問題とは?3,755万人流出と過去最大6,246億ウォンの課徴金

RELATED POSTS 関連記事

目次