准备数据以便提取

数据准备方式取决于您要导入的数据类型以及您选择的导入方式。首先选择您要导入的数据类型:

如需了解混合搜索(可将多个数据存储区连接到单个通用搜索应用),请参阅关于连接多个数据存储区

网站数据

为网站数据创建数据存储区时,您需要提供 Google 应抓取和编入索引以供搜索或推荐的网页网址。

在将您的网站数据编入索引之前,请做好以下准备:

  • 决定要将哪些网址格式纳入索引,以及要排除哪些网址格式。

    • 排除动态网址的模式。动态网址是指在投放时会根据请求而更改的网址。

      例如,执行搜索的网页的网址格式 结果,例如 www.example.com/search/*。假设用户搜索 词组 Nobel prize,则动态搜索网址可以是唯一网址: www.example.com/search?q=nobel%20prize/UNIQUE_STRING。 如果未排除网址格式 www.example.com/search/*,则: 这样遵循此格式的唯一动态搜索网址就会编入索引。 这会导致索引庞大,并降低搜索质量。

    • 使用规范网址格式消除重复网址。这样,Google 搜索在抓取网站时就会获得单个规范网址,从而消除歧义。如需查看规范化示例和了解详情,请参阅什么是网址规范化如何使用 rel="canonical" 及其他方法指定规范网址

  • 您可以将网址格式添加到 需要编入索引,并排除不得编入索引的模式。您可以包含和排除的网址模式的数量存在以下差异:

    索引类型 包含的网站 排除的网站
    基本网站搜索 最多 50 个网址格式 最多 50 个网址格式
    高级网站索引编制 最多 500 个网址格式 最多 500 个网址格式

  • 请检查并确保您计划提供的网页未使用 robots.txt 进行屏蔽 编入索引。如需了解详情,请参阅 robots.txt 简介

  • 如果您打算使用高级网站索引编制功能,请执行以下操作: 必须能够验证网址格式 数据存储区

  • 使用结构化数据进行高级网站索引编制中所述,将 meta 标记和 PageMap 形式的结构化数据添加到数据存储区架构中,以丰富索引。

如需创建数据存储区,请参阅创建搜索数据存储区创建推荐数据存储区

非结构化数据

Vertex AI Search 支持对 HTML、嵌入文本的 PDF 和 TXT 格式的文档进行搜索。预览版支持 PPTX 和 DOCX 格式。

您可以从 Cloud Storage 中导入文档 存储桶。您可以使用 Google Cloud 控制台、ImportDocuments 方法或通过 CRUD 方法进行流式提取来导入数据。如需了解 API 参考文档信息,请参阅 DocumentServicedocuments

下表列出了不同配置下每种文件类型的文件大小限制(如需了解详情,请参阅解析和分块文档)。您一次最多可以导入 10 万个文件。

文件类型 默认导入 使用布局感知型文档分块功能导入 使用布局解析器导入
基于文本的文件,例如 HTML、TXT、JSON、XHTML 和 XML &lt;2.5 MB < 10 MB &lt;10 MB
PPTX、DOCX 和 XLSX &lt;200 MB 小于 200 MB &lt;200 MB
PDF 小于 200 MB 小于 200 MB &lt;40 MB

如果您打算在非结构化数据中添加嵌入,请参阅使用自定义嵌入

如果您有无法搜索到的 PDF(扫描的 PDF 或图片中包含文字的 PDF、 例如信息图),我们建议您开启光学字符识别功能 创建数据存储区期间的 (OCR) 处理。这样, Vertex AI Search 可提取文本块和 表格。如果您有可搜索的 PDF,其中大部分内容是机器可读的 且包含许多表格,则可以考虑使用 启用机器可读文本选项,以便改进检测和 解析。如需了解详情,请参阅解析和分块文档

如果您想使用 Vertex AI Search 进行检索增强生成 (RAG),请在创建数据存储区时开启文档分块。如需了解详情,请参阅解析和分块文档

您可以从以下来源导入非结构化数据:

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 存储桶中, 提供的参数

您的非结构化文档可以与 或其他元数据

元数据文件必须是 JSON 行或 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 字段指向 文档。

下面是一个非结构化文档的 NDJSON 元数据文件示例。在 在此示例中,元数据文件的每一行都指向一个 PDF 文档, 包含该文档的元数据。前两行使用 jsonData 和 后两行使用 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",
    "mode": "NULLABLE",
    "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 Agent Builder 中将 Google Identity 设置为身份提供方。如需了解如何设置访问权限控制,请参阅使用数据源访问权限控制

如需创建数据存储区,请参阅创建搜索数据存储区

结构化数据

根据您计划使用的导入方法准备数据。如果您 来注入媒体数据,另请参阅 结构化媒体数据

您可以从以下来源导入结构化数据:

从 BigQuery 或 Cloud Storage 导入结构化数据时, 您可以选择导入带有元数据的数据(带元数据的结构化数据也称为增强型结构化数据。)

BigQuery

您可以从 BigQuery 数据集导入结构化数据。

系统会自动检测您的架构。导入后,Google 建议您 修改自动检测到的架构以映射标题等关键属性。如果您 使用 API 而不是 Google Cloud 控制台导入,您可以选择 以 JSON 对象形式提供自己的架构。如需了解详情,请参阅 提供或自动检测架构

有关公开提供的结构化数据的示例,请参阅 BigQuery 公共数据集

如果您打算在结构化数据中包含嵌入,请参阅 使用自定义嵌入

如果您选择导入包含元数据的结构化数据,则会在 BigQuery 表:

  • 用于标识文档的 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 行或 NDJSON 格式。每个文件的大小不得超过 2 GB。您最多可以导入 100 个文件 。

如需查看公开提供的结构化数据的示例,请参阅 Cloud Storage 中的文件夹,其中包含 NDJSON 文件:

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

如果您打算在结构化数据中包含嵌入,请参阅 使用自定义嵌入

下面是一个结构化数据的 NDJSON 元数据文件示例。该文件中的每一行代表一个文档,由一组字段组成。

{"hotel_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"]}
{"hotel_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"]}
{"hotel_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 文档或对象。

Google 建议您以 JSON 对象的形式提供自己的架构,以便获得更好的结果。如果您未提供自己的架构,系统会自动检测架构。更新后 我们建议您修改自动检测的架构,以映射键 属性(例如标题)。如需了解详情,请参阅提供或自动检测架构

如果您打算在结构化数据中包含嵌入,请参阅 使用自定义嵌入

如需创建数据存储区,请参阅创建搜索数据存储区创建推荐数据存储区

结构化媒体数据

如果您打算注入结构化媒体数据(例如视频、新闻或音乐), 请查看以下内容:

第三方数据源

从第三方数据源提取数据是一项具有许可名单功能的预览版功能。

通用搜索支持第三方数据源连接。

连接第三方数据源后,系统会先提取数据,然后按照您指定的频率将数据同步到 Vertex AI Search。

在设置数据源连接之前,您必须为数据源设置访问权限控制。如需了解如何设置访问权限控制,请参阅使用数据源访问权限控制

如需了解连接数据源所需的凭据,请参阅 连接您计划从中注入的第三方数据源:

Healthcare FHIR 数据

如果您计划从 Cloud Healthcare API 提取 FHIR 数据,请确保:

  • 位置:源 FHIR 存储区必须位于 Cloud Healthcare API 数据集中, 在 us-central1useu 位置。如需了解详情,请参阅 在 Cloud Healthcare API 中创建和管理数据集
  • FHIR 存储区类型:来源 FHIR 存储区必须是 R4 数据存储区。您可以通过列出数据集中的 FHIR 存储区来检查 FHIR 存储区的版本。如需创建 FHIR R4 存储区,请参阅创建 FHIR 存储区
  • 导入配额:来源 FHIR 存储区中的 FHIR 资源数量不得超过 100 万。 如果 FHIR 资源超过 100 万个,则在达到此限制后,导入过程会停止。如需了解详情,请参阅配额和限制
  • DocumentReference 资源中引用的文件必须为 PDF、RTF、 或存储在 Cloud Storage 中的图片文件 指向参考文件的链接必须位于 content[].attachment.url 字段中 资源(采用标准 Cloud Storage 路径格式): gs://BUCKET_NAME/PATH_TO_REFERENCED_FILE
  • 查看 Vertex AI Search 支持的 FHIR R4 资源列表。如需了解详情,请参阅 Healthcare FHIR R4 数据架构参考文档