ISearchQueryHelper::GenerateSQLFromUserQuery 方法 (searchapi.h)

基于客户端提供的查询字符串生成结构化查询语言 (SQL) 查询,该字符串以高级查询语法 (AQS) 或自然查询语法 (NQS) 表示。

语法

HRESULT GenerateSQLFromUserQuery(
  [in]          LPCWSTR pszQuery,
  [out, retval] LPWSTR  *ppszSQL
);

参数

[in] pszQuery

类型: LPCWSTR

指向以 null 结尾的 Unicode 字符串的指针,其中包含 AQS 或 NQS 中的查询。

[out, retval] ppszSQL

类型: LPWSTR*

根据 pszQuery 参数中的查询接收指向 SQL 查询字符串的指针的地址。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

此方法按以下形式生成 SQL:

SELECT <QuerySelectColumns> FROM <CatalogName that created query helper>
    WHERE <Result of interpreting the User query passed into this function according to QuerySyntax>
          [ AND|OR <QueryWhereRestrictions>]

SQL 生成使用 ISearchQueryHelper::p ut_QueryTermExpansionISearchQueryHelper::p ut_QueryContentPropertiesISearchQueryHelper::p ut_QueryContentLocale 中指定的设置。

ISearchQueryHelper::GenerateSQLFromUserQuery 使用区域设置。 但是, ISearchQueryHelper 不使用区域设置。 因此,对于区域特定设置(如日期格式), 从 ISearchQueryHelper::GenerateSQLFromUserQueryISearchQueryHelper 返回的 SQL 中存在不一致。 例如,如果将日期/时间的区域设置设置为系统区域设置以外的区域设置,例如 en-CA(如果系统区域设置为 en-US),并输入 Toybox -m -i "date:3/7/2008" -Y -s,则返回的 SQL 将有所不同。 ISearchQueryHelper::GenerateSQLFromUserQuery 的 SQL 将在 2008 年 3 月 7 日进行分析,根据 en-CA (查找日期为 7 月 3 日的项目, 2008) 而来自 ISearchQueryHelper 的 SQL 将在 2008 年 3 月 7 日分析 2008 年 3 月 7 日,根据 en-US (查找日期为 2008 年 3 月 7 日的项目) 。

查看 DSearch 代码示例 ,了解如何为静态控制台应用程序创建类,以使用 适用于 ISearchQueryHelper 的 Microsoft.Search.Interop 程序集查询 Windows 搜索。

要求

要求
最低受支持的客户端 Windows XP SP2、Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 SP1 [仅限桌面应用]
目标平台 Windows
标头 searchapi.h
可再发行组件 Windows 桌面搜索 (WDS) 3.0

另请参阅

ISearchQueryHelper

ISearchQueryHelper::get_QuerySyntax

以编程方式查询索引

使用 Windows 搜索 SQL 语法查询索引