带有 gin_trgm_ops 选项的 Postgresql BTREE_GIN 索引?

Postgresql BTREE_GIN index with gin_trgm_ops option?

https://www.postgresql.org/docs/current/static/pgtrgm.html 上解释了如何使用带有 gin_trgm_ops 选项的特殊 GIN 索引来提高三元组相似性运算符的性能。

CREATE INDEX trgm_idx ON test_trgm USING GIN (t gin_trgm_ops);

也有人说:

These indexes do not support equality nor simple comparison operators, so you may need a regular B-tree index too.

但是,还有 BTREE_GIN 扩展应该允许使用 GIN 索引来替代 BTREE 索引。 https://www.postgresql.org/docs/current/static/btree-gin.html

我的问题是:如果我安装 BTREE_GIN 扩展,pg_trgm GIN 索引(带有 gin_trgm_ops 选项)是否可以用作 BTREE 索引的替代品?它是否结合了 BTREE_GIN 和 trigram GIN 索引的属性,或者仍然需要额外的 BTREE 索引来连接和相等表达式等?

不,如果您安装 btree_gin,您可以在“基本”数据类型上创建 GIN 索引,例如 integervarchartext

这通常是无用的,因为您可以使用这样的索引来做常规 B 树索引不能做得更好的事情,但是如果您想创建一个包含具有此类数据类型的列,例如,如果您要为 tscol @@ to_tsquery('big data') AND intcol = 42.

等表达式创建组合索引