Сопоставление с образцом по ключу / значению jsonb
Я использую PostgreSQL 9.4. Мой стол имеетjsonb
колонка:
CREATE TABLE "PreStage".transaction (
transaction_id serial NOT NULL,
transaction jsonb
CONSTRAINT pk_transaction PRIMARY KEY (transaction_id)
);
CREATE INDEX idxgin ON "PreStage".transaction USING gin (transaction);
Я храню транзакции в терминах ключ / значение в столбце JSONB. Одним из требований является поиск имени клиента по значению ключа, поэтому я выполняю такой запрос:
SELECT transaction as data FROM "PreStage".transaction
WHERE transaction->>('HCP_FST_NM') ilike ('%neer%');
То, что я делаю, кажется, что запросу не нравится индекс GIN. Как сделать так, чтобы запрос использовал индекс GIN с поиском по шаблону без учета регистра?
Я пытался изменитьjsonb
столбец к тексту, индексация его с помощьюgin_trgm_ops
затем поиск необходимого текста, а затем преобразование результата вjson
и затем поиск нужного ключа / значения. Этот подход, похоже, не работает.