Sdílet prostřednictvím


Operátor search

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 hasje 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í:

  1. withsource=: Výstup bude vždy obsahovat sloupec s názvem $table typu string , 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).
  2. project=, project-smart: Výstupní schéma je ekvivalentní project-smart výstupnímu schématu.

Příklady

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 , CustomersProductsa 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".

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"

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"