Compartir a través de

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

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

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

先决条件

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

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

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

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

启动搜索资源管理器

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

  2. 在左窗格中,选择“ 概述”。

  3. 在命令栏上,选择 “搜索资源管理器”。

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

    或者,选择索引页上的 “搜索资源管理器 ”选项卡。

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

查询三种方式

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

  • 查询视图提供了默认搜索栏。 它接受包含布尔值的空查询或自由文本查询,例如 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 请求使用 文档 - 搜索帖子(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 参数指定包含或排除条件。 字段必须在索引中被标记为可筛选。 示例搜索拥有超过三个卧室的房间:

{
    "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 浏览器中输入的内容,可用于测试最终用户体验。 例如,假设内置 realestate-us-sample 索引,则可以输入 "Seattle apartments lake washington",然后使用 Ctrl-F 在搜索结果中查找字词。

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

清理资源

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

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

请记住,免费搜索服务仅限于三个索引、三个索引器和三个数据源。 若要保持在限制之下,可以在 Azure 门户中单独删除这些项目。

后续步骤

若要了解有关查询结构和语法的详细信息,请使用 REST 客户端创建使用 REST API 更多部分的查询表达式。 文档 - 搜索帖子(REST API) 对于学习和探索特别有用。