operator search

Hiermee zoekt u een tekstpatroon in meerdere tabellen en kolommen.

Notitie

Als u weet welke specifieke tabellen en kolommen u wilt doorzoeken, is het beter om de samenvoegings - en waar-operators te gebruiken. De search operator kan traag zijn bij het zoeken in een groot aantal tabellen en kolommen.

Syntax

[T|] search [kind=CaseSensitivity ] [in(TableSources)] SearchPredicate

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
T string De gegevensbron in tabelvorm die moet worden doorzocht, zoals een tabelnaam, een samenvoegingsoperator of de resultaten van een tabellaire query. Kan niet samen met TableSources worden weergegeven.
Hoofdlettergevoeligheid string Een vlag die het gedrag bepaalt van alle string scalaire operators, zoals has, met betrekking tot hoofdlettergevoeligheid. Geldige waarden zijn default, case_insensitive, case_sensitive. De opties default en case_insensitive zijn synoniem, omdat het standaardgedrag niet hoofdlettergevoelig is.
TableSources string Een door komma's gescheiden lijst met tabelnamen met jokertekens om deel te nemen aan de zoekopdracht. De lijst heeft dezelfde syntaxis als de lijst van de samenvoegoperator. Kan niet samen met TabularSource worden weergegeven.
SearchPredicate string ✔️ Een Booleaanse expressie die moet worden geëvalueerd voor elke record in de invoer. Als deze retourneert true, wordt de record uitgevoerd. Zie De syntaxis van het zoekpredicaat.

Syntaxis van zoekpredicaat

Met SearchPredicate kunt u zoeken naar specifieke termen in alle kolommen van een tabel. De operator die op een zoekterm wordt toegepast, is afhankelijk van de aanwezigheid en plaatsing van een jokerteken sterretje (*) in de term, zoals wordt weergegeven in de volgende tabel.

Letterlijk Operator
billg has
*billg hassuffix
billg* hasprefix
*billg* contains
bi*lg matches regex

U kunt de zoekopdracht ook beperken tot een specifieke kolom, zoeken naar een exacte overeenkomst in plaats van een termovereenkomst of zoeken op reguliere expressie. De syntaxis voor elk van deze gevallen wordt weergegeven in de volgende tabel.

Syntax Uitleg
Kolomnaam:TekenreeksLiteral Deze syntaxis kan worden gebruikt om de zoekopdracht te beperken tot een specifieke kolom. Het standaardgedrag is om in alle kolommen te zoeken.
Kolomnaam==TekenreeksLiteral Deze syntaxis kan worden gebruikt om te zoeken naar exacte overeenkomsten van een kolom ten opzichte van een tekenreekswaarde. Het standaardgedrag is om te zoeken naar een termovereenkomst.
Kolommatches regexTekenreeksLiteral Deze syntaxis geeft aan dat reguliere expressies overeenkomen, waarbij StringLiteral het regex-patroon is.

Gebruik Booleaanse expressies om voorwaarden te combineren en complexere zoekopdrachten te maken. Zou bijvoorbeeld "error" and x==123 resulteren in een zoekopdracht naar records met de term error in kolommen en de waarde 123 in de x kolom.

Notitie

Als zowel TabularSource als TableSources worden weggelaten, wordt de zoekopdracht overgedragen naar alle onbeperkte tabellen en weergaven van de database binnen het bereik.

Voorbeelden van syntaxis van zoekpredicaat

# Syntax Betekenis (equivalent where) Opmerkingen
1 search "err" where * has "err"
2 search in (T1,T2,A*) "err" union T1,T2,A* | where * heeft 'fout'
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 Alle tekenreeksvergelijkingen zijn hoofdlettergevoelig
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)

Opmerkingen

In tegenstelling tot de zoekoperator biedt de search operator geen ondersteuning voor het volgende:

  1. withsource=: de uitvoer bevat altijd een kolom met de naam $table van het type string waarvan de waarde de tabelnaam is waaruit elke record is opgehaald (of een door het systeem gegenereerde naam als de bron geen tabel maar een samengestelde expressie is).
  2. project=, project-smart: het uitvoerschema is gelijk aan het project-smart uitvoerschema.

Voorbeelden

Zoek een term in alle onbeperkte tabellen en weergaven van de database binnen het bereik.

search "Green"

De uitvoer bevat records van de Customerstabellen , Productsen SalesTable . De Customers records tonen alle klanten met de achternaam 'Groen', en de Products records en SalesTable bevatten producten met een vermelding van 'Groen'.

Zoek naar records die overeenkomen met beide termen voor alle onbeperkte tabellen en weergaven van de database binnen het bereik.

search "Green" and ("Deluxe" or "Proseware")

Zoeken in een specifieke tabel

Zoek alleen in de Customers tabel.

search in (Products) "Green"

Zoek naar records die overeenkomen met hoofdlettergevoelige termen in alle onbeperkte tabellen en weergaven van de database binnen het bereik.

search kind=case_sensitive "blue"

Zoeken in specifieke kolommen

Zoek een term in de kolommen 'Voornaam' en 'Achternaam' in alle onbeperkte tabellen en weergaven van de database binnen het bereik.

search FirstName:"Aaron" or LastName:"Hughes"

Zoeken beperken op tijdstempel

Zoek een term in alle onbeperkte tabellen en weergaven van de database binnen het bereik als de term voorkomt in een record met een datum die groter is dan de opgegeven datum.

search "Hughes" and DateKey > datetime('2009-01-01')

Tips voor prestaties

# Tip Liever Over
1 Gebruik liever één search operator dan meerdere opeenvolgende search operators search "billg" and ("steveb" or "satyan") zoek "billg" | zoek "steveb" of "satyan"
2 Filter liever in de search operator search "billg" and "steveb" zoeken * | waarbij * "billg" heeft en * heeft "steveb"