STRUCTURED_QUERY_RESOLVE_OPTION structuredquery.h) (列舉
將資料解析成條件樹狀結構的選項。
Syntax
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, 解析的條件樹狀結構會包含日期/時間範圍,從 2006 年 9 月 1 日 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,因為它無法清楚參考星期一。 如果設定此旗標,則結果一律會是單一日期/時間範圍 (在此範例中,它會是從 2006/9/18/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 的分葉節點,因此解析的條件樹狀結構會有 一個 OR ,其會在這兩個屬性中尋找 「Bill」。 |
SQRO_DONT_RESOLVE_RANGES 值: 0x10 從日期/時程表達式所產生的範圍,例如 「20..40」 運算式,會先解析為具有 VT_UNKNOWN 值的分葉節點,其中 punkVal 成員會實作 IInterval 介面。 除非設定此旗標,否則傳回的條件樹狀結構會進一步解析為 AND 的簡單比較,例如 COP_GREATERTHANOREQUAL 和 COP_LESSTHAN。 例如,針對 AQS 查詢「date:this month」 已針對 9/19/2006 10:28:33 解析, 如果未設定此旗標,則產生的條件樹狀目錄是 System.ItemDate 的 ANDCOP_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 不受限制的關鍵字與完成條件的值無關的關鍵字。 例如,在下列 AQS 查詢中,「From」 所表示的屬性會被視為不受限制的關鍵字:「Kind:email Subject:」My Resume「 From:」。 如果設定此旗標,則這類屬性會出現在產生的條件樹狀結構中,做為具有 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;
需求
最低支援的用戶端 | Windows XP 搭配 SP2、Windows Vista、Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | structuredquery.h |
可轉散發套件 | Windows 桌面搜尋 (WDS) 3.0 |