使用 Azure 数据工厂为外部数据源中的数据编制索引

已完成

在组织的搜索解决方案中,添加不驻留在 Azure 中的外部数据是一种常见需求。 Azure AI 搜索非常灵活,因为它允许通过多种方式创建数据并将其推送到索引中。

使用 Azure 数据工厂将数据推送到搜索索引(ADF)

第一种方法是使用 ADF 将数据推送到索引的零代码选项。 ADF 与近 100 个不同的数据存储建立连接。 使用 HTTP 和 REST 等连接器,可以连接无限数量的数据存储。 这些数据存储用作管道中的源或目标(称为复制活动中的接收器)。

Azure AI 搜索索引连接器可用作复制活动中的接收器。

创建 ADF 管道以将数据推送到搜索索引中

使用 ADF 管道将数据推送到搜索索引时需要执行的步骤如下:

  1. 创建包含要在其中存储数据的所有字段的 Azure AI 搜索索引。
  2. 使用复制数据步骤创建管道。
  3. 创建与数据驻留位置的数据源连接。
  4. 创建接收器以连接到搜索索引。
  5. 将源数据中的字段映射到搜索索引。
  6. 运行管道以将数据推送到索引中。

例如,假设你有 JSON 格式的客户数据,这些数据托管在外部。 你想要将这些客户复制到搜索索引中。 JSON 采用以下格式:

{
  "_id": "5fed1b38309495de1bc4f653",
  "firstName": "Sims",
  "lastName": "Arnold",
  "isAlive": false,
  "age": 35,
  "address": {
    "streetAddress": "Sumner Place",
    "city": "Canoochee",
    "state": "Palau",
    "postalCode": 1558
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "+1 (830) 465-2965"
    },
    {
      "type": "home",
      "number": "+1 (889) 439-3632"
    }
  ]
}

创建搜索索引

创建 Azure AI 搜索服务和用于存储此信息的索引。 如果已完成 创建 Azure AI 搜索解决方案 模块,则已了解如何执行此作。 按照步骤创建搜索服务,但在导入数据时停止。 由于将数据推送到索引不需要创建索引器或技能集。

创建索引并添加以下字段和属性:

搜索索引字段定义的屏幕截图。

目前必须首先创建索引,因为 ADF 无法创建索引。

使用 ADF 复制数据工具创建管道

打开 Azure 数据工厂工作室 并选择 Azure 订阅和数据工厂名称。

Azure 数据工厂的屏幕截图,然后选择引入。

  1. 选择 引入

  2. 选择“下一步”。

    注释

    如果数据发生更改,并且需要保留索引 up-to-date,则可以选择计划管道。 对于此示例,你将导入一次数据。

创建源链接服务

  1. 源类型中,选择 HTTP

  2. 连接旁边,选择 + 新建连接

    显示创建 HTTP 链接服务的屏幕截图。

  3. “新建连接”窗格中,在 名称 输入 dataLocation

  4. 基 URL中,输入 JSON 文件所在的位置,在本示例中输入 https://raw.githubusercontent.com/Azure-Samples/azure-sql-db-import-data/main/json/user1.json

  5. 身份验证类型中,选择 匿名

  6. 选择 创建

  7. 选择“下一步”。

    已排队服务的配置页的屏幕截图。

  8. 文件格式中,选择 JSON

  9. 选择“下一步”。

创建目标链接服务

  1. 目标类型中,选择 Azure 搜索。 然后选择“+ 新建连接”

    显示创建指向 AI 搜索的链接服务的屏幕截图。

  2. “新建连接”窗格中,在 名称 输入 search_index

  3. Azure 订阅中,选择 Azure 订阅。

  4. 服务名称中,选择 Azure AI 搜索服务。

  5. 选择 创建

  6. 目标数据存储 窗格中,在 目标中,选择创建的搜索索引。

将源字段映射到目标字段

  1. 选择“下一步”。

    架构映射窗格的屏幕截图。

  2. 如果使用与 JSON 属性 ADF 匹配的字段名称创建了索引,则会自动将 JSON 映射到搜索索引中的字段。

  3. 在上面的示例中,JSON 文档中的三个字段需要映射到索引中的字段。

  4. 映射字段,然后选择“下一步”

  5. 设置 窗格中,在 任务名称中,输入 jsonToSearchIndex

  6. 选择“下一步”。

运行管道以将数据推送到索引中

  1. 摘要 窗格中,选择 下一

    显示管道部署完成的屏幕截图。

  2. 验证并部署管道后,选择 完成

管道已部署并运行。 JSON 文档将添加到搜索索引。 可以使用 Azure 门户并在搜索资源管理器中运行搜索。 应会看到导入的 JSON 数据。

搜索索引中 JSON 数据的屏幕截图。

按照以下步骤作,了解如何将数据推送到索引中。 默认情况下创建的管道会将更新合并到索引中。 如果修改了 JSON 数据并重新运行管道,则会更新搜索索引。 只有在每次运行管道时都希望替换数据时,才能更改写入行为以上传。

将内置 Azure AI 搜索用作链接服务的限制

目前,作为接收器的 Azure AI 搜索链接服务仅支持以下字段:

Azure AI 搜索数据类型
字符串
Int32
Int64
加倍
布尔值
DataTimeOffset

这意味着目前不支持 ComplexType 和数组。 查看上面的 JSON 文档意味着无法映射客户的所有电话号码。 仅映射了第一个电话号码。