Compartilhar via


Cláusula WHERE (Pesquisa do Windows)

As condições que determinam se um documento está incluído nos resultados retornados pela consulta são especificadas pela cláusula WHERE. No nível mais alto, há duas partes na sintaxe da cláusula WHERE:

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

A parte group_alias> opcional <da cláusula simplifica consultas complexas atribuindo um alias a um grupo de uma ou mais colunas. Isso pode melhorar a legibilidade de consultas complexas que pesquisam as mesmas informações em várias colunas especificadas por URLs. Para obter mais informações sobre aliases de grupo, consulte WITH -- Predicado de alias do grupo AS.

A <parte da condição de pesquisa> da cláusula WHERE é um ou mais predicados de pesquisa que especificam critérios correspondentes para a pesquisa. Predicados de pesquisa são expressões que declaram algum fato sobre algum valor.

O resultado de uma condição de pesquisa é um valor booliano, seja TRUE se o documento atender às condições de pesquisa especificadas ou FALSE se não atender. Se o resultado for TRUE, o documento será retornado. Se o resultado for FALSE, o documento não será retornado. Os documentos retornados em uma consulta da Pesquisa do Microsoft Windows recebem valores de classificação de acordo com o quão bem eles correspondem às condições de pesquisa. Cada uma das condições de pesquisa de consulta pode incluir uma cláusula RANKBY que dá suporte à modificação dos valores de classificação retornados.

A função ReuseWhere torna várias consultas que usam algumas das mesmas condições de pesquisa mais eficientes. A cláusula WHERE em uma consulta especifica o conjunto de itens que correspondem a uma consulta. Consultas subsequentes podem compartilhar o trabalho executado para a avaliação anterior usando a função ReuseWhere na nova cláusula WHERE de consulta.

Predicados de pesquisa

Uma condição de pesquisa consiste em um ou mais predicados ou condições de pesquisa que descrevem o que o usuário está procurando (por exemplo, WHERE System.DateCreated >'2006-04-19'). Predicados de pesquisa podem ser combinados usando os operadores lógicos AND, OR ou NOT. O operador unário opcional NOT pode ser usado apenas com AND e apenas para negar o valor lógico de um predicado ou condição de pesquisa. Você pode usar parênteses para agrupar e aninhar termos lógicos.

A tabela a seguir mostra a ordem de precedência para os operadores lógicos.

Ordem (precedência) Operador lógico
Primeiro (mais alto) NOT
Segundo AND
Terceiro (mais baixo) OR

 

Os operadores lógicos do mesmo tipo são associativos e não há nenhuma ordem de cálculo especificada. Por exemplo, (A AND B) AND (C AND D) pode ser calculado (A AND D) AND (B AND C) sem nenhuma alteração no resultado lógico.

Importante

Incorreto: WHERE NOT CONTAINS ('computer')

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

 

Em consultas complexas, talvez você queira dar mais ênfase às correspondências em algumas colunas do que em outras. Por exemplo, ao pesquisar documentos que discutam "design de software", encontrar o termo de pesquisa no título do documento é mais provável que seja uma boa correspondência do que encontrar as palavras individuais no texto do documento. Para influenciar a classificação de documentos dessa maneira, a linguagem de consulta pesquisa do Microsoft Windows dá suporte à ponderação das condições de pesquisa. Para obter mais informações sobre a ponderação de coluna, consulte Predicado CONTAINS e Predicado FREETEXT.

Há três grupos de predicados de pesquisa na Pesquisa do Windows: texto completo, não texto completo e pesquisas de profundidade de pasta. Predicados de pesquisa de texto completo normalmente correspondem ao significado do conteúdo, do título e de outras colunas e dão suporte à correspondência linguística (por exemplo, formulários de palavras alternativas, frases e pesquisa de proximidade). Por outro lado, predicados de pesquisa de texto não completo correspondem ao valor das colunas especificadas e não incluem nenhum processamento linguístico especial, mas, em vários casos, oferecem correspondência de padrões baseados em caracteres. Predicados de profundidade da pasta restringem o escopo da pesquisa a um caminho especificado.

Observação

Se a consulta retornar um documento porque um predicado de texto não completo é avaliado como TRUE para esse documento, o valor de classificação será calculado como 1000. Usar a função de coerção de classificação pode modificar o valor da classificação.

 

As tabelas a seguir descrevem os predicados de pesquisa de texto completo, não de texto completo e de profundidade de pasta.

Predicado de texto completo Descrição
CONTAINS Dá suporte a pesquisas complexas de termos em colunas de texto do documento (por exemplo, título, conteúdo). Pode pesquisar formas inflexionadas dos termos de pesquisa, testar a proximidade dos termos e executar comparações lógicas. Os termos de pesquisa podem incluir caracteres curinga.
FREETEXT Pesquisa documentos que correspondam ao significado da frase de pesquisa. Palavras relacionadas e frases semelhantes corresponderão, com a coluna de classificação calculada com base em como o documento corresponde à frase de pesquisa. Os termos de pesquisa não podem incluir caracteres curinga.

 

Predicado de texto não completo Descrição
LIKE Os valores de coluna são comparados usando padrões simples correspondentes com caracteres curinga.
Comparação de valor literal Os valores de coluna são comparados com cadeia de caracteres, data, carimbo de data/hora, numérico e outros valores literais. Esse predicado dá suporte à igualdade e às desigualdades, como maior e menor que.
Comparações com vários valores (ARRAY) Colunas multivaloradas são comparadas com uma matriz de literais de vários valores.
NULL Os valores de coluna indefinidos para o documento podem ser detectados usando o predicado NULL .

 

Profundidade da Pasta Descrição
SCOPE Executa uma passagem profunda do caminho especificado, incluindo a pasta específica e todas as subpastas.
DIRETÓRIO Executa uma passagem superficial do caminho especificado, pesquisando apenas a pasta específica.

 

Exemplos

Para obter exemplos da cláusula WHERE, consulte os tópicos de predicado individuais vinculados na tabela anterior.

Referência

Função ReuseWhere

Propriedades do conjunto de linhas

Cláusula FROM

Visão geral da sintaxe do SQL de pesquisa

WITH -- Predicado de Alias do Grupo AS

Predicados SCOPE e DIRECTORY

Cláusula RANK BY

Conceitual

Predicados de texto completo

Predicados de texto não completo