Yani ben böyle jsonb
girişleri olan bir sütun var: https://pastebin.com/LxJ8rKk4
Tüm jsonb sütununda tam metin araması yapmanın bir yolu var mı?
Yani ben böyle jsonb
girişleri olan bir sütun var: https://pastebin.com/LxJ8rKk4
Tüm jsonb sütununda tam metin araması yapmanın bir yolu var mı?
Yanıtlar:
PostgreSQL 10 , JSONB'de Tam Metin Arama'yı tanıttı
CREATE INDEX ON table
USING gin ( to_tsvector('english',jsondata) );
JSON'daki yeni FTS dizine ekleme, öbek arama ile çalışır ve hem JSON işaretlemesi hem de anahtarları atlar.
Bunun pratik olup olmadığı çok açık olmasa da şunları yapabilirsiniz:
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))) ;
Ve sonra sorgula:
SELECT
the_data
FROM
t
WHERE
to_tsvector('English', the_data::text) @@ plainto_tsquery('English', 'Action') ;
Bunun yalnızca nesne değerlerini değil tüm nesne anahtarlarınızı da bulacağını unutmayın . Ve ne kadar metin ile sınırlı kalacaksınız
dbfiddle burada