简体   繁体   English

如何使用带有 ARRAY 关键字的 Postgresql GIN 索引

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM