我一直在寻找一种不区分大小写的查询方法,我在这里找到了它(postgresql-jsonb不区分大小字母的查询(,更确切地说,使用这样的查询:select ... where upper(data::text)::jsonb @> upper('[{"city":"New York"}]')::jsonb
然而,我似乎找不到足够的关于如何创建这样一个查询所使用的索引的信息。
where data::text @> '[{"city":"New York"}]'
与GIN索引完美配合
CREATE INDEX i1 ON mytable USING gin(data);
但是上(…(函数将触发成本太高的全扫描。
提前谢谢。
您需要索引完整的表达式:
CREATE INDEX ON tab USING gin ((upper(data::text)::jsonb));