enumeración STRUCTURED_QUERY_RESOLVE_OPTION (structuredquery.h)
Opciones para resolver datos en un árbol de condiciones.
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
} ;
Constantes
SQRO_DEFAULT Valor: 0 Windows 7 y versiones posteriores. Marca predeterminada. |
SQRO_DONT_RESOLVE_DATETIME Valor: 0x1 A menos que se establezca esta marca, cualquier expresión relativa de fecha y hora en pConditionTree se reemplaza por un intervalo absoluto de fecha y hora que se ha resuelto con la fecha y hora de referencia a la que apunta pstReferenceTime. Por ejemplo, si una consulta de AQS contenía la expresión relativa de fecha y hora "date:this month" y la fecha y hora de referencia eran 9/19/2006 10:28:33, el árbol de condición resuelto contendrá un intervalo de fecha y hora a partir del 1/9/2006 00:00:00 y que termina en 10/1/2006 00:00:00 (en la zona horaria UTC). |
SQRO_ALWAYS_ONE_INTERVAL Valor: 0x2 A menos que se establezca esta marca, resolver una expresión de fecha y hora relativa puede dar lugar a un OR de varios intervalos. Por ejemplo, si una consulta de AQS contenía "fecha:lunes" y la fecha y hora de referencia eran 19/9/2006 10:28:33 (un martes), el árbol de condiciones resuelto contendrá un OR de tres intervalos de 24 horas correspondientes a los lunes del 11/9/2006, 18/9/2006 y 25/9/2006, porque no está claro a qué lunes se hace referencia. Si se establece esta marca, el resultado siempre será un intervalo de fecha y hora único (en este ejemplo, sería un intervalo de fecha y hora a partir del 18/9/2006 00:00:00 y terminaría en 9/19/2006 00:00:00). |
SQRO_DONT_SIMPLIFY_CONDITION_TREES Valor: 0x4 A menos que se establezca esta marca, el árbol de condiciones resultante tendrá las posibles simplificaciones aplicadas. |
SQRO_DONT_MAP_RELATIONS Valor: 0x8 A menos que esta marca sea true, un nodo hoja con una propiedad virtual que se asigna a varias propiedades se reemplazará por un OR de nodos hoja que contengan las propiedades reales. Por ejemplo, la consulta de AQS "to:Bill" puede dar lugar a un nodo hoja en el que la propiedad denominada System.StructuredQuery.Virtual.To se asigna realmente a las dos propiedades System.Message.ToAddress y System.Message.ToName , por lo que el árbol de condiciones resuelto tendría un or que busca "Bill" en esas dos propiedades. |
SQRO_DONT_RESOLVE_RANGES Valor: 0x10 Un intervalo resultante de una expresión de fecha y hora, una expresión como "20..40", se resuelve primero en un nodo hoja que tiene un valor VT_UNKNOWN donde el miembro punkVal implementa la interfaz IInterval . A menos que se establezca esta marca, el árbol de condiciones devuelto se habrá resuelto aún más en un and de comparaciones simples, como COP_GREATERTHANOREQUAL y COP_LESSTHAN. Por ejemplo, para una consulta de AQS "date:this month" resuelta con el 19/9/2006 10:28:33, Si no se establece esta marca, el árbol de condición resultante es un and de System.ItemDate COP_GREATERTHANOREQUAL 1/9/2006 00:00:00 y System.ItemDate COP_LESSTHAN 10/1/2006 00:00:00. Si se establece esta marca, el árbol de condiciones resultante relacionará System.ItemDate con un IInterval de modo que su método IInterval::GetLimits devuelva ILK_EXPLICIT_INCLUDED, 9/1/2006 00:00:00, ILK_EXPLICIT_EXCLUDED y 10/1/2006 00:00:00. |
SQRO_DONT_REMOVE_UNRESTRICTED_KEYWORDS Valor: 0x20 Una palabra clave sin restricciones es una palabra clave que no está asociada a un valor que completa la condición. Por ejemplo, en la siguiente consulta de AQS, la propiedad indicada por "From" se considera una palabra clave sin restricciones: "Kind:email Subject:"My Resume" From:". Si se establece esta marca, esta propiedad estará presente en el árbol de condiciones resultante como un nodo hoja que tiene una operación de COP_IMPLICIT , un valor de cadena vacío y un tipo semántico de System.StructuredQueryType.Value. De lo contrario, se quitará por completo. |
SQRO_DONT_SPLIT_WORDS Valor: 0x40 Si se establece esta marca, se mantendrá un grupo de palabras no separadas por espacios en blanco en un solo nodo hoja. Si no se establece esta marca, el grupo se dividirá en nodos hoja independientes. Es posible que una aplicación quiera establecer esta marca al resolver un árbol de condiciones si el árbol resultante se procesará aún más mediante código que debe realizar cualquier separación de palabras adicional. |
SQRO_IGNORE_PHRASE_ORDER Valor: 0x80 Si una frase de una consulta de AQS se incluye entre comillas dobles, las palabras de esa frase entran en un nodo hoja único (independientemente de si se establece SQRO_DONT_SPLIT_WORDS ) a menos que se establezca esta marca, en cuyo caso terminan en nodos hoja independientes y su orden ya no importa. Una aplicación puede establecer esta marca si no puede controlar correctamente los nodos hoja con varias palabras. |
SQRO_ADD_VALUE_TYPE_FOR_PLAIN_VALUES Valor: 0x100 |
SQRO_ADD_ROBUST_ITEM_NAME Valor: 0x200 Solución de problemas conocidos en separadores de palabras, agregando condiciones en PKEY_ItemNameDisplay según sea necesario. |
Comentarios
El tipo de STRUCTURED_QUERY_RESOLVE_OPTION se define en StructuredQuery.h como se muestra aquí.
typedef int STRUCTURED_QUERY_RESOLVE_OPTION;
Requisitos
Cliente mínimo compatible | Windows XP con SP2, Windows Vista, Windows 7 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | structuredquery.h |
Redistribuible | Windows Desktop Search (WDS) 3.0 |