在jsonb列postgresql9.5上创建gin索引时出错

时间:2017-02-19 15:59:56

标签: postgresql indexing postgresql-9.5

我有product_reviews TABLE product_review jsonb列。

jsonb column : [{"comment": [{"condition": "Good", "Entered": "true"}], "productid": 321}]

CREATE INDEX idx_product_reviews_product_review ON product_reviews  USING gin (CAST (product_review ->> 'productid') AS bigint )   ;

所以当我尝试在这个jsonb列上创建gin索引时,我得到错误。

ERROR:  data type bigint has no default operator class for access method "gin"
HINT:  You must specify an operator class for the index or define a default operator class for the data type.

我想将productid作为bigint类型值进行索引,因此我可以获得比较此产品的jsonb“comment”值。

1 个答案:

答案 0 :(得分:0)

btree_gin https://www.postgresql.org/docs/9.5/btree-gin.html扩展为许多数据类型(包括bigint)提供了gin运算符类。

使用

启用btree_gin扩展后创建索引
CREATE EXTENSION btree_gin;