Compartilhar via


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, é 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= CaseSensitivity ] [ (inTableSources)] 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 pode 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 são sinônimos, já que o comportamento padrão não diferencia case_insensitive maiúsculas de minúsculas.
TabelaFontes 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 de união. Não pode aparecer junto com TabularSource.
SearchPredicate 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 do 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 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 para 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 procurar 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.
Coluna matches regex StringLiteral Essa sintaxe indica 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 por 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á 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 cadeias 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 de localização, o search operador não suporta o seguinte:

  1. withsource=: A saída sempre incluirá uma coluna chamada $table de tipo string 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).
  2. project=, project-smart: O esquema de saída é equivalente ao esquema de project-smart saída.

Exemplos

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 Customerstabelas , Productse SalesTable . Os Customers registros mostram todos os clientes com o sobrenome "Verde", e os Products registros mostram SalesTable produtos com alguma menção de "Verde".

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 Customers apenas na tabela.

search in (Products) "Green"

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

Procure 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

Procure 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 do que a data determinada.

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" | Pesquisar "Steveb" ou "Satyan"
2 Prefira filtrar dentro do search operador search "billg" and "steveb" pesquisar * | onde * tem "billg" e * tem "steveb"