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 asignando 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 condición de búsqueda <> parte 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 declaran algún hecho sobre algún valor.

El resultado de una condición de búsqueda es un valor booleano, ya sea 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 su coincidencia 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 evaluació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, ORo NOT. El operador unario opcional NOT solo se puede usar con AND y solo para negar el valor lógico de un predicado o una 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 prioridad de los operadores lógicos.

Orden (prioridad) Operador lógico
Primero (más alto) NO
Segundo Y
Tercero (más bajo) O

 

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) sin cambios 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 quiera poner más énfasis en las coincidencias en algunas columnas que en otras. Por ejemplo, al buscar documentos que analicen "diseño de software", buscar el término de búsqueda en el título del documento es más probable que 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 microsoft Windows Search admite la ponderación de las condiciones de búsqueda. Para obtener más información sobre la ponderación de columnas, vea CONTAINS Predicado y predicado FREETEXT.

Hay tres grupos de predicados de búsqueda en Windows Search: texto completo, no texto completo y búsquedas de 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 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 texto completo, no texto completo y profundidad de carpeta.

Predicado de texto completo Descripción
CONTIENE Admite búsquedas complejas de términos en columnas de texto del documento (por ejemplo, título, contenido). Puede buscar formas inflectadas 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
GUSTAR Los valores de columna se comparan mediante la coincidencia de patrones simple con caracteres comodín.
comparación de valores literales de Los valores de columna se comparan con valores de cadena, fecha, marca de hora, numéricos y otros valores literales. Este predicado admite la igualdad y las desigualdades, como mayor que y menor que.
comparaciones multivalor (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
ÁMBITO 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, vea los temas de predicado individuales vinculados en la tabla anterior.

de referencia de

ReuseWhere (función)

propiedades del conjunto de filas de

cláusula FROM

Información general de la sintaxis SQL de búsqueda

WITH: predicado de alias de grupo AS

predicados SCOPE y DIRECTORY

cláusula RANK BY

conceptual de

predicados deFull-Text

predicados noFull-Text