Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks Runtime 19.0 en hoger
Important
Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks previews beheren.
Retourneert true als search_pattern deze wordt gevonden in een van de opgegeven doelkolomwaarden.
Zie zoekindexen voor volledige tekst in beheerde tabellen in Unity Catalog voor informatie over het versnellen search van query's met zoekindexen in volledige tekst.
Syntax
search ( column [, ...], search_pattern [, mode => mode] )
Arguments
column: een of meer doorzoekbare doelexpressies. Een doorzoekbare expressie heeft een van de volgende typen:-
STRINGmetUTF8_BINARYsortering. -
VARIANT. -
STRUCTmet ten minste één doorzoekbaar veld. De struct wordt automatisch uitgebreid naar doorzoekbare bladvelden op elke nestdiepte. -
ARRAYvan elk doorzoekbaar type.
Er is geen impliciete cast voor niet-tekenreeksdoelwaarden.
-
search_pattern: Een vouwbare (constante)STRINGexpressie met de waarde die moet worden gezocht.mode: Een optioneel benoemdSTRINGargument dat bepaalt hoe overeenkomsten worden uitgevoerd. Een van de volgende:-
'substring'(standaard): Komt overeen alssearch_patterndeze ergens binnen een doelwaarde wordt weergegeven. Gelijk aancontainsfunctie. -
'word': Komt overeen met de afzonderlijke woordensearch_patternten opzichte van een doelwaarde, ongeacht de volgorde.
-
Returns
A BOOLEAN.
-
truealssearch_patterndeze wordt gevonden in een van de doelkolomwaarden. -
NULLalssearch_patterndeze niet worden gevonden in een doelkolomwaarde en ten minste één van deze waarden isNULL. -
falseanders.
Aantekeningen
-
isearchfunctie is de hoofdlettergevoelige variant vansearchmet anderszins identiek gedrag. - Voor een
STRUCTargument doorzoekt de functie elk doorzoekbaar bladveld dat bereikbaar is vanuit de struct op het hoogste niveau, ongeacht de nestdiepte. Dezelfde uitbreiding is recursief van toepassing opSTRUCTvelden binnenVARIANTenARRAYwaarden. - In
'substring'de modus komenVARIANTsleutels en niet-tekenreeks scalaire waarden binnen eenVARIANTniet overeen. Gebruik'word'de modus of extraheer afzonderlijke velden om deze te doorzoeken.
Algemene foutvoorwaarden
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]