2017-01-23 51 views
0

postgresqlデータベースで全文検索を高速化するために部分インデックスを作成しようとしています。Postgresqlの部分インデックスが最大インデックス行サイズを超えています

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

私のインデックスを作成しようとしたとき、私は次のエラーを取得しています:

index row requires 16016 bytes, maximum size is 8191 

は説明のいくつかは非常に長く、私のインデックスの行数の制限を超えています。しかし私がインデックスから欲しかったのは、私の検索で説明のない本を検討していないことを確認することです(説明の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はnullである、と私はからそれらの行を除外したいと思いますサーチ。それを行う良い方法はありますか? – user1023465

+0

@ user1023465:編集済み「どこ...」 –

+0

ああ、完璧です、ありがとうございます! – user1023465

関連する問題