다음을 통해 공유

快速入门:在 Azure 门户创建搜索索引

重要

导入数据(新建)向导现在支持关键字搜索,该关键字搜索以前仅在导入数据向导中可用。 建议使用新向导来改进搜索体验。 有关如何合并向导的详细信息,请参阅 Azure 门户中的导入数据向导

在本快速入门中,你将使用 “导入数据”向导 和有关虚构酒店的示例数据来创建第一个搜索索引。 向导不需要任何代码来创建索引,有助于在几分钟内编写有趣的查询。

该向导在搜索服务上创建多个对象,包括可搜索 索引索引器和数据源连接,以便自动检索数据。 在本快速入门指南结束时,您将检查每个对象。

先决条件

  • 具有活动订阅的 Azure 帐户。 创建试用版订阅

  • Azure AI 搜索服务。 创建服务或在当前订阅中查找现有服务。 可以使用本快速入门的免费服务。

  • 一个 Azure 存储帐户。 在标准性能(常规用途 v2)帐户上使用 Azure Blob 存储或 Azure Data Lake Storage Gen2(具有分层命名空间的存储帐户)。 若要避免带宽费用,请使用与 Azure AI 搜索相同的区域。

检查网络访问权限

对于本快速入门,上述所有资源都必须启用公共访问,以便 Azure 门户节点可以访问它们。 否则,向导将失败。 运行向导后,你可以为集成组件启用防火墙和专用终结点以确保安全。 有关详细信息,请参阅导入向导中的安全连接

检查空间

许多客户从免费搜索服务开始,该服务限制为三个索引、三个索引器和三个数据源。 本快速入门将创建每个对象之一,因此在开始之前,请确保为额外的对象留出空间。

在“ 概述 ”页上,选择“ 使用情况 ”以查看当前拥有的索引、索引器和数据源数。

屏幕截图为 Azure 门户中 Azure AI 搜索服务实例的“概述”页,该页面显示索引、索引器和数据源的数量。

准备示例数据

本快速入门使用包含 50 家虚构酒店元数据的 JSON 文档,但也可以使用自己的文件。

若要为此快速入门准备示例数据,请执行以下操作:

  1. 登录到 Azure 门户 并选择 Azure 存储帐户。

  2. 在左窗格中,选择 “数据存储>容器”。

  3. 创建名为 hotels-sample 的容器。

  4. 示例 JSON 文档 上传到容器。

启动向导

若要启动本快速入门的向导,

  1. 登录到 Azure 门户 并选择搜索服务。

  2. 在“概述”页上,选择“导入数据”(新)。

    显示如何在 Azure 门户中打开新导入向导的屏幕截图。

  3. 选择数据源: Azure Blob 存储Azure Data Lake Storage Gen2

    用于在向导中选择数据源的选项的屏幕截图。

  4. 选择 关键字搜索

    Azure 门户中关键字搜索磁贴的屏幕截图。

创建和加载搜索索引

在本部分中,你将在五个步骤中创建并加载索引。

连接到数据源

Azure AI 搜索需要连接到数据源才能进行内容引入和索引编制。 在这种情况下,数据源是 Azure 存储帐户。

连接到示例数据:

  1. 连接到您的数据 页上,选择您的 Azure 订阅。

  2. 选择存储帐户,然后选择 hotels-sample 容器。

  3. 选择分析模式的 JSON 数组

    Azure 门户中“连接到数据”页的屏幕截图。

  4. 选择“下一步”。

跳过技能配置

该向导支持在编制索引期间创建技能集和AI 扩充,而这些功能都超出了本快速入门的范围。 通过选择 “下一步”跳过此步骤。

提示

有关重点介绍 AI 扩充的类似演练,请参阅 快速入门:在 Azure 门户中创建技能集

配置索引

根据示例酒店数据的结构和内容,向导推断搜索索引的架构。

若要配置索引,请执行以下操作:

  1. 对于以下每个字段,请选择“ 配置”字段,然后设置相应的属性。

    Fields 特性
    HotelId 键,可检索,可筛选,可排序,可搜索
    HotelNameCategory 可检索、可筛选、可排序、可搜索
    DescriptionDescription_fr 可检索
    Tags 可检索、可筛选、可搜索
    ParkingIncludedIsDeletedLastRenovationDateRatingLocation 可检索、可筛选、可排序
    Address.StreetAddressRooms.DescriptionRooms.Description_fr 可检索、可搜索
    Address.CityAddress.StateProvinceAddress.PostalCodeAddress.CountryRooms.TypeRooms.BedOptionsRooms.Tags 可检索、可筛选、可分面、可搜索
    Rooms.BaseRateRooms.SleepsCountRooms.SmokingAllowed 可检索、可筛选、可分面

    显示如何为索引中的字段配置属性的 GIF。

  2. 删除AzureSearch_DocumentKey字段。

  3. 选择“下一步”。

索引至少需要名称和字段集合。 向导将扫描唯一的字符串字段,并将其中一个字段标记为文档键,该键唯一标识索引中的每个文档。

每个字段都有一个名称、数据类型和属性,用于控制字段在索引中的使用方式。 可以启用或禁用以下属性:

特征 DESCRIPTION 适用的数据类型
可检索 查询响应中返回的字段。 字符串和整数
可筛选 接受筛选器表达式的字段。 整数
可排序 接受 orderby 表达式的字段。 整数
可分面 分面导航结构中使用的字段。 整数
可搜索 全文搜索中使用的字段。 字符串是可搜索的,但数值和布尔字段通常标记为不可搜索。 字符串

属性以不同的方式影响存储。 例如,可筛选字段使用额外的存储,而可检索字段则不使用。 有关详细信息,请参阅演示属性和建议器的存储意义的示例

如果需要自动完成或建议查询,可以指定语言分析器建议器

跳过高级设置

该向导提供语义排名和索引计划的高级设置,这些设置超出了本快速入门的范围。 通过选择 “下一步”跳过此步骤。

查看和创建对象

最后一步是在搜索服务上查看配置并创建索引、索引器和数据源。 索引器自动执行从数据源提取内容并将其加载到索引的过程,从而启用关键字搜索。

要查看和创建对象:

  1. 将对象名称前缀更改为 hotels-sample

  2. 查看对象配置。

    Azure 门户中对象配置页的屏幕截图。

    AI 扩充、语义排名器和索引器计划被禁用或设置为其默认值,因为你跳过了其向导步骤。

  3. 选择“ 创建 ”以同时创建对象并运行索引器。

重要

导入数据向导最终将弃用。 导入 数据(新) 向导中提供了大部分功能,我们建议在大多数搜索方案中使用此功能。 有关详细信息,请参阅 Azure 门户中的导入数据向导

在本快速入门中,你将使用 导入数据 向导和虚构酒店数据的内置示例来创建第一个搜索索引。 向导不需要任何代码来创建索引,有助于在几分钟内编写有趣的查询。

该向导在搜索服务上创建多个对象,包括可搜索 索引索引器和数据源连接,以便自动检索数据。 在本快速入门指南结束时,您将检查每个对象。

先决条件

检查网络访问权限

本快速入门使用内置示例数据,请确保搜索服务尚未设置好网络访问控制。 Azure 门户控制器使用公共终结点从Microsoft托管数据源中检索数据和元数据。 有关详细信息,请参阅导入向导中的安全连接

检查空间

许多客户从免费搜索服务开始,该服务限制为三个索引、三个索引器和三个数据源。 本快速入门将创建每个对象之一,因此在开始之前,请确保为额外的对象留出空间。

在“ 概述 ”页上,选择“ 使用情况 ”以查看当前拥有的索引、索引器和数据源数。

屏幕截图为 Azure 门户中 Azure AI 搜索服务实例的“概述”页,该页面显示索引、索引器和数据源的数量。

启动向导

若要启动本快速入门的向导,

  1. 登录到 Azure 门户 并选择搜索服务。

  2. 在“ 概述 ”页上,选择“ 导入数据”。

    屏幕截图显示如何在 Azure 门户中打开“导入数据”向导。

创建和加载搜索索引

在本部分中,你将在四个步骤中创建和加载索引。

连接到数据源

该向导创建与 Azure Cosmos DB 上 Azure 托管的示例数据的数据源连接。 示例数据通过公共终结点进行访问,因此不需要此步骤的 Azure Cosmos DB 帐户或源文件。

连接到示例数据:

  1. “连接到数据 ”页上,选择 “数据源 ”下拉列表,然后选择“ 示例”。

  2. 从内置示例列表中选择 hotels-sample

  3. 选择“下一步:添加认知技能”(可选)。

    显示如何在“导入数据”向导中选择 hotels-sample 数据源的屏幕截图。

跳过技能配置

该向导支持在编制索引期间创建技能集和AI 扩充,而这些功能都超出了本快速入门的范围。 通过选择“ 下一步:自定义目标索引”来跳过此步骤。

提示

有关重点介绍 AI 扩充的类似演练,请参阅 快速入门:在 Azure 门户中创建技能集

配置索引

根据示例酒店数据的结构和内容,向导推断搜索索引的架构。

若要配置索引,请执行以下操作:

  1. 接受索引名称(hotels-sample-index)和键(HotelId)的系统生成值。

  2. 对于所有字段属性,接受系统生成的值。

  3. 选择 “下一步:创建索引器”。

    显示导入数据向导中酒店示例数据源生成的索引定义的屏幕截图。

索引至少需要名称和字段集合。 向导将扫描唯一的字符串字段,并将其中一个字段标记为文档键,该键唯一标识索引中的每个文档。

每个字段都有一个名称、数据类型和属性,用于控制字段在索引中的使用方式。 可以使用复选框启用或禁用以下属性:

特征 DESCRIPTION 适用的数据类型
可检索 查询响应中返回的字段。 字符串和整数
可筛选 接受筛选器表达式的字段。 整数
可排序 接受 orderby 表达式的字段。 整数
可分面 分面导航结构中使用的字段。 整数
可搜索 全文搜索中使用的字段。 字符串是可搜索的,但数值和布尔字段通常标记为不可搜索。 字符串

属性以不同的方式影响存储。 例如,可筛选字段使用额外的存储,而可检索字段则不使用。 有关详细信息,请参阅演示属性和建议器的存储意义的示例

如果需要自动完成或建议查询,可以指定语言分析器建议器

配置和运行索引器

最后一步是配置和运行索引器,它自动执行从数据源提取内容并将其加载到索引的过程。 此步骤还会在搜索服务上创建数据源和索引对象。

配置并运行索引器:

  1. 接受索引器名称(hotels-sample-indexer)的系统生成值。

  2. 接受默认计划选项,以便立即运行索引器一次。 示例数据是静态的,因此无法启用更改跟踪。

  3. 选择 “提交 ”以同时创建并运行索引器。

    显示如何在“导入数据”向导中为 hotels-sample 数据源配置索引器的屏幕截图。

监视索引器进度

可以在 Azure 门户中监视索引器的创建和索引。 “ 概述 ”页提供指向在搜索服务上创建的对象的链接。

若要监视索引器的进度,请执行以下操作:

  1. 在左窗格中,选择 “索引器”。

  2. 在列表中查找 hotels-sample-indexer

    显示 Azure 门户中正在创建索引器的屏幕截图。

    更新结果可能需要几分钟时间。 应会看到新创建的索引器,其状态为 “正在进行 ”或 “成功”。 该列表还显示已编制索引的文档数。

检查搜索索引结果

  1. 在左窗格中,选择 “索引”。

  2. 选择“hotels-sample-index”。 如果索引包含零个文档或存储,请等待 Azure 门户刷新。

    Azure 门户中 Azure AI 搜索服务仪表板上的“索引”列表的屏幕截图。

  3. 选择“字段”选项卡以查看索引架构

  4. 检查哪些字段可 筛选可排序 ,以便了解要写入的查询。

    显示 Azure 门户中 Azure AI 搜索服务中索引的架构定义的屏幕截图。

添加或更改字段

在“ 字段 ”选项卡上,可以通过选择 “添加”字段 并指定名称、 支持的数据类型和属性来创建字段。

更改现有字段会更加困难。 现有字段在搜索索引中具有物理表示形式,因此它们不可修改,即使在代码中也是如此。 若要从根本上更改现有字段,必须创建新字段以替换原始字段。 可以随时将其他构造(如计分配置文件和 CORS 选项)添加到索引。

查看索引定义选项,了解在索引设计期间可以和无法编辑的内容。 如果某个选项显示为灰色,则无法修改或删除它。

使用搜索工具进行查询

现在,可以使用 搜索资源管理器查询搜索索引,它发送符合 文档 - 搜索帖子(REST API)的 REST 调用。 此工具支持 简单的查询语法完整的 Lucene 查询语法

查询搜索索引:

  1. 在“搜索资源管理器”选项卡上,输入要搜索的文本

    显示如何在搜索资源管理器工具中输入和运行查询的屏幕截图。

  2. 若要跳转到输出的非可见区域,请使用迷你地图。

    显示“搜索浏览器”工具和迷你地图中查询的长结果的屏幕截图。

  3. 要指定语法,请切换到 JSON 视图。

    JSON 视图选择器的屏幕截图。

酒店示例索引的示例查询

以下示例假定 JSON 视图和 2024-05-01-preview REST API 版本。

提示

JSON 视图支持 IntelliSense 功能,用于补全参数名。 将光标置于 JSON 视图中,并输入空格字符以查看所有查询参数的列表。 还可以输入字母,例如 s,仅查看以该字母开头的查询参数。

Intellisense 不会排除无效参数,因此请使用最佳判断。

筛选器示例

停车、标记、装修日期、评级和位置是可筛选的。

{
    "search": "beach OR spa",
    "select": "HotelId, HotelName, Description, Rating",
    "count": true,
    "top": 10,
    "filter": "Rating gt 4"
}

默认情况下,布尔筛选器假定为“true”。

{
    "search": "beach OR spa",
    "select": "HotelId, HotelName, Description, Rating",
    "count": true,
    "top": 10,
    "filter": "ParkingIncluded"
}

地理空间搜索基于筛选器。 该 geo.distance 函数可根据指定 Locationgeography'POINT 坐标筛选位置数据的所有结果。 查询在纬度和经度坐标 -122.12 47.67的五公里范围内查找酒店,即“美国华盛顿雷德蒙德”。该查询显示具有酒店名称和地址位置的匹配 &$count=true 项总数。

{
    "search": "*",
    "select": "HotelName, Address/City, Address/StateProvince",
    "count": true,
    "top": 10,
    "filter": "geo.distance(Location, geography'POINT(-122.12 47.67)') le 5"
}

完整的 Lucene 语法示例

默认语法是 简单的语法,但如果需要模糊搜索、字词提升或正则表达式,请指定 完整的语法

{
    "queryType": "full",
    "search": "seatle~",
    "select": "HotelId, HotelName,Address/City, Address/StateProvince",
    "count": true
}

拼写错误的查询词(例如seatle而不是Seattle)在典型的搜索中不会返回匹配项。 queryType=full 参数调用完整的 Lucene 查询分析程序,它支持波形符 (~) 操作数。 使用这些参数时,查询对指定的关键字执行模糊搜索,并匹配类似但不完全匹配的字词。

花点时间尝试索引上的这些示例查询。 有关详细信息,请参阅 Azure AI 搜索中的查询

清理资源

在自己的订阅中操作时,最好在项目结束时确定是否仍需要那些已创建的资源。 持续运行资源可能会产生费用。 可以逐个删除资源,也可以删除资源组以删除整个资源集。

在 Azure 门户中,可以通过从左窗格中选择 “所有资源 ”或 “资源组 ”来查找和管理资源。

注意

如果使用免费搜索服务,请记住限制为三个索引、三个索引器和三个数据源。 可以在 Azure 门户中删除单个对象,以保持在限制之下。

后续步骤

请尝试使用 Azure 门户向导生成在浏览器中运行的即用型 Web 应用。 在本快速入门中创建的小索引上使用此向导,或使用其中一个内置示例数据集来获得更丰富的搜索体验。