Condividi tramite


operatore search

Si applica a: ✅Microsoft Fabric✅Azure Esplora dati Azure MonitorMicrosoft Sentinel

Cerca un criterio di testo in più tabelle e colonne.

Nota

Se si conoscono le tabelle e le colonne specifiche da cercare, è più efficiente usare l'unione e gli operatori dove. L'operatore search può essere lento durante la ricerca in un numero elevato di tabelle e colonne.

Sintassi

[T |] search [kind= CaseSensitivity ] [in (TableSources)] SearchPredicate

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
T string Origine dati tabulare su cui eseguire la ricerca, ad esempio un nome di tabella, un operatore di unione o i risultati di una query tabulare. Impossibile visualizzare insieme a TableSources.
CaseSensitivity string Flag che controlla il comportamento di tutti gli string operatori scalari, ad esempio has, in relazione alla distinzione tra maiuscole e minuscole. I valori validi sono default, case_insensitive, case_sensitive. Le opzioni default e case_insensitive sono sinonimi, poiché il comportamento predefinito non fa distinzione tra maiuscole e minuscole.
TableSources string Elenco delimitato da virgole di nomi di tabella "con caratteri jolly" da partecipare alla ricerca. L'elenco ha la stessa sintassi dell'elenco dell'operatore union. Impossibile visualizzare insieme a TabularSource.
RicercaPredicate string ✔️ Espressione booleana da valutare per ogni record nell'input. Se restituisce true, il record viene restituito. Vedere sintassi del predicato di ricerca.

Sintassi del predicato di ricerca

SearchPredicate consente di cercare termini specifici in tutte le colonne di una tabella. L'operatore che verrà applicato a un termine di ricerca dipende dalla presenza e dalla posizione di un asterisco jolly (*) nel termine, come illustrato nella tabella seguente.

Literal Operatore
billg has
*billg hassuffix
billg* hasprefix
*billg* contains
bi*lg matches regex

È anche possibile limitare la ricerca a una colonna specifica, cercare una corrispondenza esatta anziché una corrispondenza di termine o cercare in base a un'espressione regolare. La sintassi per ognuno di questi casi è illustrata nella tabella seguente.

Sintassi Spiegazione
ColumnName:StringLiteral Questa sintassi può essere usata per limitare la ricerca a una colonna specifica. Il comportamento predefinito consiste nel cercare tutte le colonne.
ColumnName==StringLiteral Questa sintassi può essere usata per cercare corrispondenze esatte di una colonna rispetto a un valore stringa. Il comportamento predefinito consiste nell'cercare una corrispondenza termini.
StringLiteral colonna matches regex Questa sintassi indica la corrispondenza di espressioni regolari, in cui StringLiteral è il modello regex.

Usare espressioni booleane per combinare condizioni e creare ricerche più complesse. Ad esempio, "error" and x==123 verrà eseguita una ricerca di record con il termine error in qualsiasi colonna e il valore 123 nella x colonna.

Nota

Se tabularSource e TableSources vengono omessi, la ricerca viene eseguita su tutte le tabelle e le viste senza restrizioni del database nell'ambito.

Esempi di sintassi del predicato di ricerca

# Sintassi Significato (equivalente where) Commenti
1 search "err" where * has "err"
2 search in (T1,T2,A*) "err" union T1,T2,A* | dove * ha "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 Tutti i confronti tra stringhe fanno distinzione tra maiuscole e minuscole
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)

Osservazioni:

A differenza dell'operatore find, l'operatore search non supporta quanto segue:

  1. withsource=: l'output includerà sempre una colonna denominata $table di tipo string il cui valore è il nome della tabella da cui è stato recuperato ogni record (o un nome generato dal sistema se l'origine non è una tabella ma un'espressione composita).
  2. project=, project-smart: lo schema di output equivale allo project-smart schema di output.

Esempi

Cercare un termine in tutte le tabelle e le viste senza restrizioni del database nell'ambito.

search "Green"

L'output contiene record delle Customerstabelle , Productse SalesTable . I Customers record mostrano tutti i clienti con il cognome "Verde" e i Products record e SalesTable mostrano i prodotti con una menzione di "Verde".

Cercare record che corrispondono a entrambi i termini in tutte le tabelle e viste senza restrizioni del database nell'ambito.

search "Green" and ("Deluxe" or "Proseware")

Cercare una tabella specifica

Eseguire la ricerca solo nella Customers tabella.

search in (Products) "Green"

Cercare record che corrispondono a termini con distinzione tra maiuscole e minuscole in tutte le tabelle e le viste senza restrizioni del database nell'ambito.

search kind=case_sensitive "blue"

Cercare colonne specifiche

Cercare un termine nelle colonne "FirstName" e "LastName" in tutte le tabelle e le viste senza restrizioni del database nell'ambito.

search FirstName:"Aaron" or LastName:"Hughes"

Limitare la ricerca in base al timestamp

Cercare un termine in tutte le tabelle e le viste senza restrizioni del database nell'ambito se il termine viene visualizzato in un record con una data maggiore della data specificata.

search "Hughes" and DateKey > datetime('2009-01-01')

Suggerimenti per incrementare le prestazioni

# Suggerimento Preferire Over (Selezione)
1 Preferire l'uso di un singolo search operatore su diversi operatori consecutivi search search "billg" and ("steveb" or "satyan") cercare "billg" | cercare "steveb" o "satyan"
2 Preferisce filtrare all'interno dell'operatore search search "billg" and "steveb" search * | dove * ha "billg" e * ha "steveb"