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

在本快速入门中,学习如何使用“搜索资源浏览器”,这是 Azure 门户中的一种内置查询工具,用于针对 Azure AI 搜索中的搜索索引运行查询。 使用它来测试查询或筛选表达式,或确认索引中是否存在内容。

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

先决条件

开始之前,必须具备以下先决条件:

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

  • Azure AI 搜索服务。 创建服务或在当前订阅下查找现有服务。 可以使用本快速入门的免费服务。

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

    Screenshot of the sample data sets available in the Import data wizard.

启动搜索资源管理器

  1. Azure 门户中,从仪表板打开搜索概述页,或者查找你的服务

  2. 从命令栏打开“搜索浏览器”:

    Screenshot of the Search explorer command in portal.

    或在打开的索引上使用嵌入的“搜索浏览器”选项卡:

    Screenshot of the Search explorer tab.

  3. 若要指定查询参数和 API 版本,请切换到 JSON 视图。 本文中的示例假设是整个 JSON 视图。 可以将本文中的 JSON 示例粘贴到文本区域中。

    Screenshot of the JSON view selector.

未指定查询

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

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

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

{
   "search": "*"
}

结果

Unqualified or empty query example

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

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

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

结果

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

Screenshot of a free text query example.

匹配文档计数

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

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

结果

Screenshot of a count example.

限制搜索结果中的字段

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

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

结果

Screenshot of restrict fields in search results example.

返回下一批结果

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
}

结果

Screenshot of returning next batch of search results example.

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

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

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

结果

Screenshot of a filter example.

对结果进行排序

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

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

结果

Screenshot of a sorting example.

要点

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

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

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

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

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

清理资源

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

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

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

后续步骤

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