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 regexStringLiteral 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:

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

Exemplos

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 Customerstabelas , Productse 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".

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"

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"