Поиск Postgresql в JSON - PullRequest
       3

Поиск Postgresql в JSON

0 голосов
/ 28 ноября 2018

Пример у меня есть такая таблица

                id                               data
0ab5203b-9157-4934-8aba-1512afb0abd0 {"title":"Board of Supervisors Meeting","id":"1i3Ytw1mw98"}
7ee33a18-63da-4432-8967-bde5a44347a0 {"title":"Board of Supervisors Meeting","id":"4-dNAg2mn6o"}
8d71ca35-74eb-4751-b635-114bf04843f1 {"title":"COPD 101", "id":"l9O0jCR-sxg"}

И выбирает

select * from module_data where data::json->>'title' like '%Board%' 
select * from module_data where data->>'title' like '%Board%'

Вопросы:

  1. Как искать любой узел json?Что-то вроде

    select * from module_data where data::json like '%Board%'

  2. Структура JSON в строках таблицы может быть разной

У меня есть таблицааудит

id
created
json

Мне нужно найти строку, когда объект DTO был изменен

1 Ответ

0 голосов
/ 28 ноября 2018

В PostgreSQL 10 представлен Полнотекстовый поиск в JSONB

CREATE INDEX ON module_data
    USING gin ( to_tsvector('english', data) );

Новая индексация FTS в JSON работает с поиском по фразам и пропускает как JSON-разметку, так и ключи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...