Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks Runtime 19.0 a novější
Důležité
Tato funkce je v beta verzi. Správci pracovního prostoru můžou řídit přístup k této funkci ze stránky Previews . Viz Manage Azure Databricks preview.
Vrátí true hodnotu, pokud search_pattern je nalezena v některé z zadaných hodnot cílového sloupce.
Informace o urychlení search dotazů pomocí fulltextových vyhledávacích indexů najdete v tématu Fulltextové indexy vyhledávání ve spravovaných tabulkách Katalogu Unity.
Syntax
search ( column [, ...], search_pattern [, mode => mode] )
Arguments
column: Jeden nebo více prohledávatelných cílových výrazů. Prohledávatelný výraz má jeden z těchto typů:-
STRINGUTF8_BINARYs kolací. -
VARIANT. -
STRUCTaspoň s jedním prohledávatelným polem. Struktura se automaticky rozšíří na prohledávatelná pole typu list v libovolné hloubkě vnoření. -
ARRAYlibovolného prohledávatelného typu.
Pro neřetězcové cílové hodnoty neexistuje implicitní přetypování.
-
search_pattern: Skládací (konstantní)STRINGvýraz s hodnotou, kterou chcete vyhledat.mode: Nepovinný pojmenovanýSTRINGargument, který určuje, jak se mají shody provádět. Jedna z těchto možností:-
'substring'(výchozí): Odpovídá, pokudsearch_patternse zobrazí kdekoli v cílové hodnotě. Ekvivalent funkcecontains. -
'word': Porovná jednotlivá slova vsearch_patterncílové hodnotě bez ohledu na pořadí.
-
Returns
Nějaké BOOLEAN.
-
truepokudsearch_patternse nachází v některé z cílových hodnot sloupce. -
NULLpokudsearch_patternv žádné cílové hodnotě sloupce nebyla nalezena aspoň jedna z těchto hodnot jeNULL. -
falsejinak.
Notes
-
isearchfunkce je varianta nerozlišujícísearchmalá a velká písmena s jinak identickým chováním. -
STRUCTU argumentu funkce prohledává každé prohledávatelné pole typu list dostupné ze struktury nejvyšší úrovně bez ohledu na hloubku vnoření. Stejné rozšíření se rekurzivně vztahuje naSTRUCTpole v rámciVARIANTaARRAYhodnoty. - V
'substring'režimuVARIANTse klíče a skalární hodnoty mimo řetězec v rámci objektuVARIANTneshodují. K jejich vyhledání použijte'word'režim nebo extrahujte jednotlivá pole.
Běžné chybové podmínky
Examples
-- 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]