我正在使用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);
Run Code Online (Sandbox Code Playgroud)
我在JSONB列中按键/值存储事务.其中一个要求是从键值中搜索客户名称,因此我运行的查询如下:
SELECT transaction as data FROM "PreStage".transaction
WHERE transaction->>('HCP_FST_NM') ilike ('%neer%');
Run Code Online (Sandbox Code Playgroud)
我做什么似乎查询不喜欢GIN索引.如何使查询使用不区分大小写模式搜索的GIN索引?
我尝试将jsonb列更改为文本,使用gin_trgm_ops搜索所需文本对其进行索引,然后将结果转换为json然后搜索所需的键/值.这种方法似乎不起作用.