[英]How to use Postgresql GIN index with ARRAY keyword
I'd like to create GIN
index on a scalar text column using an ARRAY[]
expression like so:我想使用ARRAY[]
表达式在标量文本列上创建GIN
索引,如下所示:
CREATE TABLE mytab (
scalar_column TEXT
)
CREATE INDEX idx_gin ON mytab USING GIN(ARRAY[scalar_column]);
Postgres reports an error on ARRAY
keyword. Postgres 报告ARRAY
关键字错误。
I'll use this index later in a query like so:稍后我将在这样的查询中使用此索引:
SELECT * FROM mytab WHERE ARRAY[scalar_column] <@ ARRAY['some', 'other', 'values'];
How do I create such an index?如何创建这样的索引?
You forgot to add an extra pair of parentheses that is necessary for syntactical reasons:由于语法原因,您忘记添加一对额外的括号:
CREATE INDEX idx_gin ON mytab USING gin ((ARRAY[scalar_column]));
The index does not make a lot of sense.该指数没有多大意义。 If you need to search for membership in a given array, use a regular B-tree index with = ANY
.如果您需要在给定数组中搜索成员资格,请使用带有= ANY
的常规 B 树索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.