Come posso utilizzare una ricerca full-text su una colonna jsonb con Postgres?


Risposte:



3

Puoi, anche se ciò che è pratico non è così chiaro:

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))) ;

E poi interrogalo con:

SELECT
    the_data
FROM
    t
WHERE
    to_tsvector('English', the_data::text) @@ plainto_tsquery('English', 'Action') ;

Nota che questo troverà anche tutte le chiavi dell'oggetto , non solo i valori . E sarai limitato a quanto testo

dbfiddle qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.