search-Operator
Durchsucht ein Textmuster in mehreren Tabellen und Spalten.
Hinweis
Wenn Sie die spezifischen Tabellen und Spalten kennen, die Sie durchsuchen möchten, ist es effizienter, die Operatoren union und where zu verwenden. Der search
Operator kann bei der Suche in einer großen Anzahl von Tabellen und Spalten langsam sein.
Syntax
[T|
] search
[kind=
Groß-/Kleinschreibung ] [in
(
TableSources)
] SearchPredicate
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | Beschreibung |
---|---|---|---|
T | string |
Die tabellarische Datenquelle, die durchsucht werden soll, z. B. ein Tabellenname, ein Union-Operator oder die Ergebnisse einer tabellarischen Abfrage. Kann nicht zusammen mit TableSources angezeigt werden. | |
CaseSensitivity | string |
Ein Flag, das das Verhalten aller string skalaren Operatoren steuert, z has . B. , in Bezug auf die Groß-/Kleinschreibung. Gültige Werte sind default , case_insensitive , case_sensitive . Die Optionen default und case_insensitive sind synonym, da beim Standardverhalten die Groß-/Kleinschreibung nicht beachtet wird. |
|
TableSources | string |
Eine durch Trennzeichen getrennte Liste von Tabellennamen mit Einem Feldhalter, die an der Suche teilnehmen sollen. Die Liste weist die gleiche Syntax wie die Liste des Unionoperators auf. Kann nicht zusammen mit TabularSource angezeigt werden. | |
SearchPredicate | string |
✔️ | Ein boolescher Ausdruck, der für jeden Datensatz in der Eingabe ausgewertet werden soll. Wenn er zurückgibt true , wird der Datensatz ausgegeben. Weitere Informationen finden Sie unter Suchen von Prädikatsyntax. |
Prädikatsyntax suchen
Mit SearchPredicate können Sie in allen Spalten einer Tabelle nach bestimmten Begriffen suchen. Der Operator, der auf einen Suchbegriff angewendet wird, hängt vom Vorhandensein und der Platzierung eines Platzhaltersterns (*
) im Begriff ab, wie in der folgenden Tabelle gezeigt.
Literal | Betreiber |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
Sie können die Suche auch auf eine bestimmte Spalte beschränken, nach einer exakten Übereinstimmung anstelle eines Begriffs suchen oder nach einem regulären Ausdruck suchen. Die Syntax für jeden dieser Fälle ist in der folgenden Tabelle dargestellt.
Syntax | Erklärung |
---|---|
Columnname: StringLiteral |
Diese Syntax kann verwendet werden, um die Suche auf eine bestimmte Spalte zu beschränken. Das Standardverhalten besteht darin, alle Spalten zu durchsuchen. |
Columnname== StringLiteral |
Diese Syntax kann verwendet werden, um nach exakten Übereinstimmungen einer Spalte mit einem Zeichenfolgenwert zu suchen. Das Standardverhalten besteht darin, nach einer Begriffsbesprechung zu suchen. |
Spaltematches regex StringLiteral |
Diese Syntax gibt einen regulären Ausdrucksabgleich an, bei dem StringLiteral das regex-Muster ist. |
Verwenden Sie boolesche Ausdrücke, um Bedingungen zu kombinieren und komplexere Suchvorgänge zu erstellen. Dies würde beispielsweise zu einer Suche nach Datensätzen führen, "error" and x==123
die den Begriff error
in allen Spalten und den Wert 123
in der x
Spalte enthalten.
Hinweis
Wenn sowohl TabularSource als auch TableSources weggelassen werden, wird die Suche über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich übertragen.
Syntaxbeispiele für Die Suche nach Prädikaten
# | Syntax | Bedeutung (entsprechend where ) |
Kommentare |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
Union T1,T2,A* | wobei * "err" hat |
|
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 |
Bei allen Zeichenfolgenvergleichen wird die Groß-/Kleinschreibung beachtet. | |
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) |
Hinweise
Im Gegensatz zum Suchoperator unterstützt der search
Operator Folgendes nicht:
withsource=
: Die Ausgabe enthält immer eine Spalte vom$table
Typstring
, deren Wert der Tabellenname ist, aus dem jeder Datensatz abgerufen wurde (oder einen vom System generierten Namen, wenn die Quelle keine Tabelle, sondern ein zusammengesetzter Ausdruck ist).project=
,project-smart
: Das Ausgabeschema entspricht demproject-smart
Ausgabeschema.
Beispiele
Globale Begriffssuche
Suchen Sie nach einem Begriff für alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich.
search "Green"
Die Ausgabe enthält Datensätze aus den Customers
Tabellen , Products
und SalesTable
. Die Customers
Datensätze zeigen alle Kunden mit dem Nachnamen "Grün", und die Products
SalesTable
Datensätze zeigen Produkte mit einigen Erwähnung von "Grün".
Suche nach bedingten globalen Begriffen
Suchen Sie nach Datensätzen, die beide Begriffe über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich übereinstimmen.
search "Green" and ("Deluxe" or "Proseware")
Durchsuchen einer bestimmten Tabelle
Suchen Sie nur in der Customers
Tabelle.
search in (Products) "Green"
Suche zwischen Groß- und Kleinschreibung
Suchen Sie nach Datensätzen, bei denen die Groß-/Kleinschreibung für alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich berücksichtigt wird.
search kind=case_sensitive "blue"
Suchen nach bestimmten Spalten
Suchen Sie in den Spalten "FirstName" und "LastName" über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich nach einem Begriff.
search FirstName:"Aaron" or LastName:"Hughes"
Einschränken der Suche nach Zeitstempel
Suchen Sie über alle uneingeschränkten Tabellen und Ansichten der Datenbank im Bereich nach einem Ausdruck, wenn der Ausdruck in einem Datensatz mit einem Datum größer als das angegebene Datum angezeigt wird.
search "Hughes" and DateKey > datetime('2009-01-01')
Tipps zur Leistungssteigerung
# | Tipp | Prefer | Over |
---|---|---|---|
1 | Verwenden Sie lieber einen einzelnen search Operator als mehrere aufeinanderfolgende search Operatoren. |
search "billg" and ("steveb" or "satyan") |
suche "billg" | "steveb" oder "satyan" suchen |
2 | Filtern sie lieber innerhalb des search Operators |
search "billg" and "steveb" |
suche * | wobei * hat "billg" und * "steveb" |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für