Operátor search
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Prohledá textový vzor ve více tabulkách a sloupcích.
Poznámka:
Pokud znáte konkrétní tabulky a sloupce, které chcete prohledat, je výkonnější použít sjednocovací a kde operátory. Operátor search
může být pomalý při vyhledávání ve velkém počtu tabulek a sloupců.
Syntaxe
[T|
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
T | string |
Tabulkový zdroj dat, který se má prohledávat, například název tabulky, operátor sjednocení nebo výsledky tabulkového dotazu. Nelze zobrazit společně se zdroji tabulek. | |
Rozlišovat malá a velká písmena | string |
Příznak, který řídí chování všech string skalárních operátorů, jako has je například , s ohledem na citlivost písmen. Platné hodnoty jsou default , case_insensitive . case_sensitive Možnosti default a case_insensitive jsou synonymem, protože výchozí chování nerozlišuje malá a velká písmena. |
|
TableSources | string |
Seznam tabulek oddělených čárkami se zástupnými názvy tabulek, které se mají zúčastnit hledání. Seznam má stejnou syntaxi jako seznam operátoru sjednocení. Nelze zobrazit společně s tabulkovýmsourcem. | |
SearchPredicate | string |
✔️ | Logický výraz, který se má vyhodnotit pro každý záznam ve vstupu. Pokud se vrátí true , záznam se vypíše. Viz syntaxe predikátu hledání. |
Syntaxe predikátu vyhledávání
SearchPredicate umožňuje hledat konkrétní termíny ve všech sloupcích tabulky. Operátor, který se použije u hledaného termínu, závisí na přítomnosti a umístění zástupného znaku hvězdičky (*
) v termínu, jak je znázorněno v následující tabulce.
Literal | Operátor |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
Vyhledávání můžete také omezit na konkrétní sloupec, vyhledat přesnou shodu místo shody termínu nebo hledat podle regulárního výrazu. Syntaxe pro každý z těchto případů je znázorněna v následující tabulce.
Syntaxe | Vysvětlení |
---|---|
ColumnName: StringLiteral |
Tuto syntaxi lze použít k omezení vyhledávání na konkrétní sloupec. Výchozím chováním je prohledávat všechny sloupce. |
ColumnName== StringLiteral |
Tato syntaxe se dá použít k vyhledání přesných shod sloupce s řetězcovou hodnotou. Výchozím chováním je vyhledat shodu termínů. |
Sloupec matches regex StringLiteral |
Tato syntaxe označuje porovnávání regulárních výrazů, ve kterých StringLiteral je vzor regulárního výrazu. |
Pomocí logických výrazů můžete kombinovat podmínky a vytvářet složitější hledání. Výsledkem by bylo například "error" and x==123
hledání záznamů, které mají termín error
v libovolném sloupci a hodnotu 123
ve sloupci x
.
Poznámka:
Pokud nejsou vynechány tabulkové zdroje a zdroje tabulek, bude hledání přeneseno přes všechny neomezené tabulky a zobrazení databáze v oboru.
Příklady syntaxe predikátu vyhledávání
# | Syntaxe | Význam (ekvivalent where ) |
Komentáře |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
union T1,T2,A* | where * has "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 |
Všechna porovnání řetězců rozlišují malá a velká písmena. | |
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) |
Poznámky
Na rozdíl od operátoru search
find operátor nepodporuje následující:
withsource=
: Výstup bude vždy obsahovat sloupec s názvem$table
typustring
, jehož hodnotou je název tabulky, ze kterého se každý záznam načetl (nebo nějaký systémový vygenerovaný název, pokud zdrojem není tabulka, ale složený výraz).project=
,project-smart
: Výstupní schéma je ekvivalentníproject-smart
výstupnímu schématu.
Příklady
Globální hledání termínů
Vyhledejte termín ve všech neomezených tabulkách a zobrazeních databáze v oboru.
search "Green"
Výstup obsahuje záznamy z , Customers
Products
a SalesTable
tabulky. Záznamy Customers
zobrazují všechny zákazníky s příjmením "Green" a Products
záznamy SalesTable
zobrazují produkty s některými zmínkami "Green".
Podmíněné globální vyhledávání termínů
Vyhledejte záznamy, které odpovídají podmínkám ve všech neomezených tabulkách a zobrazeních databáze v oboru.
search "Green" and ("Deluxe" or "Proseware")
Hledání v konkrétní tabulce
Prohledávat pouze v Customers
tabulce.
search in (Products) "Green"
Hledání s rozlišováním velkých a malých písmen
Vyhledejte záznamy, které odpovídají podmínkám citlivým na malá a velká písmena ve všech neomezených tabulkách a zobrazeních databáze v oboru.
search kind=case_sensitive "blue"
Hledání konkrétních sloupců
Ve sloupcích FirstName (Jméno) a LastName (Příjmení) vyhledejte výraz ve všech neomezených tabulkách a zobrazeních databáze v oboru.
search FirstName:"Aaron" or LastName:"Hughes"
Omezit vyhledávání podle časového razítka
Vyhledejte termín ve všech neomezených tabulkách a zobrazeních databáze v oboru, pokud se termín zobrazí v záznamu s datem větším než dané datum.
search "Hughes" and DateKey > datetime('2009-01-01')
Tipy pro zvýšení výkonu
# | Tip | Preferovat | Přes |
---|---|---|---|
0 | Preferujete použití jednoho search operátoru před několika po sobě jdoucími search operátory. |
search "billg" and ("steveb" or "satyan") |
hledat "billg" | hledat "steveb" nebo "satyan" |
2 | Raději filtrujte uvnitř operátoru search . |
search "billg" and "steveb" |
hledat * | kde * má "billg" a * má "steveb" |