【发布时间】:2017-10-28 07:20:13
【问题描述】:
全文搜索查询
SELECT id
FROM (
SELECT id,
ts_rank_cd(setweight(to_tsvector('english', lower(title)), 'A') ||
setweight(to_tsvector('english', lower(body)), 'B'),
plainto_tsquery('english', 'query')) AS rank
FROM table) s
ORDER BY rank DESC LIMIT 50 OFFSET 0;
创建索引命令
CREATE INDEX fts_index ON table USING
gin((setweight(to_tsvector('english', lower(title)), 'A') ||
setweight(to_tsvector('english', lower(body)), 'B')));"
该表包含超过 90,000 行,但 postgres 选择执行顺序扫描,这需要几分钟,而不是使用索引。
【问题讨论】:
标签: postgresql full-text-indexing