在本快速入门中,你将使用 导入数据 向导 和由Microsoft托管的虚构酒店数据的内置示例创建第一个 Azure AI 搜索索引。 向导不需要任何代码来创建索引,有助于在几分钟内编写有趣的查询。
该向导在搜索服务上创建多个对象,包括 可搜索索引、 索引器和数据源连接,以便自动检索数据。 在本快速入门的最后,我们将回顾每个对象。
注意
导入数据向导包括本快速入门中未涵盖的 OCR、文本翻译和其他 AI 扩充选项。 有关侧重于应用 AI 的类似演练,请参阅快速入门:在 Azure 门户中创建技能组。
具有活动订阅的 Azure 帐户。 创建试用版订阅。
熟悉向导。 有关详细信息,请参阅 Azure 门户中的导入数据向导。
本快速入门使用内置示例数据,请确保搜索服务尚未设置好网络访问控制。 Azure 门户控制器使用公共终结点从Microsoft托管数据源中检索数据和元数据。 有关详细信息,请参阅导入向导中的安全连接。
许多客户从免费搜索服务开始,该服务限制为三个索引、三个索引器和三个数据源。 本快速入门将创建每个对象之一,因此在开始之前,请确保为额外的对象留出空间。
在“ 概述 ”选项卡上,选择“ 使用情况 ”以查看当前拥有的索引、索引器和数据源数。
登录到 Azure 门户。
访问您的搜索服务。
在“ 概述 ”选项卡上,选择“ 导入数据 ”以启动向导。
在本部分中,你将在四个步骤中创建和加载索引:
该向导创建与 Azure Cosmos DB 上 Azure 托管的示例数据的数据源连接。 示例数据通过公共终结点进行访问,因此不需要此步骤的 Azure Cosmos DB 帐户或源文件。
连接到示例数据:
在连接到数据页面中,展开数据源下拉列表,然后选择示例。
从内置示例列表中选择 hotels-sample 。
选择“下一步: 添加认知技能(可选)”继续操作。
尽管向导在编制索引期间支持技能组创建和 AI 扩充,但认知技能不在本快速入门的范围内。
若要在向导中跳过此步骤,请执行以下操作:
在 “添加认知技能”上,忽略 AI 扩充配置选项。
选择 “下一步:自定义目标索引 ”以继续。
提示
若要开始使用 AI 扩充,请参阅 快速入门:在 Azure 门户中创建技能集。
该向导推断酒店示例索引的架构。 若要配置索引,请执行以下操作:
接受 索引名称 (hotels-sample-index)和 Key (HotelId)的系统生成值。
对于所有字段属性,接受系统生成的值。
选择“下一步: 创建索引器”以继续操作。
搜索索引至少需要名称和字段集合。 向导将扫描唯一的字符串字段,并将其中一个字段标记为文档键,该键唯一标识索引中的每个文档。
每个字段都有一个名称、数据类型和属性,用于控制字段在索引中的使用方式。 使用复选框启用或禁用以下属性:
特征 | DESCRIPTION | 适用的数据类型 |
---|---|---|
可检索 | 查询响应中返回的字段。 | 字符串和整数 |
可筛选 | 接受筛选器表达式的字段。 | 整数 |
可排序 | 接受 orderby 表达式的字段。 | 整数 |
可分面 | 分面导航结构中使用的字段。 | 整数 |
可搜索 | 全文搜索中使用的字段。 字符串是可搜索的,但数值和布尔字段通常标记为不可搜索。 | 字符串 |
属性以不同的方式影响存储。 例如,可筛选字段使用额外的存储,而可检索字段则不使用。 有关详细信息,请参阅演示属性和建议器的存储意义的示例。
如果需要自动完成或建议查询,可以指定语言分析器或建议器。
最后,配置并运行定义可执行进程的索引器。 此步骤还会创建数据源和索引。
配置并运行索引器:
接受系统生成的索引名称 (hotels-sample-indexer) 值。
对于本快速入门,请使用默认选项立即运行索引器,并仅运行一次。 示例数据是静态的,因此无法启用更改跟踪。
选择 “提交 ”以同时创建并运行索引器。
可以在 Azure 门户中监视索引器的创建和索引。 “ 概述 ”选项卡提供搜索服务中创建的资源的链接。
若要监视索引器的进度,请执行以下操作:
在 Azure 门户中,转到你的搜索服务。
在左窗格中,选择 “索引器”。
更新结果可能需要几分钟时间。 应会看到新创建的索引器,其状态为 “正在进行 ”或 “成功”。 该列表还显示已编制索引的文档数。
在 Azure 门户中,转到你的搜索服务。
在左窗格中,选择 “索引”。
选择“hotels-sample-index”。 如果索引包含零个文档或存储,请等待 Azure 门户刷新。
选择“字段”选项卡以查看索引架构。
检查哪些字段可 筛选 或 可排序 ,以便了解要写入的查询。
在“ 字段 ”选项卡上,可以通过选择 “添加”字段 并指定名称、 支持的数据类型和属性来创建字段。
更改现有字段会更加困难。 现有字段在搜索索引中具有物理表示形式,因此它们不可修改,即使在代码中也是如此。 若要从根本上更改现有字段,必须创建新字段以替换原始字段。 可以随时将其他构造(如计分配置文件和 CORS 选项)添加到索引。
查看索引定义选项,了解在索引设计期间可以和无法编辑的内容。 如果某个选项显示为灰色,则无法修改或删除它。
现在,可以使用 搜索资源管理器查询搜索索引,它发送符合 搜索 POST REST API 的 REST 调用。 此工具支持 简单的查询语法 和 完整的 Lucene 查询语法。
查询搜索索引:
在“搜索资源管理器”选项卡上,输入要搜索的文本。
若要跳转到输出的非可见区域,请使用迷你地图。
要指定语法,请切换到 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
函数可根据指定 Location
和 geography'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"
}
默认语法是 简单的语法,但如果需要模糊搜索、字词提升或正则表达式,请指定 完整的语法。
{
"queryType": "full",
"search": "seatle~",
"select": "HotelId, HotelName,Address/City, Address/StateProvince",
"count": true
}
拼写错误的查询词(例如seatle
而不是Seattle
)在典型的搜索中不会返回匹配项。 queryType=full
参数调用完整的 Lucene 查询分析程序,它支持波形符 (~
) 操作数。 使用这些参数时,查询对指定的关键字执行模糊搜索,并匹配类似但不完全匹配的字词。
花点时间尝试索引上的这些示例查询。 要了解有关查询的详细信息,请参阅《Azure AI 搜索中的查询》。
在自己的订阅中操作时,最好在项目结束时确定是否仍需要那些已创建的资源。 持续运行资源可能会产生费用。 可以逐个删除资源,也可以删除资源组以删除整个资源集。
在 Azure 门户中,可以在左窗格中 的“所有资源 ”或 “资源组 ”下查找和管理服务的资源。
注意
如果使用免费搜索服务,请记住限制为三个索引、三个索引器和三个数据源。 可以在 Azure 门户中删除单个对象,以保持在限制之下。
请尝试使用 Azure 门户向导生成在浏览器中运行的即用型 Web 应用。 在本快速入门中创建的小索引上使用此向导,或使用其中一个内置示例数据集来获得更丰富的搜索体验。