Condividi tramite


enumerazione STRUCTURED_QUERY_RESOLVE_OPTION (strutturataquery.h)

Opzioni per la risoluzione dei dati in un albero delle condizioni.

Sintassi

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
} ;

Costanti

 
SQRO_DEFAULT
Valore: 0
Windows 7 e versioni successive. Flag predefinito.
SQRO_DONT_RESOLVE_DATETIME
Valore: 0x1
A meno che questo flag non sia impostato, qualsiasi espressione di data/ora relativa in pConditionTree viene sostituita con un intervallo di data/ora assoluto risolto rispetto alla data/ora di riferimento puntata da pstReferenceTime. Ad esempio, se una query AQS contiene l'espressione data/ora relativa "date:this month" e la data/ora di riferimento era 9/19/2006 10:28:33, l'albero delle condizioni risolte contiene un intervallo di data/ora a partire dal 9/1/2006 00:00:00 e termina al 10/1/2006 00:00:00 (nel fuso orario UTC).
SQRO_ALWAYS_ONE_INTERVAL
Valore: 0x2
A meno che questo flag non sia impostato, la risoluzione di un'espressione di data/ora relativa può comportare un or di diversi intervalli. Ad esempio, se una query AQS contiene "date:Monday" e la data/ora di riferimento era 9/19/2006 10:28:33 (un martedì), l'albero delle condizioni risolte conterrà un OR di tre intervalli di 24 ore corrispondenti ai lunedì del 9/11/2006, 9/18/2006 e 9/25/2006, perché non è chiaro quale lunedì è stato fatto riferimento. Se questo flag è impostato, il risultato sarà sempre un singolo intervallo di data/ora (ad esempio, si tratta di un intervallo di data/ora a partire dal 9/18/2006 00:00:00 e terminando al 9/19/2006 00:00:00).
SQRO_DONT_SIMPLIFY_CONDITION_TREES
Valore: 0x4
A meno che questo flag non sia impostato, l'albero delle condizioni risultante avrà eventuali possibili semplificazioni applicate.
SQRO_DONT_MAP_RELATIONS
Valore: 0x8
A meno che questo flag non sia true, un nodo foglia con una proprietà virtuale che esegue il mapping a diverse proprietà verrà sostituito da un OR di nodi foglia contenenti le proprietà effettive. Ad esempio, la query AQS "to:Bill" può comportare un nodo foglia in cui la proprietà denominata System.StructuredQuery.Virtual.To esegue effettivamente il mapping alle due proprietà System.Message.ToAddress e System.Message.ToName, quindi l'albero delle condizioni risolte avrà un OR che cerca "Bill" in queste due proprietà.
SQRO_DONT_RESOLVE_RANGES
Valore: 0x10
Un intervallo risultante da un'espressione data/ora, un'espressione come "20..40", viene prima risolta in un nodo foglia con un valore VT_UNKNOWN in cui il membro punkVal implementa l'interfaccia IInterval . A meno che questo flag non sia impostato, l'albero delle condizioni restituito sarà stato ulteriormente risolto in un and di semplici confronti, ad esempio COP_GREATERTHANOREQUAL e COP_LESSTHAN. Ad esempio, per una query AQS "date:this month" risolta rispetto al 9/19/2006 10:28:33, se questo flag non è impostato, l'albero delle condizioni risultante è un and di System.ItemDate COP_GREATERTHANOREQUAL 9/1/2006 00:00:00 e System.ItemDate COP_LESSTHAN 10/1/2006 00:00:00. Se questo flag è impostato, l'albero delle condizioni risultante correla System.ItemDate a un oggetto IInterval , in modo che il metodo IInterval::GetLimits restituisce ILK_EXPLICIT_INCLUDED, 9/1/2006 00:00:00, ILK_EXPLICIT_EXCLUDED e 10/1/2006 00:00:00.
SQRO_DONT_REMOVE_UNRESTRICTED_KEYWORDS
Valore: 0x20
Una parola chiave senza restrizioni è una parola chiave che non è associata a un valore che completa la condizione. Nella query AQS seguente, ad esempio, la proprietà denotata da "From" è considerata una parola chiave senza restrizioni: "Kind:email Subject:"My Resume" From:". Se questo flag è impostato, tale proprietà sarà presente nell'albero delle condizioni risultante come nodo foglia con un'operazione di COP_IMPLICIT , un valore stringa vuoto e un tipo semantico di System.StructuredQueryType.Value. In caso contrario, verrà rimosso completamente.
SQRO_DONT_SPLIT_WORDS
Valore: 0x40
Se questo flag è impostato, un gruppo di parole non separate dallo spazio vuoto verrà mantenuto insieme in un singolo nodo foglia. Se questo flag non è impostato, il gruppo verrà suddiviso in nodi foglia separati. Un'applicazione può voler impostare questo flag durante la risoluzione di un albero delle condizioni se l'albero risultante verrà ulteriormente elaborato dal codice che deve eseguire eventuali interruzioni di parole aggiuntive.
SQRO_IGNORE_PHRASE_ORDER
Valore: 0x80
Se una frase in una query AQS è racchiusa tra virgolette doppie, le parole di tale frase vanno in un singolo nodo foglia (indipendentemente dal fatto che SQRO_DONT_SPLIT_WORDS sia impostato) a meno che questo flag non sia impostato, nel qual caso terminano in nodi foglia separati e il relativo ordine non è più importante. Un'applicazione può impostare questo flag se non è in grado di gestire i nodi foglia con più parole correttamente.
SQRO_ADD_VALUE_TYPE_FOR_PLAIN_VALUES
Valore: 0x100
SQRO_ADD_ROBUST_ITEM_NAME
Valore: 0x200
Risolvere i problemi noti nei word breaker, aggiungendo condizioni in PKEY_ItemNameDisplay in base alle esigenze.

Commenti

Il tipo STRUCTURED_QUERY_RESOLVE_OPTION è definito in StructuredQuery.h, come illustrato di seguito.

typedef int STRUCTURED_QUERY_RESOLVE_OPTION;

Requisiti

   
Client minimo supportato Windows XP con SP2, Windows Vista, Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione strutturataquery.h
Componente ridistribuibile Windows Desktop Search (WDS) 3.0

Vedi anche

CASE_REQUIREMENT