Thread: How to create tsvector_update_trigger on Non-character type data

How to create tsvector_update_trigger on Non-character type data

From
Gaini Rajeshwar
Date:
Hi,
How can we create tsvector update trigger on Non-character data type.
For example,  i have created a ts vector trigger something like this.
CREATE TRIGGER tr_doc_id_col
BEFORE INSERT OR UPDATE
ON document
FOR EACH ROW
EXECUTE PROCEDURE tsvector_update_trigger('tsv_doc_id', 'pg_catalog.english', doc_id');
Here,
tr_doc_id_col -- Name of the trigger
document -- Name of the table
tsv_doc_id -- tsvector form of the doc_id
doc_id -- Name of the column. It's data type is integer
This trigger should update the tsv_doc_id, when there is insert, delete or update happens on doc_id column.
But, the trigger is throwing an error saying that doc_id is not of character type (i.e it is not able to update based on non-character type column).
I have tried creating same kind of triggers on columns like title, body which are text data type. In this case it is working very well, but in the earlier case.
Can any of you tell me how to do in the case of non-character data type like doc_id?
Thanks,
Gaini Rajeshwar

Re: How to create tsvector_update_trigger on Non-character type data

From
Christophe Pettus
Date:
On Oct 13, 2009, at 11:21 PM, Gaini Rajeshwar wrote:
> doc_id -- Name of the column. It's data type is integer


The strict error message is correct: The full-text search feature of
PostgreSQL can only index text strings, and doc_id (as an integer) is
not a text string.  What precisely are you attempting to do?  Do you
want to index the text version of the doc_id field (for example, if
doc_id is 12345, you want to include the literal string "12345" in the
index), or is doc_id a key into another table, and you want to include
some text fields from that other table in the index?
--
-- Christophe Pettus
    xof@thebuild.com