STRUCTURED_QUERY_RESOLVE_OPTION 枚举 (structuredquery.h)
用于将数据解析为条件树的选项。
语法
typedef enum STRUCTURED_QUERY_RESOLVE_OPTION {
SQRO_DEFAULT = 0,
SQRO_DONT_RESOLVE_DATETIME = 0x1,
SQRO_ALWAYS_ONE_INTERVAL = 0x2,
SQRO_DONT_SIMPLIFY_CONDITION_TREES = 0x4,
SQRO_DONT_MAP_RELATIONS = 0x8,
SQRO_DONT_RESOLVE_RANGES = 0x10,
SQRO_DONT_REMOVE_UNRESTRICTED_KEYWORDS = 0x20,
SQRO_DONT_SPLIT_WORDS = 0x40,
SQRO_IGNORE_PHRASE_ORDER = 0x80,
SQRO_ADD_VALUE_TYPE_FOR_PLAIN_VALUES = 0x100,
SQRO_ADD_ROBUST_ITEM_NAME = 0x200
} ;
常量
SQRO_DEFAULT 值: 0 Windows 7 及更高版本。 默认标志。 |
SQRO_DONT_RESOLVE_DATETIME 值: 0x1 除非设置了此标志,否则 pConditionTree 中的任何相对日期/时间表达式都将替换为已根据 pstReferenceTime 指向的引用日期/时间解析的绝对日期/时间范围。 例如,如果 AQS 查询包含相对日期/时间表达式“date:this month”,并且引用日期/时间为 9/19/2006 10:28:33, 解析的条件树将包含一个日期/时间范围,从 9/1/2006 00:00:00 开始,到 2006/10/1 00:00:00 结束, (UTC 时区) 。 |
SQRO_ALWAYS_ONE_INTERVAL 值: 0x2 除非设置了此标志,否则解析相对日期/时间表达式可能会导致多个间隔的 OR 。 例如,如果 AQS 查询包含“date:Monday”,并且引用日期/时间是 9/19/2006 10:28:33 (星期二) , 解析的条件树将包含三个 24 小时范围的 OR ,对应于 9/11/2006、9/18/2006 和 9/25/2006 的星期一,因为不清楚引用了哪个星期一。 如果设置了此标志,则对于此示例,结果将始终为单个日期/时间范围 (,这将是一个日期/时间范围,从 9/18/2006 00:00:00 到 2006/9/19 00:00:00) 结束。 |
SQRO_DONT_SIMPLIFY_CONDITION_TREES 值: 0x4 除非设置了此标志,否则生成的条件树将应用任何可能的简化。 |
SQRO_DONT_MAP_RELATIONS 值: 0x8 除非此标志为 true,否则具有映射到多个属性的虚拟属性的叶节点将替换为包含实际属性的叶节点的 OR 。 例如,AQS 查询“to:Bill”可能会导致一个叶节点,其中名为 System.StructuredQuery.Virtual.To 的属性实际上映射到两个属性 System.Message.ToAddress 和 System.Message.ToName ,因此解析的条件树将具有一个在两个属性中查找“Bill”的 OR 。 |
SQRO_DONT_RESOLVE_RANGES 值: 0x10 由日期/时间表达式(如“20..40”)生成的范围首先解析为具有 VT_UNKNOWN 值的叶节点,其中 punkVal 成员实现 IInterval 接口。 除非设置此标志,否则返回的条件树将进一步解析为简单比较(例如COP_GREATERTHANOREQUAL和COP_LESSTHAN)的 AND。 例如,对于针对 2006/9/19 10:28:33 解析的 AQS 查询“date:this month”, 如果未设置此标志,则生成的条件树为 System.ItemDate COP_GREATERTHANOREQUAL 9/1/2006 00:00:00 和 System.ItemDate COP_LESSTHAN 10/1/2006 00:00:00。 如果设置了此标志,则生成的条件树将 System.ItemDate 与 IInterval 关联,以便其 IInterval::GetLimits 方法返回 ILK_EXPLICIT_INCLUDED,9/1/2006 00:00:00, ILK_EXPLICIT_EXCLUDED 和 10/1/2006 00:00:00。 |
SQRO_DONT_REMOVE_UNRESTRICTED_KEYWORDS 值: 0x20 无限制关键字 (keyword) 是一种与完成条件的值不关联的关键字 (keyword) 。 例如,在以下 AQS 查询中,表示“From”的属性被视为不受限制的关键字 (keyword) :“Kind:email Subject:”“我的简历”发件人:”。 如果设置了此标志,则此类属性将作为叶节点存在于生成的条件树中,该叶节点具有 COP_IMPLICIT 操作、空字符串值和语义类型 System.StructuredQueryType.Value。 否则,它将完全删除。 |
SQRO_DONT_SPLIT_WORDS 值: 0x40 如果设置了此标志,则一组未用空格分隔的单词将保存在单个叶节点中。 如果未设置此标志,则组将分解为单独的叶节点。 如果生成的树将由应执行任何其他断字的代码进一步处理,则应用程序可能需要在解析条件树时设置此标志。 |
SQRO_IGNORE_PHRASE_ORDER 值: 0x80 如果 AQS 查询中的短语括在双引号中,则该短语中的单词将进入单个叶节点 (而不考虑是否) 设置 SQRO_DONT_SPLIT_WORDS ,除非设置了此标志,在这种情况下,它们最终位于单独的叶节点中,其顺序不再重要。 如果应用程序无法正确处理包含多个单词的叶节点,则可以设置此标志。 |
SQRO_ADD_VALUE_TYPE_FOR_PLAIN_VALUES 值: 0x100 |
SQRO_ADD_ROBUST_ITEM_NAME 值: 0x200 解决断字符中的已知问题,根据需要在 PKEY_ItemNameDisplay 添加条件。 |
注解
STRUCTURED_QUERY_RESOLVE_OPTION类型在 StructuredQuery.h 中定义,如下所示。
typedef int STRUCTURED_QUERY_RESOLVE_OPTION;
要求
最低受支持的客户端 | 具有 SP2、Windows Vista、Windows 7 的 Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | structuredquery.h |
可再发行组件 | Windows 桌面搜索 (WDS) 3.0 |