使用 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. 选择“下一步”。

    注释

    如果数据发生更改,并且需要使索引保持最新状态,可以选择调度管道。 对于本例,你将导入一次数据。

创建源链接服务

  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 文档,这意味着无法映射客户的所有电话号码。 仅映射了第一个电话号码。