Як я можу використовувати повнотекстовий пошук у колонці jsonb з Postgres?


Відповіді:



3

Ви можете, хоча це практично не так зрозуміло:

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

А потім запитайте його за допомогою:

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

Зауважте, що тут також знайдуться всі ваші об’єктні ключі , а не лише значення . І ви обмежитеся кількістю тексту

dbfiddle тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.