你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:在 Azure 门户中使用搜索浏览器来运行查询

在本快速入门中,你将学习如何使用 Azure 门户中的内置查询工具 搜索资源管理器,以在 Azure AI 搜索索引上运行查询。 使用它来测试查询或筛选表达式,或确认索引中是否存在内容。

本快速入门使用现有索引来演示搜索浏览器。

先决条件

  • 具有活动订阅的 Azure 帐户。 免费创建帐户

  • Azure AI 搜索服务。 创建服务或在当前订阅中查找现有服务。 对于这个快速入门,您可以使用免费服务。

  • 本快速入门使用 realestate-us-sample 索引。 若要创建索引,请运行 导入数据向导,选择内置示例数据,并使用所有默认值单步执行向导。

    导入数据向导中提供的示例数据集的屏幕截图。

启动搜索资源管理器

  1. Azure 门户中,找到搜索服务并打开 “概述 ”页。

  2. 在命令栏上,选择 搜索资源管理器

    门户中搜索资源管理器命令的屏幕截图。

    或者,选择打开的索引上的 搜索浏览器 选项卡。

    “搜索资源管理器”选项卡的屏幕截图。

查询三种方式

在搜索资源管理器中查询有三种方法:

  • 查询视图提供了默认搜索栏。 它接受包含布尔值的空查询或自由文本查询,例如 seattle condo + parking

  • 图像视图提供了一个窗口,用于浏览或拖放 PNG、JPG 或 JPEG 文件。 除非索引具有 图像向量化器和等效技能,否则此视图不可用。

  • JSON 视图支持参数化查询。 Filters、orderby、select、count、searchFields 和所有其他参数都必须在 JSON 视图中设置。

    用于在搜索资源管理器中查询的三个视图的屏幕截图。

示例:图像查询

搜索探索器通过 图像视图接受图像作为查询输入,这要求使用受支持的向量化器-技能组。 有关详细信息,请参阅 在搜索索引中配置向量器

没有为图像矢量化配置 realestate-us-sample 索引。 若要运行映像查询,请创建索引,如 快速入门:Azure 门户中的矢量搜索。 本快速入门依赖于基于文本的示例数据,因此必须使用包含图像的文档。

若要运行图像查询,请选择或拖动图像到搜索区域,然后选择“ 搜索”。 搜索资源管理器向量化图像,并将矢量发送到搜索引擎进行查询执行。 搜索引擎返回与输入图像完全相似的文档,最多返回指定的 k 结果数。

图像搜索搜索结果的屏幕截图。

示例:JSON 查询

下面是可以使用搜索资源管理器运行的 JSON 查询示例。 若要遵循这些示例,请切换到 JSON 视图。 可以将每个 JSON 示例粘贴到文本区域中。

提示

JSON 视图提供 IntelliSense 功能,用于补全参数名。 将光标置于 JSON 视图中并键入空格字符以查看所有查询参数。 还可以键入字母(如“s”)来仅查看以该字母开头的查询参数。 Intellisense 不会排除无效参数,因此请使用最佳判断。

运行未指定的查询

在搜索浏览器中,POST 请求是使用搜索 POST REST API 在内部制定的,响应以详细的 JSON 文档的形式返回。

若要首次查看内容,请选择“ 搜索 ”,无需提供任何术语,执行空搜索。 空搜索作为第一个查询十分有用,因为它返回全部文档,以便查看文档组合。 空搜索没有搜索分数,按任意顺序返回文档(所有文档都为 "@search.score": 1)。 默认情况下,搜索请求中会返回 50 个文档。

空搜索的等效语法是 *"search": "*"

{
   "search": "*",
   "count": true
}

结果

未限定或空查询示例的屏幕截图。

运行自由文本查询

具有或不带运算符的自由格式搜索可用于模拟从自定义应用发送到 Azure AI 搜索的用户定义查询。 只会扫描在索引定义中将其属性设置为“可搜索”的字段来查找匹配项。

对于自由文本查询,不需要 JSON 视图,但我们以 JSON 形式提供它,以便与本文中的其他示例保持一致。

请注意,如果提供了搜索条件(例如查询词或表达式),则会应用搜索排名。 以下示例对自定义文本搜索进行了说明。 “@search.score”是使用默认评分算法为匹配项计算的相关性分数。

{
    "search": "Seattle townhouse `Lake Washington` miele OR thermador appliance"
}

结果

可以使用 Ctrl-F 在结果中搜索感兴趣的特定字词。

自由文本查询示例的屏幕截图。

匹配文档计数

添加 "count": true 以获取在索引中找到的匹配项数。 在空搜索中,计数是指索引中的文档总数。 在限定搜索中,计数是与查询输入匹配的文档数。 回想一下,默认情况下,服务返回前 50 个匹配项,因此计数可能指示索引中的匹配项多于结果中返回的匹配项。

{
    "search": "Seattle townhouse `Lake Washington` miele OR thermador appliance",
    "count": true
}

结果

计数示例的屏幕截图。

限制搜索结果中的字段

添加 "select"`,将结果限制为显式命名的字段,以便在“搜索浏览器”中获得可读性更强的输出。 仅搜索索引中标记为“可检索”的字段才可显示在结果中。

{
   "search": "seattle condo",
   "count": true,
   "select": "listingId, beds, baths, description, street, city, price"
}

结果

搜索结果示例中限制字段的屏幕截图。

返回下一批结果

Azure AI 搜索根据搜索排名返回前 50 个匹配项。 若要获取下一组匹配的文档,请附加 "top": 100"skip": 50,这会将结果集增加为 100 个文档(默认值为 50,最大值为 1000)并跳过前 50 个文档。 可以通过查看文档键 (listingID) 来识别文档。

前面提到,需要提供搜索条件,例如查询词或表达式,以便获得排列好的结果。 请注意,搜索分数随搜索结果中搜索的深入而降低。

{
   "search": "seattle condo",
   "count": true,
   "select": "listingId, beds, baths, description, street, city, price",
   "top": 100,
   "skip": 50
}

结果

返回下一批搜索结果示例的屏幕截图。

筛选表达式(大于、小于、等于)

使用 filter 参数指定包含或排除条件。 必须在索引中将此字段的属性设置为“可筛选”。 此示例搜索大于 3 间的卧室:

{
    "search": "seattle condo",
    "count": true,
    "select": "listingId, beds, baths, description",
    "filter": "beds gt 3"
}

结果

筛选器示例的屏幕截图。

对结果进行排序

添加 orderby,按搜索分数之外的其他字段对结果排序。 必须在索引中将此字段的属性设置为“可排序”。 在筛选的值相同(例如,相同价格)的情况下,订单是任意的,但可以添加更多条件进行更深入的排序。 可用于测试此功能的示例表达式如下所示:

{
    "search": "seattle condo",
    "count": true,
    "select": "listingId, price, beds, baths, description",
    "filter": "beds gt 3",
    "orderby": "price asc"
}

结果

排序示例的屏幕截图。

要点

在本快速入门中,你使用“搜索浏览器”通过 REST API 查询了一个索引。

  • 结果会作为详细的 JSON 文档返回,以便可以完整地查看文档的构建情况和内容。 查询表达式中的 select 参数可限制返回哪些字段。

  • 搜索结果由标记为在索引中“可检索”的所有字段构成。 选择相邻“字段”选项卡以查看属性。

  • 关键字搜索类似于在商用 Web 浏览器中输入的内容,可用于测试最终用户体验。 例如,假设有一个内置的房地产示例索引,可以输入“华盛顿湖西雅图公寓”,再使用 Ctrl-F 在搜索结果中查找字词。

  • 查询和筛选表达式使用 Azure AI 搜索实现的语法来表达。 默认为简单语法,但可选择使用完整 Lucene 进行更强大的查询。 筛选表达式以 OData 语法表达。

清理资源

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

你可以在 Azure 门户中查找和管理资源,只需使用左侧导航窗格中的“所有资源”或“资源组”链接即可。

如果使用的是免费服务,请记住只能设置三个索引、索引器和数据源。 可以在 Azure 门户中删除单个项目,以不超出此限制。

后续步骤

若要详细了解查询结构和语法,请使用 REST 客户端来创建可利用该 API 的更多部分的查询表达式。 搜索 POST REST API 对于学习和探索特别有用。