tsearch2 trigger alternative - Mailing list pgsql-general

From Chris Gamache
Subject tsearch2 trigger alternative
Date
Msg-id 20040225133729.14477.qmail@web13808.mail.yahoo.com
Whole thread Raw
Responses Re: tsearch2 trigger alternative  (Teodor Sigaev <teodor@sigaev.ru>)
List pgsql-general
Tsearch2 comes with its own tsearch2 trigger function. You pass column names to
it, and it puts a vanilla tsvector into the column named in TG_ARGV[0]. Not
only can you pass column names to it, but you can pass simple functions to it
as well. This is magical to me. :)

I'm trying to figure out how to do the same thing using plpgsql, except instead
of returning a vanilla tsvector, I want to return a specially weighted
tsvector. I've created a function that can do this:

create or replace function name_vector (text) returns tsvector as 'select
setweight(to_tsvector(substr($1,1,strpos($1,'',''))),''C'') ||
to_tsvector(substr($1,strpos($1,'','')+1,length($1)));' language 'sql';

so...

Plain:

select to_tsvector('Einstein, Albert');
       to_tsvector
-------------------------
 'albert':2 'einstein':1

Weighted:

select name_vector('Einstein, Albert');
       name_vector
--------------------------
 'albert':2 'einstein':1C


Now, to somehow package that into a magical trigger function...

All the examples for creating trigger functions that I've found use static
column names, NEW and OLD ... I would like to create a generic trigger
function, as the tsearch2 trigger function does, to return the specially
weighted tsvector.

Its like a lighter to a caveman. Can anyone lend a hand?

CG

__________________________________
Do you Yahoo!?
Yahoo! Mail SpamGuard - Read only the mail you want.
http://antispam.yahoo.com/tools

pgsql-general by date:

Previous
From: "Paul Simpson"
Date:
Subject: Re: Why does app fail?
Next
From: "cnliou"
Date:
Subject: