【问题标题】:creating gin index in postgreqsql在 postgresql 中创建索引
【发布时间】:2019-10-15 11:44:28
【问题描述】:

我正在使用“PostgreSQL 9.1.5”,我正在尝试为文本列创建 gin 索引。它显示错误消息。

CREATE TABLE users (
    first_name text,
    last_name text
)


CREATE INDEX users_search_idx ON users USING gin (first_name,last_name)

我有这样的列值(first_name)

"456fc0470a95c02bb42ef3e35fc81852"

我正在尝试这样查询数据。

SELECT count(*) FROM users where first_name like '%aeb%'

【问题讨论】:

  • Postgres 9.1 是 no longer supported 你应该尽快计划升级。
  • 我在原来的帖子中做了一些更改。实际上我收到错误消息数据类型“文本没有访问方法“gin”的默认运算符类“
  • 这是一个奇怪的名字 ;)

标签: indexing postgresql-9.1


【解决方案1】:

如果你想使用三元搜索,你需要先安装pg_trgm扩展:

create extension pg_trgm; 

(这需要以超级用户身份完成)

那么你需要提供要在索引中使用的操作符类:

CREATE INDEX users_search_idx 
   ON users USING gin (first_name gin_trgm_ops, last_name gin_trgm_ops);

但是两列上的组合索引不支持例如where last_name like%aeb%'`。如果需要单独搜索两列,则需要两个索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 2016-05-27
    相关资源
    最近更新 更多