取り込み用にデータを準備する

データの準備方法は、インポートするデータの種類とインポート方法によって異なります。まず、インポートするデータの種類を特定します。

複数のデータストアを 1 つのカスタム検索アプリに接続できる統合検索については、複数のデータストアの接続についてをご覧ください。

ウェブサイトのデータ

ウェブサイト データ用のデータストアを作成するときは、検索やレコメンデーションのために Google がクロールしてインデックスに登録するウェブページの URL を指定します。

ウェブサイトのデータをインデックス登録する前に:

  • インデックスに登録する URL パターンと除外する URL パターンを決定します。

    • 動的 URL のパターンを除外する: 動的 URL は、リクエストに応じて配信時に変更される URL です。

      たとえば、検索結果を表示するウェブページの URL パターン(www.example.com/search/* など)。たとえば、ユーザーが「Nobel prize」というフレーズを検索した場合、動的検索 URL は www.example.com/search?q=nobel%20prize/UNIQUE_STRING のような一意の URL になることがあります。URL パターン www.example.com/search/* が除外されていない場合、このパターンに沿った固有の動的検索 URL はすべてインデックスに登録されます。これにより、インデックスが肥大化し、検索品質が低下します。

    • 正規 URL パターンを使用して重複する URL を排除します。これにより、ウェブサイトのクロール時に Google 検索に 1 つの正規 URL が提供され、曖昧さが解消されます。正規化の例と詳細については、URL の正規化とはrel="canonical" などを利用して正規 URL を指定する方法をご覧ください。

  • インデックス登録が必要な同じドメインまたは異なるドメインの URL パターンを含め、インデックス登録してはならないパターンを除外できます。追加または除外できる URL パターンの数は、次のようになります。

    インデックス登録のタイプ 追加したサイト 除外したサイト
    基本的なウェブサイト検索 URL パターンは最大 50 個まで指定できます。 URL パターンは最大 50 個まで指定できます。
    ウェブサイトの高度なインデックス登録 最大 500 個の URL パターン 最大 500 個の URL パターン

  • ウェブサイトで robots.txt ファイルを使用している場合は、次の操作を行います。

    詳しくは、robots.txt の概要robots.txt ファイルの作成と送信方法をご覧ください。

  • ウェブサイトの高度なインデックス登録を使用する場合は、データストア内の URL パターンのドメインを確認できる必要があります。

  • ウェブサイトの高度なインデックス登録に構造化データを使用するで説明されているように、meta タグと PageMap の形式で構造化データをデータストア スキーマに追加して、インデックス登録を拡充します。

非構造化データ

Vertex AI Search は、HTML、テキストが埋め込まれた PDF、TXT 形式のドキュメントの検索をサポートしています。プレビューでは、PPTX および DOCX 形式を使用できます。

ドキュメントは Cloud Storage バケットからインポートします。インポートは、 Google Cloud コンソール、ImportDocuments メソッド、または CRUD メソッドによるストリーミング取り込みを使用して行うことができます。API リファレンス情報については、DocumentServicedocuments をご覧ください。

次の表に、構成が異なる各ファイルタイプのファイルサイズの上限を示します(詳細については、ドキュメントを解析してチャンクに分割するをご覧ください)。一度にインポートできるファイル数は最大 100,000 個です。

ファイル形式 デフォルトのインポート レイアウト対応のドキュメント チャンキングを使用してインポートする レイアウト パーサーを使用してインポートする
HTML、TXT、JSON、XHTML、XML などのテキストベースのファイル 200 MB 未満 10 MB 未満 10 MB 未満
PPTX、DOCX、XLSX 200 MB 未満 200 MB 未満 200 MB 未満
PDF 200 MB 未満 200 MB 未満 40 MB 未満

非構造化データにエンベディングを含める場合は、カスタム エンベディングを使用するをご覧ください。

検索できない PDF(スキャンした PDF や、インフォグラフィックなどの画像内にテキストを含む PDF)がある場合は、データストアの作成時にレイアウト パーサーをオンにすることをおすすめします。これにより、Vertex AI Search はテキスト ブロックや表などの要素を抽出できます。検索可能な PDF の大部分が機械読み取り可能なテキストで構成され、多くのテーブルが含まれている場合は、検出と解析を改善するために、機械読み取り可能なテキストのオプションを有効にして OCR 処理を有効にすることを検討してください。詳細については、ドキュメントを解析してチャンクするをご覧ください。

検索拡張生成(RAG)に Vertex AI Search を使用する場合は、データストアの作成時にドキュメント チャンクを有効にします。詳細については、ドキュメントを解析してチャンクするをご覧ください。

次のソースから非構造化データをインポートできます。

Cloud Storage

メタデータありまたはメタデータなしで Cloud Storage からデータをインポートできます。

データ インポートは再帰的です。つまり、指定したバケットまたはフォルダ内にフォルダが存在する場合、そのフォルダ内のファイルはインポートされます。

メタデータなしで Cloud Storage からドキュメントをインポートする場合は、ドキュメントを Cloud Storage バケットに直接配置します。ドキュメント ID はメタデータの例です。

テストには、次の一般公開の Cloud Storage フォルダを使用できます。これらのフォルダには PDF が含まれています。

  • gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs
  • gs://cloud-samples-data/gen-app-builder/search/CUAD_v1
  • gs://cloud-samples-data/gen-app-builder/search/kaiser-health-surveys
  • gs://cloud-samples-data/gen-app-builder/search/stanford-cs-224

メタデータを含む Cloud Storage からデータをインポートする場合は、メタデータを含む JSON ファイルを、インポート時に指定するロケーションの Cloud Storage バケットに配置します。

非構造化ドキュメントは、メタデータと同じ Cloud Storage バケットに配置することも、別のバケットに配置することもできます。

メタデータ ファイルは、JSON Lines ファイルまたは NDJSON ファイルである必要があります。ドキュメント ID はメタデータの例です。メタデータ ファイルの各行は、次のいずれかの JSON 形式に準拠している必要があります。

  • jsonData の使用:
    • { "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
  • structData の使用:
    • { "id": "<your-id>", "structData": { <JSON object> }, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }

各行の uri フィールドを使用して、ドキュメントの Cloud Storage の場所を指定します。

非構造化ドキュメントの NDJSON メタデータ ファイルの例を次に示します。この例では、メタデータ ファイルの各行が PDF ドキュメントを指し、そのドキュメントのメタデータが含まれています。最初の 2 行は jsonData を使用し、次の 2 行は structData を使用します。structData を使用すると、引用符内の引用符をエスケープする必要がなくなります。

{"id":"doc-0","jsonData":"{\"title\":\"test_doc_0\",\"description\":\"This document uses a blue color theme\",\"color_theme\":\"blue\"}","content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_0.pdf"}}
{"id":"doc-1","jsonData":"{\"title\":\"test_doc_1\",\"description\":\"This document uses a green color theme\",\"color_theme\":\"green\"}","content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_1.pdf"}}
{"id":"doc-2","structData":{"title":"test_doc_2","description":"This document uses a red color theme","color_theme":"red"},"content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_3.pdf"}}
{"id":"doc-3","structData":{"title":"test_doc_3","description":"This is document uses a yellow color theme","color_theme":"yellow"},"content":{"mimeType":"application/pdf","uri":"gs://test-bucket-12345678/test_doc_4.pdf"}}

データストアを作成するには、検索データストアを作成するをご覧ください。

BigQuery

BigQuery からメタデータをインポートする場合は、メタデータを含む BigQuery テーブルを作成します。ドキュメント ID はメタデータの例です。

非構造化ドキュメントを Cloud Storage バケットに格納します。

次の BigQuery スキーマを使用します。各レコードの uri フィールドを使用して、ドキュメントの Cloud Storage のロケーションを指定します。

[
  {
    "name": "id",
    "mode": "REQUIRED",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "jsonData",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "content",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "mimeType",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "uri",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  }
]

詳細については、BigQuery ドキュメントのテーブルの作成と使用をご覧ください。

データストアを作成するには、検索データストアを作成するをご覧ください。

Google ドライブ

カスタム検索では、Google ドライブからのデータの同期がサポートされています。

Google ドライブからデータをインポートする場合は、Vertex AI Search で Google Identity を ID プロバイダとして設定する必要があります。アクセス制御の設定については、データソースのアクセス制御を使用するをご覧ください。

データストアを作成するには、検索データストアを作成するをご覧ください。

構造化データ

使用するインポート方法に従ってデータを準備します。メディアデータの取り込みを計画している場合は、構造化メディアデータもご覧ください。

次のソースから構造化データをインポートできます。

BigQuery または Cloud Storage から構造化データをインポートする際に、メタデータ付きでデータをインポートするオプションが提供されます。(メタデータを含む構造化データは、拡張構造化データとも呼ばれます)。

BigQuery

構造化データは BigQuery データセットからインポートできます。

スキーマは自動検出されます。インポート後、自動検出されたスキーマを編集して、タイトルなどのキー プロパティをマッピングすることをおすすめします。 Google Cloud コンソールではなく API を使用してインポートする場合は、独自のスキーマを JSON オブジェクトとして指定できます。詳細については、スキーマを指定または自動検出するをご覧ください。

一般公開されている構造化データの例については、BigQuery 一般公開データセットをご覧ください。

構造化データにエンベディングを含める場合は、カスタム エンベディングを使用するをご覧ください。

メタデータを含む構造化データをインポートするように選択すると、BigQuery テーブルに次の 2 つのフィールドが含まれます。

  • ドキュメントを識別するための id フィールド。メタデータなしで構造化データをインポートすると、id が自動的に生成されます。メタデータを含めると、id の値を指定できます。

  • データを含む jsonData フィールド。jsonData 文字列の例については、前のセクションの Cloud Storage をご覧ください。

メタデータのインポートを含む構造化データには、次の BigQuery スキーマを使用します。

[
  {
    "name": "id",
    "mode": "REQUIRED",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "jsonData",
    "mode": "NULLABLE",
    "type": "STRING",
    "fields": []
  }
]

データストアの作成手順については、検索データストアを作成するまたはレコメンデーション データストアを作成するをご覧ください。

Cloud Storage

Cloud Storage の構造化データは、JSON Lines 形式または NDJSON 形式である必要があります。各ファイルは 2 GB 以下である必要があります。1 回のインポート リクエストで最大 1,000 個のファイルをインポートできます。

一般公開されている構造化データの例については、Cloud Storage の次のフォルダをご覧ください。これらのフォルダには NDJSON ファイルが含まれています。

  • gs://cloud-samples-data/gen-app-builder/search/kaggle_movies
  • gs://cloud-samples-data/gen-app-builder/search/austin_311

構造化データにエンベディングを含める場合は、カスタム エンベディングを使用するをご覧ください。

構造化データの NDJSON メタデータ ファイルの例を次に示します。ファイルの各行はドキュメントを表し、一連のフィールドで構成されています。

{"id": 10001, "title": "Hotel 1", "location": {"address": "1600 Amphitheatre Parkway, Mountain View, CA 94043"}, "available_date": "2024-02-10", "non_smoking": true, "rating": 3.7, "room_types": ["Deluxe", "Single", "Suite"]}
{"id": 10002, "title": "Hotel 2", "location": {"address": "Manhattan, New York, NY 10001"}, "available_date": "2023-07-10", "non_smoking": false, "rating": 5.0, "room_types": ["Deluxe", "Double", "Suite"]}
{"id": 10003, "title": "Hotel 3", "location": {"address": "Moffett Park, Sunnyvale, CA 94089"}, "available_date": "2023-06-24", "non_smoking": true, "rating": 2.5, "room_types": ["Double", "Penthouse", "Suite"]}

データストアを作成するには、検索データストアを作成するまたはレコメンデーション データストアを作成するをご覧ください。

ローカル JSON データ

API を使用して、JSON ドキュメントまたはオブジェクトを直接アップロードできます。

より良い結果を得るために、独自のスキーマを JSON オブジェクトとして指定することをおすすめします。独自のスキーマを指定しない場合、スキーマは自動検出されます。インポート後、自動検出されたスキーマを編集して、タイトルなどのキー プロパティをマッピングすることをおすすめします。詳細については、スキーマを指定または自動検出するをご覧ください。

構造化データにエンベディングを含める場合は、カスタム エンベディングを使用するをご覧ください。

データストアを作成するには、検索データストアを作成するまたはレコメンデーション データストアを作成するをご覧ください。

構造化メディアデータ

動画、ニュース、音楽などの構造化されたメディアデータの取り込みを計画している場合は、以下を確認してください。

医療 FHIR データ

Cloud Healthcare API から FHIR データを取り込む場合は、次のことを確認してください。

  • ロケーション: ソース FHIR ストアは、us-central1useu のロケーションにある Cloud Healthcare API データセットに存在する必要があります。詳細については、Cloud Healthcare API でデータセットを作成して管理するをご覧ください。
  • FHIR ストアのタイプ: ソース FHIR ストアは R4 データストアである必要があります。FHIR ストアのバージョンを確認するには、データセット内の FHIR ストアを一覧表示します。FHIR R4 ストアを作成するには、FHIR ストアを作成するをご覧ください。
  • インポートの割り当て: ソースの FHIR ストアには 100 万個未満の FHIR リソースが必要です。FHIR リソースが 100 万を超える場合、この上限に達するとインポート プロセスが停止します。詳細については、割り当てと上限をご覧ください。
  • DocumentReference リソースで参照されるファイルは、Cloud Storage に保存されている PDF、RTF、または画像ファイルである必要があります。参照されるファイルへのリンクは、標準の Cloud Storage パス形式(gs://BUCKET_NAME/PATH_TO_REFERENCED_FILE)でリソースの content[].attachment.url フィールドに指定する必要があります。
  • Vertex AI Search でサポートされている FHIR R4 リソースのリストを確認します。詳細については、Healthcare FHIR R4 データスキーマ リファレンスをご覧ください。
  • リソース参照: 相対リソース参照が Resource/resourceId 形式であることを確認します。たとえば、subject.reference の値は Patient/034AB16 にする必要があります。Cloud Healthcare API が FHIR リソース リファレンスをサポートする方法の詳細については、FHIR リソース リファレンスをご覧ください。