Compartir a través de


Cláusula WHERE (Windows Search)

Las condiciones que determinan si un documento se incluye en los resultados devueltos por la consulta se especifican mediante la cláusula WHERE. En el nivel más alto, hay dos partes en la sintaxis de la cláusula WHERE:

...WHERE [<group_aliases>] <search_condition>
...WHERE ReuseWhere(<WHEREID>)

La parte opcional <group_alias> de la cláusula simplifica las consultas complejas mediante la asignación de un alias a un grupo de una o varias columnas. Esto puede mejorar la legibilidad de las consultas complejas que buscan la misma información en varias columnas especificadas por direcciones URL. Para obtener más información sobre los alias de grupo, vea WITH -- AS Group Alias Predicate.

La <parte de condición> de búsqueda de la cláusula WHERE es uno o varios predicados de búsqueda que especifican criterios coincidentes para la búsqueda. Los predicados de búsqueda son expresiones que afirman algún hecho sobre algún valor.

El resultado de una condición de búsqueda es un valor booleano, true si el documento cumple las condiciones de búsqueda especificadas o FALSE si no lo hace. Si el resultado es TRUE, se devuelve el documento. Si el resultado es FALSE, no se devuelve el documento. A los documentos devueltos en una consulta de Búsqueda de Microsoft Windows se les asignan valores de clasificación según el grado en que coinciden con las condiciones de búsqueda. Cada una de las condiciones de búsqueda de consultas puede incluir una cláusula RANKBY que admita la modificación de los valores de clasificación devueltos.

La función ReuseWhere hace que varias consultas que usen algunas de las mismas condiciones de búsqueda sean más eficaces. La cláusula WHERE de una consulta especifica el conjunto de elementos que coinciden en una consulta. Las consultas posteriores pueden compartir el trabajo realizado para la evalución anterior mediante la función ReuseWhere en la nueva cláusula WHERE de consulta.

Predicados de búsqueda

Una condición de búsqueda consta de uno o varios predicados o condiciones de búsqueda que describen lo que busca el usuario (por ejemplo, WHERE System.DateCreated >'2006-04-19'). Los predicados de búsqueda se pueden combinar mediante los operadores lógicos AND, OR o NOT. El operador unario opcional NOT solo se puede usar con AND y solo para negar el valor lógico de un predicado o condición de búsqueda. Puede usar paréntesis para agrupar y anidar términos lógicos.

En la tabla siguiente se muestra el orden de precedencia de los operadores lógicos.

Orden (prioridad) Operador lógico
Primero (más alto) NOT
Segundo AND
Tercero (más bajo) OR

 

Los operadores lógicos del mismo tipo son asociativos y no hay ningún orden de cálculo especificado. Por ejemplo, (A AND B) AND (C AND D) se puede calcular (A AND D) AND (B AND C) Y (B AND C) sin ningún cambio en el resultado lógico.

Importante

Incorrecto: WHERE NOT CONTAINS ('computer')

Correcto: WHERE CONTAINS ('software') AND NOT CONTAINS ('computer')

 

En consultas complejas, es posible que desee hacer más hincapié en las coincidencias en algunas columnas que en otras. Por ejemplo, al buscar documentos que analicen "diseño de software", es más probable que encontrar el término de búsqueda en el título del documento sea una buena coincidencia que encontrar las palabras individuales en el texto del documento. Para influir en la clasificación de documentos de esta manera, el lenguaje de consulta búsqueda de Microsoft Windows admite la ponderación de las condiciones de búsqueda. Para obtener más información sobre la ponderación de columnas, vea Predicado CONTAINS y Predicado FREETEXT.

Hay tres grupos de predicados de búsqueda en Windows Search: búsquedas de texto completo, texto no completo y profundidad de carpetas. Los predicados de búsqueda de texto completo suelen coincidir con el significado del contenido, el título y otras columnas, y admiten la coincidencia lingüística (por ejemplo, formas alternativas de palabras, frases y búsqueda por proximidad). En cambio, los predicados de búsqueda que no son de texto completo coinciden con el valor de las columnas especificadas y no incluyen ningún procesamiento lingüístico especial, pero en varios casos ofrecen coincidencia de patrones basados en caracteres. Los predicados de profundidad de carpeta restringen el ámbito de búsqueda a una ruta de acceso especificada.

Nota

Si la consulta devuelve un documento porque un predicado de texto no completo se evalúa como TRUE para ese documento, el valor de clasificación se calcula como 1000. El uso de la función de coerción de clasificación puede modificar el valor de clasificación.

 

En las tablas siguientes se describen los predicados de búsqueda de profundidad de carpeta, texto completo, texto no completo y texto completo.

Predicado de texto completo Descripción
CONTAINS Admite búsquedas complejas de términos en columnas de texto del documento (por ejemplo, título, contenido). Puede buscar formularios inflected de los términos de búsqueda, probar la proximidad de los términos y realizar comparaciones lógicas. Los términos de búsqueda pueden incluir caracteres comodín.
FREETEXT Busca documentos que coincidan con el significado de la frase de búsqueda. Las palabras relacionadas y frases similares coincidirán, con la columna de clasificación calculada en función de la estrecha coincidencia del documento con la frase de búsqueda. Los términos de búsqueda no pueden incluir caracteres comodín.

 

Predicado de texto no completo Descripción
LIKE Los valores de columna se comparan con la coincidencia de patrones simple con caracteres comodín.
Comparación de valores literales Los valores de columna se comparan con valores de cadena, fecha, marca de tiempo, numéricos y otros valores literales. Este predicado admite la igualdad y las desigualdades, como mayor que y menor que.
Comparaciones con varios valores (ARRAY) Las columnas multivalor se comparan con una matriz multivalor de literales.
NULL Los valores de columna que no están definidos para el documento se pueden detectar mediante el predicado NULL .

 

Profundidad de carpeta Descripción
SCOPE Realiza un recorrido profundo de la ruta de acceso especificada, incluida la carpeta específica y todas las subcarpetas.
DIRECTORIO Realiza un recorrido superficial de la ruta de acceso especificada, buscando solo la carpeta específica.

 

Ejemplos

Para obtener ejemplos de la cláusula WHERE, consulte los temas de predicado individuales vinculados en la tabla anterior.

Referencia

ReuseWhere (función)

Propiedades del conjunto de filas

Cláusula FROM

Información general sobre la sintaxis sql de búsqueda

WITH: predicado de alias de grupo AS

Predicados SCOPE y DIRECTORY

Cláusula RANK BY

Conceptual

Predicados de texto completo

Predicados de texto no completo