Обсуждение: Problem creating GIN index on multiple weighted columns
I'm using 8.4.8, attempting to run the following command:
=> create index profile_search_index on profile_profile using
gin(setweight(to_tsvector('english', name), 'A') ||
setweight(to_tsvector('english', description), 'B'));
I get this error:
ERROR: syntax error at or near "||"
LINE 1: ... gin(setweight(to_tsvector('english', name), 'A') || setweig...
^
Is this a bug, or a known limitation, or is my syntax just wrong? The
following works fine:
select setweight(to_tsvector('english', name), 'A') ||
setweight(to_tsvector('english', description), 'B') from
profile_profile;
I would prefer not to store the precomputed tsvector in a separate
column if I can avoid it, although I'll do that if I can't get this to
work. Thanks for any help.
Ryan
Ryan Fugger <arv@ryanfugger.com> writes:
> I'm using 8.4.8, attempting to run the following command:
> => create index profile_search_index on profile_profile using
> gin(setweight(to_tsvector('english', name), 'A') ||
> setweight(to_tsvector('english', description), 'B'));
> I get this error:
> ERROR: syntax error at or near "||"
> LINE 1: ... gin(setweight(to_tsvector('english', name), 'A') || setweig...
> ^
> Is this a bug, or a known limitation, or is my syntax just wrong?
The latter. You need an extra pair of parentheses around any index
expression that's more complicated than a single function call.
regards, tom lane