From a614f980634003dae14b3675125f704d37856d0b Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Fri, 19 Oct 2018 21:40:59 -0700 Subject: Set arbitrary maximum size for tsvector column - The max size for tsvector is 1 MiB - We index only the first million of characters, it should be enough for most feed entries. --- storage/entry.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'storage') diff --git a/storage/entry.go b/storage/entry.go index ff081d4..5aa8b45 100644 --- a/storage/entry.go +++ b/storage/entry.go @@ -50,7 +50,7 @@ func (s *Storage) UpdateEntryContent(entry *model.Entry) error { query := ` UPDATE entries - SET document_vectors = to_tsvector(title || ' ' || coalesce(content, '')) + SET document_vectors = to_tsvector(substring(title || ' ' || coalesce(content, '') for 1000000)) WHERE id=$1 AND user_id=$2 ` _, err = tx.Exec(query, entry.ID, entry.UserID) @@ -68,7 +68,7 @@ func (s *Storage) createEntry(entry *model.Entry) error { INSERT INTO entries (title, hash, url, comments_url, published_at, content, author, user_id, feed_id, document_vectors) VALUES - ($1, $2, $3, $4, $5, $6, $7, $8, $9, to_tsvector($1 || ' ' || coalesce($6, ''))) + ($1, $2, $3, $4, $5, $6, $7, $8, $9, to_tsvector(substring($1 || ' ' || coalesce($6, '') for 1000000))) RETURNING id, status ` err := s.db.QueryRow( @@ -107,7 +107,7 @@ func (s *Storage) updateEntry(entry *model.Entry) error { query := ` UPDATE entries SET title=$1, url=$2, comments_url=$3, content=$4, author=$5, - document_vectors=to_tsvector($1 || ' ' || coalesce($4, '')) + document_vectors=to_tsvector(substring($1 || ' ' || coalesce($4, '') for 1000000)) WHERE user_id=$6 AND feed_id=$7 AND hash=$8 RETURNING id ` -- cgit v1.2.3