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

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

在本快速入门中,将要了解如何使用“搜索浏览器”,这是 Azure 门户中的一种内置查询工具,用于针对 Azure 认知搜索中的搜索索引运行查询。 利用此工具,可以轻松学习查询语法,测试查询或筛选器表达式,或者通过验证索引中是否存在较新的内容来确认数据刷新。

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

先决条件

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

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

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

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

    “导入数据”向导中可用的示例数据集的屏幕截图。

启动搜索资源管理器

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

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

    门户中的“搜索浏览器”命令

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

    “搜索浏览器”选项卡

未指定查询

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

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

空搜索的等效语法是 *search=*

search=*

结果

不合格查询或空查询示例

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

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

Seattle apartment "Lake Washington" miele OR thermador appliance

结果

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

自由文本查询示例

匹配文档计数

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

$count=true

结果

索引中的匹配文档计数

限制搜索结果中的字段

添加 $select,将结果限制为显式命名的字段,以便在“搜索浏览器”中获得可读性更强的输出。 若要在查询中保留前面提到的参数,请使用 & 分隔每个参数。

search=seattle condo&$select=listingId,beds,baths,description,street,city,price&$count=true

结果

限制搜索结果中的字段

返回下一批结果

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

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

search=seattle condo&$select=listingId,beds,baths,description,street,city,price&$count=true&$top=100&$skip=50

结果

返回下一批搜索结果

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

如果要指定精确条件搜索,而不是进行自定义文本搜索,请使用 $filter 参数。 必须在索引中将此字段的属性设置为“可筛选”。 此示例搜索大于 3 间的卧室:

search=seattle condo&$filter=beds gt 3&$count=true

结果

按条件筛选

对结果进行排序

添加 $orderby,按搜索分数之外的其他字段对结果排序。 必须在索引中将此字段的属性设置为“可排序”。 可用于测试此功能的示例表达式如下所示:

search=seattle condo&$select=listingId,beds,price&$filter=beds gt 3&$count=true&$orderby=price asc

结果

更改排序顺序

“$filter”和“$orderby”表达式都是 OData 构造 。 有关详细信息,请参阅 Filter OData syntax(筛选器 OData 语法)。

要点

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

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

  • 搜索结果由标记为在索引中“可检索”的所有字段构成。 若要在门户中查看字段属性,请选择搜索概述页上“索引”列表中的“realestate-us-sample”,然后打开“字段”选项卡。

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

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

清理资源

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

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

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

后续步骤

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