Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks Runtime 19.0 e superior
Important
Esse recurso está em Beta. Os administradores do workspace podem controlar o acesso a esse recurso na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.
Retorna true se search_pattern for encontrado em qualquer um dos valores de coluna de destino fornecidos.
Para obter informações sobre como acelerar search consultas com índices de pesquisa de texto completo, consulte índices de pesquisa de texto completo em tabelas gerenciadas do Catálogo do Unity.
Syntax
search ( column [, ...], search_pattern [, mode => mode] )
Arguments
column: uma ou mais expressões de destino pesquisáveis. Uma expressão pesquisável tem um destes tipos:-
STRINGcomUTF8_BINARYordenação. -
VARIANT. -
STRUCTcom pelo menos um campo pesquisável. O struct é expandido automaticamente para seus campos folha pesquisáveis em qualquer profundidade de aninhamento. -
ARRAYde qualquer tipo pesquisável.
Não há nenhuma conversão implícita para valores de destino que não sejam de cadeia de caracteres.
-
search_pattern: uma expressão dobrável (constante)STRINGcom o valor a ser pesquisado.mode: um argumento nomeadoSTRINGopcional que controla como as correspondências são executadas. Um destes:-
'substring'(padrão): corresponde sesearch_patternaparece em qualquer lugar dentro de um valor de destino. Equivalente àcontainsfunção. -
'word': corresponde as palavras individuais emsearch_patternrelação a um valor de destino, independentemente da ordem.
-
Returns
Um BOOLEAN.
-
truesesearch_patternfor encontrado em qualquer um dos valores de coluna de destino. -
NULLsesearch_patternnão for encontrado em nenhum valor de coluna de destino e pelo menos um desses valores forNULL. -
falsecaso contrário.
Notes
-
isearcha função é a variante que não diferencia maiúsculas de minúsculas comsearchcomportamento idêntico. - Para obter um
STRUCTargumento, a função pesquisa cada campo folha pesquisável acessível do struct de nível superior, independentemente da profundidade de aninhamento. A mesma expansão se aplica recursivamente aSTRUCTcampos dentroVARIANTeARRAYvalores. - No
'substring'modo,VARIANTas chaves e os valores escalares que não são de cadeia de caracteres dentro de umVARIANTnão são correspondidos. Use o'word'modo ou extraia campos individuais para pesquisá-los.
Condições de erro comuns
Exemplos
-- Basic examples.
> SELECT search(column, 'needle', mode => 'substring') FROM VALUES ('Needle') AS table(column);
false
> SELECT search(column, 'quick fox', mode => 'substring') FROM VALUES ('quick brown fox') AS table(column);
false
> SELECT search(column, lower('NEEDLE')) FROM VALUES ('needle') AS table(column);
true
> SELECT search(column, 'quick fox', mode => 'word') FROM VALUES ('quick brown fox') AS table(column);
true
> SELECT search(column, 'qui fox', mode => 'word') FROM VALUES ('quick fox') AS table(column);
false
-- Automatic expansion of STRUCT columns to their searchable leaf fields.
> CREATE TABLE test_table (
usage_stats STRUCT<digits: INT>,
customer_info STRUCT<
contact: STRUCT<json_field: VARIANT>,
name: STRING>)
USING DELTA;
> SELECT * FROM test_table WHERE search(usage_stats.digits, 'needle');
[DATATYPE_MISMATCH.UNEXPECTED_INPUT_TYPE]
> SELECT * FROM test_table WHERE search(customer_info, 'needle');
-- Equivalent to:
> SELECT * FROM test_table
WHERE search(customer_info.contact.json_field, customer_info.name, 'needle');
> SELECT * FROM test_table WHERE search(customer_info.contact, 'needle');
-- Equivalent to:
> SELECT * FROM test_table
WHERE search(customer_info.contact.json_field, 'needle');
-- VARIANT behavior: substring mode does not match keys or non-string scalar values.
> CREATE TABLE test_table AS
SELECT parse_json('{
"role": "user",
"id": 101,
"preferences": {"theme": "dark", "language": "en"}
}') AS column;
> SELECT search(column, 'user', mode => 'substring') FROM test_table;
true
> SELECT search(column, 'preferences', mode => 'substring') FROM test_table;
false
> SELECT search(column, '101', mode => 'substring') FROM test_table;
false
-- NULL behavior.
> SELECT search(NULL, 'needle', mode => 'substring');
NULL
> SELECT search(CAST(NULL AS STRING), 'needle', mode => 'substring');
NULL
> SELECT search('needle in haystack', NULL, mode => 'substring');
[SEARCH_REQUIRES_STRING_LITERALS_ARGUMENTS]