operador search
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Pesquisa um padrão de texto em várias tabelas e colunas.
Observação
Se você souber as tabelas e colunas específicas que deseja pesquisar, é mais eficiente usar os operadores union e where . O search
operador pode ser lento ao pesquisar em um grande número de tabelas e colunas.
Sintaxe
[T|
] search
[kind=
Diferenciação de maiúsculas e minúsculas ] [in
(
TableSources)
] SearchPredicate
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
T | string |
A fonte de dados tabular a ser pesquisada, como um nome de tabela, um operador de união ou os resultados de uma consulta tabular. Não é possível aparecer junto com TableSources. | |
CaseSensitivity | string |
Um sinalizador que controla o comportamento de todos os string operadores escalares, como has , em relação à diferenciação de maiúsculas e minúsculas. Os valores válidos são default , case_insensitive , case_sensitive . As opções default e case_insensitive são sinônimos, já que o comportamento padrão não diferencia maiúsculas de minúsculas. |
|
Fontes de tabela | string |
Uma lista separada por vírgulas de nomes de tabelas "curingas" para participar da pesquisa. A lista tem a mesma sintaxe que a lista do operador union. Não é possível aparecer junto com TabularSource. | |
Predicado de pesquisa | string |
✔️ | Uma expressão booleana a ser avaliada para cada registro na entrada. Se ele retornar true , o registro será gerado. Consulte Sintaxe de predicado de pesquisa. |
Sintaxe de predicado de pesquisa
O SearchPredicate permite que você pesquise termos específicos em todas as colunas de uma tabela. O operador que será aplicado a um termo de pesquisa depende da presença e do posicionamento de um asterisco curinga (*
) no termo, conforme mostrado na tabela a seguir.
Literal | Operador |
---|---|
billg |
has |
*billg |
hassuffix |
billg* |
hasprefix |
*billg* |
contains |
bi*lg |
matches regex |
Você também pode restringir a pesquisa a uma coluna específica, procurar uma correspondência exata em vez de uma correspondência de termo ou pesquisar por expressão regular. A sintaxe de cada um desses casos é mostrada na tabela a seguir.
Sintaxe | Explicação |
---|---|
ColumnName: StringLiteral |
Essa sintaxe pode ser usada para restringir a pesquisa a uma coluna específica. O comportamento padrão é pesquisar todas as colunas. |
ColumnName== StringLiteral |
Essa sintaxe pode ser usada para pesquisar correspondências exatas de uma coluna em relação a um valor de cadeia de caracteres. O comportamento padrão é procurar uma correspondência de termo. |
Coluna matches regex StringLiteral |
Essa sintaxe indica a correspondência de expressão regular, na qual StringLiteral é o padrão regex. |
Use expressões booleanas para combinar condições e criar pesquisas mais complexas. Por exemplo, "error" and x==123
resultaria em uma pesquisa de registros que tenham o termo error
em qualquer coluna e o valor 123
na x
coluna.
Observação
Se TabularSource e TableSources forem omitidos, a pesquisa será transportada por todas as tabelas e exibições irrestritas do banco de dados no escopo.
Exemplos de sintaxe de predicado de pesquisa
# | Sintaxe | Significado (equivalente where ) |
Comentários |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
união T1,T2,A* | onde * tem "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 |
Todas as comparações de cadeia de caracteres diferenciam maiúsculas de minúsculas | |
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) |
Comentários
Ao contrário do operador find, o search
operador não dá suporte ao seguinte:
withsource=
: A saída sempre incluirá uma coluna chamada$table
do tipostring
cujo valor é o nome da tabela da qual cada registro foi recuperado (ou algum nome gerado pelo sistema se a origem não for uma tabela, mas uma expressão composta).project=
,project-smart
: O esquema de saída é equivalente aoproject-smart
esquema de saída.
Exemplos
Pesquisa global de termos
Pesquise um termo em todas as tabelas e exibições irrestritas do banco de dados no escopo.
search "Green"
A saída contém registros das Customers
tabelas , Products
e SalesTable
. Os Customers
registros mostram todos os clientes com o sobrenome "Verde", e os Products
registros e SalesTable
mostram produtos com alguma menção de "Verde".
Pesquisa de termos globais condicionais
Pesquise registros que correspondam a ambos os termos em todas as tabelas e exibições irrestritas do banco de dados no escopo.
search "Green" and ("Deluxe" or "Proseware")
Pesquisar uma tabela específica
Pesquise apenas na Customers
tabela.
search in (Products) "Green"
Pesquisa com distinção entre maiúsculas e minúsculas
Pesquise registros que correspondam a ambos os termos que diferenciam maiúsculas de minúsculas em todas as tabelas e exibições irrestritas do banco de dados no escopo.
search kind=case_sensitive "blue"
Pesquisar colunas específicas
Pesquise um termo nas colunas "Nome" e "Sobrenome" em todas as tabelas e exibições irrestritas do banco de dados no escopo.
search FirstName:"Aaron" or LastName:"Hughes"
Limitar a pesquisa por carimbo de data/hora
Pesquise um termo em todas as tabelas e exibições irrestritas do banco de dados no escopo se o termo aparecer em um registro com uma data maior que a data especificada.
search "Hughes" and DateKey > datetime('2009-01-01')
Dicas de desempenho
# | Dica | Preferência | Acima |
---|---|---|---|
1 | Prefira usar um único search operador em vez de vários operadores consecutivos search |
search "billg" and ("steveb" or "satyan") |
Pesquisar "Billg" | Pesquise "Steven" ou "Satian" |
2 | Prefira filtrar dentro do search operador |
search "billg" and "steveb" |
pesquisar * | onde * tem "billg" e * tem "steveb" |