在 postgresql 中创建 gin 索引
creating gin index in postgreqsql
我正在使用 "PostgreSQL 9.1.5",我正在尝试为文本创建杜松子酒索引 column.It 显示错误消息。
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%'
如果你想使用三元组搜索,你需要先安装 pg_trgm 扩展:
create extension pg_trgm;
(这需要以超级用户身份完成)
那么需要提供索引中要使用的运算符class:
CREATE INDEX users_search_idx
ON users USING gin (first_name gin_trgm_ops, last_name gin_trgm_ops);
但是两列的组合索引不支持,例如where last_name like
%aeb%'`。如果需要对两列分别进行搜索,则需要两个索引。
我正在使用 "PostgreSQL 9.1.5",我正在尝试为文本创建杜松子酒索引 column.It 显示错误消息。
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%'
如果你想使用三元组搜索,你需要先安装 pg_trgm 扩展:
create extension pg_trgm;
(这需要以超级用户身份完成)
那么需要提供索引中要使用的运算符class:
CREATE INDEX users_search_idx
ON users USING gin (first_name gin_trgm_ops, last_name gin_trgm_ops);
但是两列的组合索引不支持,例如where last_name like
%aeb%'`。如果需要对两列分别进行搜索,则需要两个索引。