Dela via


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 truematas 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 regexStringLiteral 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:

  1. withsource=: Utdata innehåller alltid en kolumn med namnet $table av typen string 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).
  2. project=, project-smart: Utdataschemat motsvarar project-smart utdataschemat.

Exempel

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, Productsoch SalesTable . Posterna Customers visar alla kunder med efternamnet "Green" och posterna Products och SalesTable visar produkter med något omnämnande av "Green".

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"

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"