Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
fungsi
Berlaku untuk:
Databricks Runtime 19.0 ke atas
Important
Fitur ini ada di Beta. Admin ruang kerja dapat mengontrol akses ke fitur ini dari halaman Pratinjau . Lihat Kelola Pratinjau Azure Databricks.
Mengembalikan true jika search_pattern ditemukan dalam salah satu nilai kolom target yang disediakan.
Untuk informasi tentang mempercepat search kueri dengan indeks pencarian teks lengkap, lihat Indeks pencarian teks lengkap pada tabel terkelola Katalog Unity.
Syntax
search ( column [, ...], search_pattern [, mode => mode] )
Arguments
column: Satu atau beberapa ekspresi target yang dapat dicari. Ekspresi yang dapat dicari memiliki salah satu jenis ini:-
STRINGdenganUTF8_BINARYkolatasi. -
VARIANT. -
STRUCTdengan setidaknya satu bidang yang dapat dicari. Struktur secara otomatis diperluas ke bidang daun yang dapat dicari pada kedalaman berlapis apa pun. -
ARRAYdari jenis apa pun yang dapat dicari.
Tidak ada cast implisit untuk nilai target non-string.
-
search_pattern: Ekspresi yang dapat dilipat (konstanta)STRINGdengan nilai untuk dicari.mode: Argumen bernamaSTRINGopsional yang mengontrol bagaimana kecocokan dilakukan. Salah satu dari:-
'substring'(default): Cocok jikasearch_patternmuncul di mana saja dalam nilai target. Setara dengancontainsfungsi. -
'word': Mencocokkan kata-kata individual dalamsearch_patternterhadap nilai target, terlepas dari urutannya.
-
Returns
BOOLEAN.
-
truejikasearch_patternditemukan di salah satu nilai kolom target. -
NULLjikasearch_patterntidak ditemukan dalam nilai kolom target apa pun dan setidaknya salah satu nilai tersebut adalahNULL. -
falsejika tidak.
Notes
-
isearchfungsi adalah variansearchyang tidak peka huruf besar/kecil dengan perilaku yang identik. -
STRUCTUntuk argumen, fungsi mencari setiap bidang daun yang dapat dicari yang dapat dijangkau dari struktur tingkat atas, terlepas dari kedalaman berlapis. Ekspansi yang sama berlaku secara rekursif untukSTRUCTbidang di dalamVARIANTdanARRAYnilai. - Dalam
'substring'mode,VARIANTkunci dan nilai skalar non-string di dalamVARIANTtidak cocok. Gunakan'word'mode atau ekstrak bidang individual untuk mencari bidang tersebut.
Kondisi kesalahan umum
Contoh
-- 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]