opérateur search
Recherche un modèle de texte dans plusieurs tables et colonnes.
Notes
Si vous connaissez les tables et colonnes spécifiques que vous souhaitez rechercher, il est plus performant d’utiliser les opérateurs union et where . L’opérateur search
peut être lent lors de la recherche dans un grand nombre de tables et de colonnes.
Syntax
[T|
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
Découvrez les conventions de syntaxe.
Paramètres
Nom | Type | Obligatoire | Description |
---|---|---|---|
T | string |
Source de données tabulaire à rechercher, comme un nom de table, un opérateur d’union ou les résultats d’une requête tabulaire. Impossible d’apparaître avec TableSources. | |
CaseSensitivity | string |
Indicateur qui contrôle le comportement de tous les string opérateurs scalaires, tels que has , en ce qui concerne le respect de la casse. Les valeurs valides sont default , case_insensitive , case_sensitive . Les options default et case_insensitive sont synonymes, car le comportement par défaut ne respecte pas la casse. |
|
TableSources | string |
Liste séparée par des virgules de noms de tables « génériques » pour participer à la recherche. La liste a la même syntaxe que la liste de l’opérateur d’union. Impossible d’apparaître avec TabularSource. | |
SearchPredicate | string |
✔️ | Expression booléenne à évaluer pour chaque enregistrement dans l’entrée. S’il retourne true , l’enregistrement est généré. Consultez Syntaxe du prédicat de recherche. |
Syntaxe du prédicat de recherche
SearchPredicate vous permet de rechercher des termes spécifiques dans toutes les colonnes d’une table. L’opérateur qui sera appliqué à un terme de recherche dépend de la présence et de l’emplacement d’un astérisque générique (*
) dans le terme, comme indiqué dans le tableau suivant.
Littéral | Opérateur |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
Vous pouvez également limiter la recherche à une colonne spécifique, rechercher une correspondance exacte au lieu d’une correspondance de terme ou rechercher par expression régulière. La syntaxe de chacun de ces cas est indiquée dans le tableau suivant.
Syntax | Explication |
---|---|
Columnname: Stringliteral |
Cette syntaxe peut être utilisée pour limiter la recherche à une colonne spécifique. Le comportement par défaut consiste à rechercher toutes les colonnes. |
Columnname== Stringliteral |
Cette syntaxe peut être utilisée pour rechercher des correspondances exactes entre une colonne et une valeur de chaîne. Le comportement par défaut consiste à rechercher une correspondance de terme. |
Colonnematches regex Stringliteral |
Cette syntaxe indique la correspondance d’expression régulière, dans laquelle StringLiteral est le modèle regex. |
Utilisez des expressions booléennes pour combiner des conditions et créer des recherches plus complexes. Par exemple, "error" and x==123
cela entraînerait une recherche d’enregistrements qui ont le terme error
dans toutes les colonnes et la valeur 123
dans la x
colonne.
Notes
Si TabularSource et TableSources sont omis , la recherche est reportée sur toutes les tables et vues sans restriction de la base de données dans l’étendue.
Exemples de syntaxe de prédicat de recherche
# | Syntax | Signification (équivalent where ) |
Commentaires |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
union T1,T2,A* | où * a « err » |
|
3 | search col:"err" |
where col has "err" |
|
4 | search col=="err" |
where col=="err" |
|
5 | search "err*" |
where * hasprefix "err" |
|
6 | search "*err" |
where * hassuffix "err" |
|
7 | search "*err*" |
where * contains "err" |
|
8 | search "Lab*PC" |
where * matches regex @"\bLab.*PC\b" |
|
9 | search * |
where 0==0 |
|
10 | search col matches regex "..." |
where col matches regex "..." |
|
11 | search kind=case_sensitive |
Toutes les comparaisons de chaînes respectent la casse | |
12 | search "abc" and ("def" or "hij") |
where * has "abc" and (* has "def" or * has hij") |
|
13 | search "err" or (A>a and A<b) |
where * has "err" or (A>a and A<b) |
Remarques
Contrairement à l’opérateur de recherche, l’opérateur search
ne prend pas en charge les éléments suivants :
withsource=
: la sortie inclut toujours une colonne appelée$table
de typestring
dont la valeur est le nom de la table à partir duquel chaque enregistrement a été récupéré (ou un nom généré par le système si la source n’est pas une table, mais une expression composite).project=
,project-smart
: le schéma de sortie équivaut au schéma deproject-smart
sortie.
Exemples
Recherche globale de termes
Recherchez un terme sur toutes les tables et vues sans restriction de la base de données dans l’étendue.
search "Green"
La sortie contient des enregistrements des Customers
tables , Products
et SalesTable
. Les Customers
enregistrements affichent tous les clients avec le nom de famille « Vert », et les Products
enregistrements et SalesTable
affichent les produits avec une certaine mention de « Vert ».
Recherche conditionnelle de termes globaux
Recherchez les enregistrements qui correspondent aux deux termes sur toutes les tables et vues sans restriction de la base de données dans l’étendue.
search "Green" and ("Deluxe" or "Proseware")
Rechercher une table spécifique
Recherchez uniquement dans la Customers
table.
search in (Products) "Green"
Recherche respectant la casse
Recherchez des enregistrements qui correspondent à des termes respectant la casse sur toutes les tables et vues sans restriction de la base de données dans l’étendue.
search kind=case_sensitive "blue"
Rechercher des colonnes spécifiques
Recherchez un terme dans les colonnes « FirstName » et « LastName » sur toutes les tables et vues sans restriction de la base de données dans l’étendue.
search FirstName:"Aaron" or LastName:"Hughes"
Limiter la recherche par horodatage
Recherchez un terme sur toutes les tables et vues sans restriction de la base de données dans l’étendue si le terme apparaît dans un enregistrement dont la date est supérieure à la date donnée.
search "Hughes" and DateKey > datetime('2009-01-01')
Conseils relatifs aux performances
# | Conseil | Prefer | Over |
---|---|---|---|
1 | Préférer utiliser un seul opérateur plutôt que search plusieurs opérateurs consécutifs search |
search "billg" and ("steveb" or "satyan") |
search « billg » | rechercher « steveb » ou « satyan » |
2 | Préférer filtrer à l’intérieur de l’opérateur search |
search "billg" and "steveb" |
search * | où * a « billg » et * a « steveb » |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour