search-operatorn
Söker i ett textmönster i flera tabeller och kolumner.
Anteckning
Om du känner till de specifika tabeller och kolumner som du vill söka i är det bättre att använda unionen och var operatorerna finns. Operatorn search
kan vara långsam när du söker i ett stort antal tabeller och kolumner.
Syntax
[T|
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
T | string |
Den tabelldatakälla som ska genomsökas, till exempel ett tabellnamn, en union-operator eller resultatet av en tabellfråga. Det går inte att visa tillsammans med TableSources. | |
CaseSensitivity | string |
En flagga som styr beteendet för alla string skaläroperatorer, till exempel has , med avseende på skiftlägeskänslighet. Giltiga värden är default , case_insensitive , case_sensitive . Alternativen default och case_insensitive är synonyma, eftersom standardbeteendet är skiftlägesokänsligt. |
|
TableSources | string |
En kommaavgränsad lista med "jokertecken" tabellnamn som ska delta i sökningen. Listan har samma syntax som listan över union-operatorn. Det går inte att visa tillsammans med TabularSource. | |
SearchPredicate | string |
✔️ | Ett booleskt uttryck som ska utvärderas för varje post i indata. Om den returnerar true matas posten ut. Se Sökpredikatsyntax. |
Sökpredikatsyntax
Med SearchPredicate kan du söka efter specifika termer i alla kolumner i en tabell. Operatorn som ska tillämpas på en söktermen beror på förekomsten och placeringen av en asterisk med jokertecken (*
) i termen, enligt följande tabell.
Literalt | Operator |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
Du kan också begränsa sökningen till en specifik kolumn, söka efter en exakt matchning i stället för en termmatchning eller söka efter reguljära uttryck. Syntaxen för vart och ett av dessa fall visas i följande tabell.
Syntax | Förklaring |
---|---|
Columnname: StringLiteral |
Den här syntaxen kan användas för att begränsa sökningen till en viss kolumn. Standardbeteendet är att söka i alla kolumner. |
Columnname== StringLiteral |
Den här syntaxen kan användas för att söka efter exakta matchningar av en kolumn mot ett strängvärde. Standardbeteendet är att söka efter en termmatchning. |
Kolumnmatches regex StringLiteral |
Den här syntaxen anger matchning av reguljära uttryck, där StringLiteral är regex-mönstret. |
Använd booleska uttryck för att kombinera villkor och skapa mer komplexa sökningar. Skulle till exempel "error" and x==123
resultera i en sökning efter poster som har termen error
i alla kolumner och värdet 123
i x
kolumnen.
Anteckning
Om både TabularSource och TableSources utelämnas överförs sökningen över alla obegränsade tabeller och vyer för databasen i omfånget.
Exempel på söksyntax för predikat
# | Syntax | Betydelse (motsvarande where ) |
Kommentarer |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
union T1,T2,A* | där * har "fel" |
|
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 |
Alla strängjämförelser är skiftlägeskänsliga | |
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) |
Kommentarer
Till skillnad från find-operatorn stöder operatorn search
inte följande:
withsource=
: Utdata innehåller alltid en kolumn med namnet$table
av typenstring
vars värde är tabellnamnet som varje post hämtades från (eller ett systemgenererat namn om källan inte är en tabell utan ett sammansatt uttryck).project=
,project-smart
: Utdataschemat motsvararproject-smart
utdataschemat.
Exempel
Global termsökning
Sök efter en term över alla obegränsade tabeller och vyer av databasen i omfånget.
search "Green"
Utdata innehåller poster från tabellerna Customers
, Products
och SalesTable
. Posterna Customers
visar alla kunder med efternamnet "Green" och posterna Products
och SalesTable
visar produkter med något omnämnande av "Green".
Villkorlig global termsökning
Sök efter poster som matchar både termer över alla obegränsade tabeller och vyer för databasen i omfånget.
search "Green" and ("Deluxe" or "Proseware")
Söka i en specifik tabell
Sök endast i tabellen Customers
.
search in (Products) "Green"
Skiftlägeskänslig sökning
Sök efter poster som matchar både skiftlägeskänsliga termer över alla obegränsade tabeller och vyer för databasen i omfånget.
search kind=case_sensitive "blue"
Sök efter specifika kolumner
Sök efter en term i kolumnerna "FirstName" och "LastName" över alla obegränsade tabeller och vyer för databasen i omfånget.
search FirstName:"Aaron" or LastName:"Hughes"
Begränsa sökning efter tidsstämpel
Sök efter en term över alla obegränsade tabeller och vyer av databasen i omfånget om termen visas i en post med ett datum som är större än det angivna datumet.
search "Hughes" and DateKey > datetime('2009-01-01')
Prestandatips
# | Tips | Föredrar | Över |
---|---|---|---|
1 | Föredrar att använda en enskild search operator över flera på varandra följande search operatorer |
search "billg" and ("steveb" or "satyan") |
sök "billg" | sök "steveb" eller "satyan" |
2 | Föredrar att filtrera inuti operatorn search |
search "billg" and "steveb" |
search * | där * har "billg" och * har "steveb" |
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för