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 上提供了这两个示例。