次の方法で共有


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" が含まれていて、参照日時が 2006 年 9 月 19 日 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" が含まれていて、参照日時が 2006 年 9 月 19 日 10:28:33 (火曜日) の場合、解決された条件ツリーには、2006 年 9 月 11 日の月曜日に対応する 3 つの 24 時間範囲の OR が含まれます。 2006 年 9 月 18 日と 2006 年 9 月 25 日は、どの月曜日が参照されたかが明確でないためです。 このフラグが設定されている場合、結果は常に 1 つの日付/時刻範囲になります (この例では、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のプロパティが実際に 2 つのプロパティと System.Message.ToNameにマップされるリーフ ノードが発生する可能性があるため、解決された条件ツリーには、これら 2 つのプロパティSystem.Message.ToAddressで "Bill" を検索する OR が含まれます。
SQRO_DONT_RESOLVE_RANGES
値: 0x10
日付/時刻式 ("20..40" などの式) から得られる範囲は、まず、punkVal メンバーが IInterval インターフェイスを実装するVT_UNKNOWN値を持つリーフ ノードに解決されます。 このフラグが設定されていない限り、返される条件ツリーは、COP_GREATERTHANOREQUALCOP_LESSTHANなどの単純な比較の AND にさらに解決されます。 たとえば、AQS クエリ "date:this month" が 2006 年 9 月 19 日 10:28:33 に対して解決された場合、 このフラグが設定されていない場合、結果の条件ツリーは System.ItemDate COP_GREATERTHANOREQUAL 9/1/2006 00:00:00 および System.ItemDate COP_LESSTHAN 10/1/2006 00:00:00 の AND になります。 このフラグが設定されている場合、結果の条件ツリーは、IInterval::GetLimits メソッドが ILK_EXPLICIT_INCLUDED、9/1/2006 00:00:00、ILK_EXPLICIT_EXCLUDED、10/1/2006 00:00:00 を返すように、System.ItemDate を IInterval に関連付けます。
SQRO_DONT_REMOVE_UNRESTRICTED_KEYWORDS
値: 0x20
無制限のキーワード (keyword)は、条件を完了する値に関連付けられていないキーワード (keyword)です。 たとえば、次の AQS クエリでは、"From" で示されるプロパティは、"Kind:email Subject:"My Resume" From:" という無制限のキーワード (keyword)と見なされます。 このフラグが設定されている場合、このようなプロパティは、 COP_IMPLICIT 操作、空の文字列値、および System.StructuredQueryType.Value のセマンティック型を持つリーフ ノードとして、結果の条件ツリーに存在します。 それ以外の場合は、完全に削除されます。
SQRO_DONT_SPLIT_WORDS
値: 0x40
このフラグが設定されている場合、空白で区切られない単語のグループは、1 つのリーフ ノードにまとめて保持されます。 このフラグが設定されていない場合、グループは個別のリーフ ノードに分割されます。 結果のツリーが追加の単語区切りを行うコードによってさらに処理される場合は、条件ツリーを解決するときに、アプリケーションでこのフラグを設定できます。
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 (デスクトップ アプリのみ)
Header structuredquery.h
再頒布可能パッケージ Windows デスクトップ検索 (WDS) 3.0

関連項目

CASE_REQUIREMENT