Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks Runtime 19.0 y versiones posteriores
Important
Esta característica se encuentra en su versión beta. Los administradores del área de trabajo pueden controlar el acceso a esta característica desde la página Vistas previas . Consulte Administrar versiones preliminares de Azure Databricks.
Devuelve true si search_pattern se encuentra en cualquiera de los valores de columna de destino proporcionados.
Para obtener información sobre cómo acelerar las search consultas con índices de búsqueda de texto completo, consulte Índices de búsqueda de texto completo en tablas administradas del catálogo de Unity.
Syntax
search ( column [, ...], search_pattern [, mode => mode] )
Arguments
column: una o varias expresiones de destino que se pueden buscar. Una expresión que se puede buscar tiene uno de estos tipos:-
STRINGconUTF8_BINARYintercalación. -
VARIANT. -
STRUCTcon al menos un campo que se puede buscar. La estructura se expande automáticamente a sus campos hoja que se pueden buscar en cualquier profundidad de anidamiento. -
ARRAYde cualquier tipo que se pueda buscar.
No hay ninguna conversión implícita para los valores de destino que no son de cadena.
-
search_pattern: expresión plegable (constante)STRINGcon el valor que se va a buscar.mode: argumento con nombreSTRINGopcional que controla cómo se realizan las coincidencias. Uno de los valores siguientes:-
'substring'(valor predeterminado): coincide sisearch_patternaparece en cualquier lugar dentro de un valor de destino. Equivalente a lacontainsfunción . -
'word': coincide con las palabras individuales de consearch_patternun valor de destino, independientemente del orden.
-
Returns
Un objeto BOOLEAN.
-
truesisearch_patternse encuentra en cualquiera de los valores de columna de destino. -
NULLsisearch_patternno se encuentra en ningún valor de columna de destino y al menos uno de esos valores esNULL. - De lo contrario,
false.
Notas
-
isearchfunction es la variante sin distinción entre mayúsculas y minúsculas desearchcon un comportamiento idéntico de lo contrario. - Para un
STRUCTargumento, la función busca todos los campos hoja que se pueden buscar accesibles desde la estructura de nivel superior, independientemente de la profundidad de anidamiento. La misma expansión se aplica de forma recursiva aSTRUCTlos campos dentroVARIANTde los valores yARRAY. - En
'substring'el modo,VARIANTlas claves y los valores escalares que no son de cadena dentro de noVARIANTcoinciden. Use'word'el modo o extraiga campos individuales para buscarlos.
Condiciones de error comunes
Ejemplos
-- 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]