Jadi saya punya jsonb
kolom yang memiliki entri seperti ini: https://pastebin.com/LxJ8rKk4
Apakah ada cara untuk menerapkan pencarian teks lengkap pada seluruh kolom jsonb?
Jadi saya punya jsonb
kolom yang memiliki entri seperti ini: https://pastebin.com/LxJ8rKk4
Apakah ada cara untuk menerapkan pencarian teks lengkap pada seluruh kolom jsonb?
Jawaban:
PostgreSQL 10 memperkenalkan Pencarian Teks Lengkap di JSONB
CREATE INDEX ON table
USING gin ( to_tsvector('english',jsondata) );
Pengindeksan FTS baru di JSON berfungsi dengan pencarian frase dan melompati markup JSON dan kunci.
Anda bisa, meskipun itu praktis tidak begitu jelas:
CREATE TABLE t
(
id SERIAL PRIMARY KEY,
the_data jsonb
) ;
CREATE INDEX idx_t_the_data_full_text
ON t
USING gist ( (to_tsvector('English', the_data::text))) ;
Dan kemudian kueri dengan:
SELECT
the_data
FROM
t
WHERE
to_tsvector('English', the_data::text) @@ plainto_tsquery('English', 'Action') ;
Perhatikan bahwa ini juga akan menemukan semua kunci objek Anda , bukan hanya nilainya . Dan Anda akan terbatas pada seberapa banyak teks
Aku di sini