2017-01-23 966 views
0

我想创建一个部分索引来加速我的postgresql数据库中的全文搜索。Postgresql部分索引超过最大索引行大小

index row requires 16016 bytes, maximum size is 8191 

,一些描述是相当长的,并且超过了我的索引行限制:

CREATE INDEX book_search_not_null_index ON books(description) WHERE description IS NOT NULL; 

当试图创建我的索引我收到以下错误。尽管我想从我的索引中获得所需,但要确保我不考虑没有描述的书籍(大约10%的描述为空)。有没有办法解决这个限制或更好的方法来构造这个索引?

回答

1

使用GIN indexes for full text search

create index book_search_not_null_index ON books 
using GIN (to_tsvector('english', description)) 
where description is not null 
+0

感谢您的答复,我实际使用的的tsvector的指标,现在,但是是的tsvector如果无效的描述,我想排除的那些行搜索。有没有一个好的方法来做到这一点? – user1023465

+0

@ user1023465:编辑'在哪里......' –

+0

哦,这很完美,非常感谢! – user1023465