WHERE Clause (Windows Search)
Les conditions qui déterminent si un document est inclus dans les résultats retournés par la requête sont spécifiés par la clause WHERE. Au niveau le plus élevé, il existe deux parties à la syntaxe de clause WHERE :
...WHERE [<group_aliases>] <search_condition>
...WHERE ReuseWhere(<WHEREID>)
La partie facultative <group_alias> de la clause simplifie les requêtes complexes en affectant un alias à un groupe d’une ou plusieurs colonnes. Cela peut améliorer la lisibilité des requêtes complexes qui recherchent les mêmes informations sur plusieurs colonnes spécifiées par les URL. Pour plus d’informations sur les alias de groupe, consultez WITH - Prédicat d’alias de groupe AS.
La condition de recherche <> partie de la clause WHERE est un ou plusieurs prédicats de recherche qui spécifient des critères correspondants pour la recherche. Les prédicats de recherche sont des expressions qui affirment un certain fait à propos d’une valeur.
Le résultat d’une condition de recherche est une valeur booléenne, TRUE si le document répond aux conditions de recherche spécifiées ou FALSE si ce n’est pas le cas. Si le résultat est TRUE, le document est retourné. Si le résultat est FALSE, le document n’est pas retourné. Les documents retournés dans une requête Microsoft Windows Search sont attribués des valeurs de classement en fonction de la façon dont ils correspondent aux conditions de recherche. Chacune des conditions de recherche de requête peut inclure une clause RANKBY qui prend en charge la modification des valeurs de classement retournées.
La fonction ReuseWhere rend plusieurs requêtes qui utilisent les mêmes conditions de recherche plus efficaces. La clause WHERE d’une requête spécifie l’ensemble d’éléments qui correspondent dans une requête. Les requêtes suivantes peuvent partager le travail effectué pour l’évaluation précédente à l’aide de la fonction ReuseWhere dans la nouvelle clause WHERE de requête.
Prédicats de recherche
Une condition de recherche se compose d’un ou plusieurs prédicats ou conditions de recherche qui décrivent ce que l’utilisateur recherche (par exemple, WHERE System.DateCreated >'2006-04-19'). Les prédicats de recherche peuvent être combinés à l’aide des opérateurs logiques AND, ORou NOT. L’opérateur unaire facultatif NOT ne peut être utilisé qu’avec AND et uniquement pour annuler la valeur logique d’un prédicat ou d’une condition de recherche. Vous pouvez utiliser des parenthèses pour regrouper et imbriquer des termes logiques.
Le tableau suivant indique l’ordre de priorité pour les opérateurs logiques.
Ordre (précédence) | Opérateur logique |
---|---|
Premier (le plus élevé) | NOT |
Deuxième | AND |
Troisième (le plus bas) | OR |
Les opérateurs logiques du même type sont associatifs et il n’existe aucun ordre de calcul spécifié. Par exemple, (A AND B) AND (C AND D) peut être calculé (A AND D) AND (B AND C) sans modification dans le résultat logique.
Important
Incorrect : WHERE NOT CONTAINS ('computer')
Correct : WHERE CONTAINS ('software') AND NOT CONTAINS ('computer')
Dans les requêtes complexes, vous souhaiterez peut-être mettre davantage l’accent sur les correspondances dans certaines colonnes que dans d’autres. Par exemple, lorsque vous recherchez des documents qui traitent de la « conception logicielle », la recherche du terme de recherche dans le titre du document est plus susceptible d’être une bonne correspondance que de trouver les mots individuels dans le texte du document. Pour influencer le classement des documents de cette façon, le langage de requête Microsoft Windows Search prend en charge la pondération des conditions de recherche. Pour plus d’informations sur la pondération des colonnes, consultez CONTAINS Predicate et FREETEXT Predicate.
Il existe trois groupes de prédicats de recherche dans Windows Search : recherche en texte intégral, texte intégral et recherches de profondeur de dossier. Les prédicats de recherche en texte intégral correspondent généralement à la signification du contenu, du titre et d’autres colonnes, et prennent en charge la correspondance linguistique (par exemple, les formes de mots alternatives, les expressions et la recherche de proximité). En revanche, les prédicats de recherche en texte intégral correspondent à la valeur des colonnes spécifiées et n’incluent pas de traitement linguistique spécial, mais dans plusieurs cas, offrent des critères de correspondance basés sur des caractères. Les prédicats de profondeur de dossier limitent l’étendue de recherche à un chemin d’accès spécifié.
Note
Si la requête retourne un document, car un prédicat de texte intégral est évalué à TRUE pour ce document, la valeur de classement est calculée comme 1 000. L’utilisation de la fonction de contrainte de classement peut modifier la valeur de classement.
Les tableaux suivants décrivent les prédicats de recherche de texte intégral, de texte intégral et de profondeur de dossier.
Prédicat de texte intégral | Description |
---|---|
CONTAINS | Prend en charge les recherches complexes de termes dans les colonnes de texte de document (par exemple, titre, contenu). Peut rechercher des formes inflectées des termes de recherche, tester la proximité des termes et effectuer des comparaisons logiques. Les termes de recherche peuvent inclure des caractères génériques. |
FREETEXT | Recherche des documents qui correspondent à la signification de l’expression de recherche. Les mots connexes et les expressions similaires correspondent, avec la colonne de classement calculée en fonction de la façon dont le document correspond à l’expression de recherche. Les termes de recherche ne peuvent pas inclure de caractères génériques. |
Prédicat de texte intégral | Description |
---|---|
LIKE | Les valeurs de colonne sont comparées à l’aide d’un modèle simple correspondant à des caractères génériques. |
comparaison de valeurs littérales | Les valeurs de colonne sont comparées à des valeurs de chaîne, de date, d’horodatage, de numérique et d’autres valeurs littérales. Ce prédicat prend en charge l’égalité et les inégalités telles que supérieures et inférieures à celles-ci. |
comparaisons à valeurs multiples (ARRAY) | Les colonnes à valeurs multiples sont comparées à un tableau à valeurs multiples de littéraux. |
NULL | Les valeurs de colonne non définies pour le document peuvent être détectées à l’aide du prédicat NULL. |
Profondeur du dossier | Description |
---|---|
étendue | Effectue une traversée approfondie du chemin d’accès spécifié, y compris le dossier spécifique et tous les sous-dossiers. |
DIRECTORY | Effectue une traversée superficielle du chemin spécifié, en recherchant uniquement le dossier spécifique. |
Exemples
Pour obtenir des exemples de clause WHERE, consultez les rubriques de prédicat individuelles liées dans le tableau précédent.
Rubriques connexes
-
de référence
-
Vue d’ensemble de la syntaxe SQL de recherche
-
clause RANK BY
-
conceptuelle