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

在本 Azure AI 搜索快速入门中,使用导入数据 向导和由 Microsoft 托管的虚构酒店数据构成的内置示例数据源创建第一个搜索索引。 此向导将指导你以无代码方式创建搜索索引的过程,帮助你在几分钟内编写有趣的查询。

该向导在搜索服务(可搜索索引 )上创建多个对象,但还会创建索引器和数据源连接来进行自动数据检索。 在本快速入门结束时,我们将查看每个对象。

注意

导入数据向导包括本快速入门中未涵盖的 OCR、文本翻译和其他 AI 扩充选项。 有关侧重于应用 AI 的类似演练,请参阅快速入门:在 Azure 门户中创建技能组

先决条件

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

检查空间

很多客户开始使用免费服务。 免费层限制为三个索引、三个数据源和三个索引器。 在开始之前,请确保有空间存储额外的项目。 本快速入门将为每个对象创建一个。

检查服务的“概述 > 使用情况”选项卡,以查看已拥有的索引、索引器和数据源数。

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

启动向导

  1. 使用 Azure 帐户登录到 Azure 门户,然后转到 Azure AI 搜索服务。

  2. 在“概述”页上,选择“导入数据”以启动向导

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

创建和加载索引

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

连接到数据源

该向导会创建与 Azure Cosmos DB 上 Azure 托管的示例数据的数据源连接。 此示例数据通过公共终结点进行检索和访问。 无需使用自己的 Azure Cosmos DB 帐户或源文件即可运行本快速入门。

  1. 连接到数据时,展开“数据源”下拉列表,然后选择“示例”

  2. 在内置示例列表中,选择“hotels-sample”。

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

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

跳过认知技能配置

导入数据向导支持创建技能组和对索引进行 AI 扩充

  1. 在本快速入门中,请忽略“添加认知技能”选项卡上的 AI 扩充配置选项。

  2. 选择“跳到: 自定义目标索引”以继续操作。

    屏幕截图显示如何跳到“导入数据”向导中的“自定义目标索引”选项卡。

提示

对 AI 扩充感兴趣? 试用此《快速入门:在 Azure 门户中创建技能组

配置索引

该向导可推断内置酒店示例索引的架构。 请按照以下步骤来配置索引:

  1. 对于“索引名称”(hotels-sample-index) 和“键”字段 (HotelId),接受系统生成的值。

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

  3. 选择“下一步: 创建索引器”以继续操作。

屏幕截图显示了在“导入数据”向导中生成的 hotels-sample 数据源的索引定义。

索引至少需要“索引名称”和“字段”集合。 一个字段必须标记为文档键,用于唯一标识每个文档。 该值始终为字符串。 向导会扫描唯一的字符串字段,并选择一个作为密钥。

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

  • 可检索:查询响应中返回的字段。
  • 可筛选:接受筛选表达式的字段。
  • 可排序:接受 orderby 表达式的字段。
  • 可分面:分面导航结构中使用的字段。
  • 可搜索:全文搜索中使用的字段。 字符串可搜索。 数值字段和布尔字段通常标记为不可搜索。

字符串经过属性化,可检索且可搜索。 整数归属为可检索、可筛选、可排序和可分面。

属性会影响存储。 可筛选字段会消耗额外的存储,但 可检索字段不会。 有关详细信息,请参阅演示属性和建议器的存储意义的示例

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

配置和运行索引器

最后一步是配置并运行索引器。 此对象定义一个可执行过程。 在此步骤中将会创建数据源、索引和索引器。

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

  2. 在本快速入门中,请使用默认选项立即运行索引器一次。 托管数据是静态的,因此没有为其启用更改跟踪。

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

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

监视索引器进度

可以在门户中监视索引器或索引的创建。 服务“概述”页提供了指向 Azure AI 搜索服务中创建的资源的链接。

  1. 在左侧,选择“索引器”

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

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

检查搜索索引结果

  1. 在左侧,选择“索引”

  2. 选择“hotels-sample-index”

    等待 Azure 门户页刷新。 页面上应该会显示索引以及对应的文档计数和存储大小。

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

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

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

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

添加或更改字段

在“字段”选项卡上,可以使用“添加字段”及名称、支持的数据类型和属性创建新字段。

更改现有字段则更为困难。 现有字段在索引中具有物理表示形式,因此它们不可修改,即使在代码中也是如此。 要从根本上更改现有字段,需要创建一个替换原始字段的新字段。 随时可以向索引添加其他构造,例如计分概要文件和 CORS 选项。

若要清楚地了解在索引设计过程中可以和不可以编辑哪些内容,请花点时间查看索引定义选项。 字段列表中变灰的选项指示这些值无法修改或删除。

使用搜索浏览器查询

现在,你已有一个可以使用搜索浏览器来查询的搜索索引。 搜索资源管理器会发送符合 搜索 POST REST API 的 REST 调用。 该工具支持简单查询语法完整的 Lucene 查询语法

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

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

  2. 使用“微型地图”快速跳转到输出的非可见区域

    屏幕截图显示搜索资源管理器工具和缩略图中查询的长篇结果。

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

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

酒店示例索引的示例查询

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

提示

JSON 视图现在支持参数名称补全的 Intellisense。 将光标置于 JSON 视图内,键入空格字符以显示所有查询参数的列表,或键入单个字母(如“s”)以仅显示以“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(即“美国华盛顿州雷德蒙德”)5 公里范围内的酒店。该查询显示匹配项的总数 &$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 应用。 可以在本快速入门中创建的小索引上尝试使用此向导,也可以使用内置的示例数据集之一来获得更丰富的搜索体验。