数据准备方式取决于您要导入的数据类型以及您选择的导入方式。首先选择您要导入的数据类型:
如需了解混合搜索(可将多个数据存储区连接到单个通用搜索应用),请参阅关于连接多个数据存储区。
网站数据
为网站数据创建数据存储区时,您需要提供 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 参考文档信息,请参阅 DocumentService
和documents
。
下表列出了不同配置下每种文件类型的文件大小限制(如需了解详情,请参阅解析和分块文档)。您一次最多可以导入 10 万个文件。
文件类型 | 默认导入 | 使用布局感知型文档分块功能导入 | 使用布局解析器导入 |
---|---|---|---|
基于文本的文件,例如 HTML、TXT、JSON、XHTML 和 XML | <2.5 MB | < 10 MB | <10 MB |
PPTX、DOCX 和 XLSX | <200 MB | 小于 200 MB | <200 MB |
小于 200 MB | 小于 200 MB | <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
- 本地 JSON 数据
- 第三方数据源(预览版,搭配使用许可名单)
从 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 对象的形式提供自己的架构,以便获得更好的结果。如果您未提供自己的架构,系统会自动检测架构。更新后 我们建议您修改自动检测的架构,以映射键 属性(例如标题)。如需了解详情,请参阅提供或自动检测架构。
如果您打算在结构化数据中包含嵌入,请参阅 使用自定义嵌入。
如需创建数据存储区,请参阅创建搜索数据存储区或 创建推荐数据存储区。
结构化媒体数据
如果您打算注入结构化媒体数据(例如视频、新闻或音乐), 请查看以下内容:
- 导入方法(BigQuery 或 Cloud Storage)的相关信息:结构化数据
- 媒体文档和数据存储区所需的架构和字段: 媒体文档和数据存储区简介
- 用户事件要求和架构:用户事件简介
- 有关媒体推荐类型的信息: 媒体推荐类型简介
第三方数据源
从第三方数据源提取数据是一项具有许可名单功能的预览版功能。
通用搜索支持第三方数据源连接。
连接第三方数据源后,系统会先提取数据,然后按照您指定的频率将数据同步到 Vertex AI Search。
在设置数据源连接之前,您必须为数据源设置访问权限控制。如需了解如何设置访问权限控制,请参阅使用数据源访问权限控制。
如需了解连接数据源所需的凭据,请参阅 连接您计划从中注入的第三方数据源:
Healthcare FHIR 数据
如果您计划从 Cloud Healthcare API 提取 FHIR 数据,请确保:
- 位置:源 FHIR 存储区必须位于 Cloud Healthcare API 数据集中,
在
us-central1
、us
或eu
位置。如需了解详情,请参阅 在 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 数据架构参考文档。