Обсуждение: Problem creating GIN index on multiple weighted columns

Поиск
Список
Период
Сортировка

Problem creating GIN index on multiple weighted columns

От
Ryan Fugger
Дата:
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

Re: Problem creating GIN index on multiple weighted columns

От
Tom Lane
Дата:
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