tsearch2 problems / limitations
Hi,
I've successfully added tsearch2 to an existing database and the speedup
of searches is brilliant. I'm now trying to extend this to other parts
of our system.
One of the tables holds reasonable amounts of text, some fields hold up
to 2Mb. When I try and run
UPDATE table SET idxfti=to_tsvector('default', field);
it runs for a while then aborts with the following message
ERROR: value is too big
Does anyone know what the problem might be here? Does tsearch2 have
configurable (or compilable) settings that could get around this?
Many Thanks,
James
On Tue, 22 Feb 2005, James Croft wrote:
Hi,
I've successfully added tsearch2 to an existing database and the speedup of
searches is brilliant. I'm now trying to extend this to other parts of our
system.One of the tables holds reasonable amounts of text, some fields hold up to
2Mb. When I try and runUPDATE table SET idxfti=to_tsvector('default', field);
it runs for a while then aborts with the following message
ERROR: value is too big
Does anyone know what the problem might be here? Does tsearch2 have
configurable (or compilable) settings that could get around this?
this is tsearch2 limitation on length of ts_vector about 1mb.
you may stop using postional information for this vector.
Many Thanks,
James---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
Regards,
Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83
On Tue, Feb 22, 2005 at 01:29:45PM +0000, James Croft wrote:
One of the tables holds reasonable amounts of text, some fields hold up
to 2Mb. When I try and runUPDATE table SET idxfti=to_tsvector('default', field);
it runs for a while then aborts with the following message
ERROR: value is too big
README.tsearch2 says that the maximum size of a tsvector is 2^20
bytes (1M). You can see that limit enforced in the makevalue()
function in tsvector.c (similarly in pushquery() in query.c):
if (cur - str > MAXSTRPOS)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("value is too big")));
MAXSTRPOS is defined in tsvector.h:
#define MAXSTRPOS ( 1<<20 )
Maybe Oleg will reply and say whether it's safe to change that
or not.
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/