Windows 搜索 SQL 语法概述

Windows 搜索结构化查询语言 (SQL) 类似于标准 SQL 查询。 它显示在以下两种语法中:

SELECT [TOP <positive integer>] <columns>
FROM [machinename.]SystemIndex
[WHERE <conditions>]
[ORDER BY <column>]
GROUP ON <column> [<ranges>]
[AGGREGATE <aggregate_list>]
[ORDER BY <column> [ASC/DESC]]
OVER (<GROUP ON ...> | <SELECT...>) 

在以下查询示例中,将针对所有页面超过 50 页的文档返回页计数和创建日期值,排序为页计数的升序。

SELECT System.Document.PageCount, System.DateCreated
FROM SystemIndex
WHERE (System.Document.PageCount > 50)
ORDER BY System.Document.PageCount

Windows 搜索查询语法支持许多选项,从而启用更复杂的查询。

下表描述了 SELECT 或 GROUP ON 语句中的每个子句以及支持的功能。

子句 说明
GROUP ON...OVER... 指定如何对查询返回的结果进行分组。 可以指定要分组的区域,并指定用于分组的多个列。 例如,可以将结果分组到一系列文件大小 (大小 < 100,100 <= 大小 < 1000;1000 <= 大小) 和嵌套分组。
SELECT 指定查询返回的列。
FROM 指定要搜索的计算机和目录。
WHERE 指定构成匹配文档的内容。 此子句具有许多选项,可实现对搜索条件的丰富控制。 例如,可以匹配字词、短语、折转词形式、字符串、数值和按位值以及多值数组。 还可以对匹配条件应用统计权重,并将匹配条件与布尔运算符组合在一起。
ORDER BY 指定查询返回的结果的排序顺序。 可以指定多个对结果进行排序的字段,并且可以使用升序或降序排序。

代码示例

WSSQL 代码示例演示如何通过 SQL 在 Microsoft OLE DB 与 Windows 搜索之间进行通信。 WSOleDB 代码示例演示活动模板库 (ATL) OLE DB 对 Windows 搜索应用程序的访问,以及用于从 Windows 搜索检索结果的另外两种方法。 GitHub 上提供了这两个示例。

参考

文字

使用本地化搜索

了解相关性值

属性映射

高级查询语法

概念性

Microsoft Windows 搜索中的 SQL 扩展

SQL 功能在 Microsoft Windows 搜索中不可用

标识符

搜索中的区分大小写

搜索中的音调敏感度

强制转换列的数据类型

数据类型映射