你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注释
Azure AI 搜索可通过Azure门户、REST API 和Azure SDK获取。 它也是 Foundry IQ 的基础;Foundry IQ 是一个托管式知识层,可将企业内容转化为供 Microsoft Foundry 门户中的智能体使用的、可复用且具备权限感知能力的知识库。
在本快速入门中,你将了解如何使用 Search explorer(Azure 门户中的内置查询工具)针对Azure AI 搜索索引运行查询。 使用此工具测试查询或筛选表达式,或确认索引中是否存在内容。
本快速入门使用现有的索引来演示搜索浏览器。
先决条件
具有活动订阅的Azure帐户。 免费创建帐户。
一个 Azure AI 搜索 服务。 创建服务或在当前订阅中查找现有服务。 对于这个快速入门指南,您可以使用免费服务。
本快速入门使用 hotels-sample 索引。 按照 本快速入门 中的说明创建索引。
启动搜索浏览器
在 Azure 门户 中转到你的搜索服务。
在左窗格中,选择“ 概述”。
在命令栏上,选择 “搜索资源管理器”。
或者,选择索引页上的 “搜索资源管理器 ”选项卡。
三种查询方式
在搜索资源管理器中查询有三种方法:
查询视图提供默认搜索栏。 它接受包含布尔值的空查询或自由文本查询,例如
ocean view + parking。图像视图提供了一个窗口,用于浏览或拖放 PNG、JPG 或 JPEG 文件。 除非索引具有 图像向量化器和等效技能,否则此视图不可用。
JSON 视图支持参数化查询。 筛选器、orderby、select、count、searchFields 和所有其他参数都必须在 JSON 视图中设置。
示例:图像查询
搜索资源管理器通过图像视图接受图像作为查询输入,这需要使用受支持的矢量化器技能组合。 有关详细信息,请参阅 在搜索索引中配置向量器。
hotels-sample 索引未配置用于图像矢量化。 如果要运行图像查询,请根据 Quickstart:Azure 门户中的矢量搜索创建索引。 本快速入门依赖于基于文本的示例数据,因此必须使用包含图像的文档。
若要运行图像查询,请选择或拖动图像到搜索区域,然后选择“ 搜索”。 搜索资源管理器向量化图像,并将矢量发送到搜索引擎进行查询执行。 搜索引擎返回与输入图像完全相似的文档,最多返回指定的 k 结果数。
示例:JSON 查询
下面是可以使用搜索资源管理器运行的 JSON 查询示例。 若要遵循这些示例,请切换到 JSON 视图。 可以将每个 JSON 示例粘贴到文本区域中。
提示
JSON 视图支持 IntelliSense 功能,用于补全参数名。 将光标置于 JSON 视图中,并输入空格字符以查看所有查询参数的列表。 还可以输入字母,例如 s,仅查看以该字母开头的查询参数。
Intellisense 不会排除无效参数,因此请使用最佳判断。
运行未指定的查询
在搜索资源管理器中,POST 请求在内部使用 Documents - Search Post (REST API)进行表述,响应返回为详细 JSON 文档。
若要首次查看内容,请选择“ 搜索 ”,无需提供任何术语,执行空搜索。 空搜索作为第一个查询很有用,因为它返回整个文档,以便可以查看文档组合。 在空搜索中,没有搜索分数,文档按任意顺序返回("@search.score": 1 对于所有文档)。 默认情况下,每个搜索请求返回 50 个文档。
添加 "count": true 以获取索引中找到的匹配项数。 在空搜索中,计数是指索引中的文档总数。 限定搜索中,与查询输入匹配的文档数量。 回想一下,服务默认返回前 50 个匹配项,因此计数可能指示索引中的匹配项数大于结果中返回的内容。
空搜索的等效语法为 * 或 "search": "*"。
{
"search": "*",
"count": true
}
结果
运行自由文本查询
使用或不带运算符的自由格式搜索可用于模拟从自定义应用发送到Azure AI 搜索的用户定义查询。 仅对索引中标记为可搜索的字段进行匹配扫描。
不需要用于自由文本查询的 JSON 视图,但我们以 JSON 形式提供该视图,以便与本文中的其他示例保持一致。
请注意,提供搜索条件(如查询词或表达式)时,搜索排名将发挥作用。 下面的示例演示了一个自由文本搜索。
@search.score这是使用默认评分算法为匹配计算的相关性分数。
{
"search": "activities `outdoor pool` restaurant OR continental breakfast"
}
结果
可以使用 Ctrl-F 在结果中搜索特定感兴趣的术语。
限制搜索结果中的字段
添加 "select" 以将结果限制到显式命名的字段,以便在 搜索资源管理器中获取更多可读输出。 只有索引中作为可检索属性的字段才会显示在结果中。
{
"search": "activities `outdoor pool` restaurant OR continental breakfast",
"count": true,
"select": "HotelId, HotelName, Tags, Description"
}
结果
返回下一批结果
Azure AI 搜索根据搜索排名返回前 50 个匹配项。 酒店示例索引只有 50 家酒店,因此我们使用较小的数字来说明分页操作。 若要获取下一组匹配的文档,请追加 "top": 20 和 "skip": 10 并将结果集增加到 20 个文档(默认值为 50,最大值为 1000),跳过前 10 个文档。 可以检查文档密钥 (HotelId) 来标识文档。
回想一下,需要提供搜索条件(如查询词或表达式),以获取排名结果。 搜索分数随搜索结果中搜索的深入而降低。
{
"search": "activities `outdoor pool` restaurant OR continental breakfast",
"count": true,
"select": "HotelId, HotelName, Tags, Description",
"top": 20,
"skip": 10
}
结果
筛选表达式(大于、小于、等于)
使用 filter 参数指定包含或排除条件。 字段必须在索引中被标记为可筛选。 此示例搜索评分大于四的项目:
{
"search": "activities `outdoor pool` restaurant OR continental breakfast",
"count": true,
"select": "HotelId, HotelName, Tags, Description, Rating",
"filter": "Rating gt 4"
}
结果
对结果进行排序
添加到 orderby 按搜索分数以外的其他字段对结果进行排序。 字段必须在索引中被归为可排序的。 在筛选的值相同(例如,相同价格)的情况下,订单是任意的,但你可以添加更多条件进行更深入的排序。 下面是一个示例表达式,可用于测试此表达式:
{
"search": "activities `outdoor pool` restaurant OR continental breakfast",
"count": true,
"select": "HotelId, HotelName, Tags, Description, Rating, LastRenovationDate",
"filter": "Rating gt 4",
"orderby": "LastRenovationDate desc"
}
结果
外卖
在本快速入门中,你使用 搜索资源管理器 通过 REST API 查询索引。
结果以详细 JSON 文档的形式返回,以便你可以在整个文档中查看每个文档的构造和内容。
select查询表达式中的参数限制返回哪些字段。搜索结果由索引中作为可检索属性的所有字段组成。 选择“ 字段 ”选项卡以查看属性。
关键字搜索类似于在商业 Web 浏览器中输入的内容,可用于测试最终用户体验。 例如,假设酒店示例索引,可以输入
"activities 'outdoor pool' restaurant OR continental breakfast",然后使用 Ctrl-F 在搜索结果中查找术语。查询和筛选表达式在Azure AI 搜索实现的语法中阐明。 默认语法是简单语法,但可以选择使用完整的 Lucene 进行更强大的查询。 筛选器表达式 在 OData 语法中阐明。
清理资源
当你在自己的订阅中工作时,项目结束后删除不再需要的资源是一个好习惯。 让资源保持运行状态会耗费成本。
在Azure门户中,从左窗格中选择“所有资源或资源组以查找和管理资源。 可以单独删除资源,也可以删除资源组以一次性删除所有资源。
如果使用免费搜索服务,请记住,限制为三个索引、索引器和数据源。 可以 删除门户中的各个项 ,以保持在限制之下。
下一步
若要了解有关查询结构和语法的详细信息,请使用 REST 客户端创建使用 REST API 更多部分的查询表达式。 文档 - 搜索帖子 (REST API)对于学习和探索特别有用。