operador search
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, será mais eficaz usar a união e onde os operadores. O search
operador pode ser lento ao pesquisar em um grande número de tabelas e colunas.
Syntax
[T|
] search
[kind=
CaseSensitivity ] [in
(
TableSources)
] SearchPredicate
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Obrigatório | 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 à confidencialidade 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. |
|
TableSources | string |
Uma lista separada por vírgulas de nomes de tabela "curinga" para participar da pesquisa. A lista tem a mesma sintaxe que a lista do operador union. Não é possível aparecer junto com TabularSource. | |
SearchPredicate | string |
✔️ | Uma expressão booliana a ser avaliada para cada registro na entrada. Se retornar true , o registro será gerado. Consulte Sintaxe de predicado de pesquisa. |
Sintaxe de predicado de pesquisa
O SearchPredicate permite pesquisar 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 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 para cada um desses casos é mostrada na tabela a seguir.
Syntax | 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 termos. |
Colunamatches regex StringLiteral |
Essa sintaxe indica a correspondência de expressões regulares, na qual StringLiteral é o padrão regex. |
Use expressões boolianas para combinar condições e criar pesquisas mais complexas. Por exemplo, "error" and x==123
resultaria em uma pesquisa de registros que têm o termo error
em qualquer coluna e o valor 123
na x
coluna.
Observação
Se TabularSource e TableSources forem omitidos, a pesquisa será realizada em todas as tabelas e exibições irrestritas do banco de dados no escopo.
Exemplos de sintaxe de predicado de pesquisa
# | Syntax | Significado (equivalente where ) |
Comentários |
---|---|---|---|
1 | search "err" |
where * has "err" |
|
2 | search in (T1,T2,A*) "err" |
union 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
de tipostring
cujo valor é o nome da tabela do 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 de termos globais
Pesquise um termo sobre 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 alguns menção de "Verde".
Pesquisa de termos globais condicionais
Pesquise registros que correspondam a ambos os termos em todas as tabelas irrestritas e exibições do banco de dados no escopo.
search "Green" and ("Deluxe" or "Proseware")
Pesquisar uma tabela específica
Pesquise somente na Customers
tabela.
search in (Products) "Green"
Pesquisa que diferencia maiúsculas de minúsculas
Pesquise registros que correspondam a termos que diferenciam maiúsculas de minúsculas em todas as tabelas irrestritas e exibições do banco de dados no escopo.
search kind=case_sensitive "blue"
Pesquisar colunas específicas
Pesquise um termo nas colunas "FirstName" e "LastName" 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 sobre 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 | Prefira | Acima |
---|---|---|---|
1 | Preferir usar um único search operador em vários operadores consecutivos search |
search "billg" and ("steveb" or "satyan") |
pesquisar "billg" | pesquisar "steveb" ou "satyan" |
2 | Preferir filtrar dentro do search operador |
search "billg" and "steveb" |
search * | onde * tem "billg" e * tem "steveb" |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de