operatore search
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft 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:
withsource=
: l'output includerà sempre una colonna denominata$table
di tipostring
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).project=
,project-smart
: lo schema di output equivale alloproject-smart
schema di output.
Esempi
Ricerca termini globale
Cercare un termine in tutte le tabelle e le viste senza restrizioni del database nell'ambito.
search "Green"
L'output contiene record delle Customers
tabelle , Products
e 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".
Ricerca di termini globali condizionali
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"
Ricerca con distinzione tra maiuscole e minuscole
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" |