operador search

Procura um padrão de texto em várias tabelas e colunas.

Nota

Se souber as tabelas e colunas específicas que pretende procurar, é mais eficaz utilizar a união e onde os operadores. O search operador pode ser lento ao procurar num 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 Necessário Descrição
T string A origem de dados tabular a procurar, como um nome de tabela, um operador sindical ou os resultados de uma consulta tabular. Não é possível aparecer em conjunto com o TableSources.
CaseSensitivity string Um sinalizador que controla o comportamento de todos os string operadores escalares, como has, no que diz respeito à sensibilidade a 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, uma vez que o comportamento predefinido não é sensível a maiúsculas e minúsculas.
TableSources string Uma lista separada por vírgulas de nomes de tabelas "com carateres universais" para participar na pesquisa. A lista tem a mesma sintaxe que a lista do operador sindical. Não é possível aparecer em conjunto com TabularSource.
SearchPredicate string ✔️ Uma expressão booleana a ser avaliada para cada registo na entrada. Se devolver true, o registo será exportado. Veja Pesquisar sintaxe predicado.

Sintaxe de predicado de pesquisa

O SearchPredicate permite-lhe procurar 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 colocação de um asterisco universal (*) no termo, conforme mostrado na tabela seguinte.

Literal Operador
billg has
*billg hassuffix
billg* hasprefix
*billg* contains
bi*lg matches regex

Também pode restringir a pesquisa a uma coluna específica, procurar uma correspondência exata em vez de uma correspondência de termos ou procurar por expressão normal. A sintaxe para cada um destes casos é apresentada na tabela seguinte.

Syntax Explicação
ColumnName:StringLiteral Esta sintaxe pode ser utilizada para restringir a pesquisa a uma coluna específica. O comportamento predefinido é procurar em todas as colunas.
ColumnName==StringLiteral Esta sintaxe pode ser utilizada para procurar correspondências exatas de uma coluna com um valor de cadeia. O comportamento predefinido é procurar uma correspondência de termos.
Colunamatches regexStringLiteral Esta sintaxe indica a correspondência de expressões regular, na qual StringLiteral é o padrão regex.

Utilize expressões booleanas para combinar condições e criar pesquisas mais complexas. Por exemplo, "error" and x==123 resultaria numa pesquisa de registos que tenham o termo error em quaisquer colunas e o valor 123 na x coluna.

Nota

Se tabularSource e TableSources forem omitidos, a pesquisa será realizada em todas as tabelas e vistas sem restrições da base de dados no âmbito.

Procurar exemplos de sintaxe predicado

# Syntax Significado (equivalente where) Comentários
1 search "err" where * has "err"
2 search in (T1,T2,A*) "err" união T1,T2,A* | em que * 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 são sensíveis a maiúsculas e 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)

Observações

Ao contrário do operador find, o search operador não suporta o seguinte:

  1. withsource=: o resultado incluirá sempre uma coluna denominada $table de tipo string cujo valor é o nome da tabela a partir da qual cada registo foi obtido (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

Procure um termo em todas as tabelas e vistas sem restrições da base de dados no âmbito.

search "Green"

O resultado contém registos das Customerstabelas , Productse SalesTable . Os Customers registos mostram todos os clientes com o apelido "Verde" e os Products registos e SalesTable mostram produtos com alguma menção de "Verde".

Procure registos que correspondam a ambos os termos em todas as tabelas sem restrições e vistas da base de dados no âmbito.

search "Green" and ("Deluxe" or "Proseware")

Procurar numa tabela específica

Procure apenas na Customers tabela.

search in (Products) "Green"

Procure registos que correspondam a termos sensíveis a maiúsculas e minúsculas em todas as tabelas sem restrições e vistas da base de dados no âmbito.

search kind=case_sensitive "blue"

Procurar colunas específicas

Procure um termo nas colunas "FirstName" e "LastName" em todas as tabelas e vistas sem restrições da base de dados no âmbito.

search FirstName:"Aaron" or LastName:"Hughes"

Limitar a pesquisa por carimbo de data/hora

Procure um termo em todas as tabelas e vistas sem restrições da base de dados no âmbito se o termo aparecer num registo com uma data superior à data indicada.

search "Hughes" and DateKey > datetime('2009-01-01')

Sugestões de Desempenho

# Dica Preferir Mais
1 Preferir utilizar um operador único search em vários operadores consecutivos search search "billg" and ("steveb" or "satyan") procurar "billg" | procurar "steveb" ou "satyan"
2 Preferir filtrar dentro do search operador search "billg" and "steveb" pesquisa * | em que * tem "billg" e * tem "steveb"