Re: tokenize string for tsearch?

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Ottavio Campana <ottavio(at)campana(dot)vi(dot)it>
Cc: "'pgsql-general(at)postgresql(dot)org'" <pgsql-general(at)postgresql(dot)org>
Subject: Re: tokenize string for tsearch?
Date: 2007-05-11 07:23:07
Message-ID: 464419DB.80402@hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Ottavio Campana wrote:
> Magnus Hagander wrote:
>> On Mon, May 07, 2007 at 05:31:02PM -0700, Ottavio Campana wrote:
>>> Hi, I'm trying to use tsearch2 for the first time and I'm having a
>>> problem setting up a query
>>>
>>> If I execute
>>>
>>> SELECT * from test_table where ts_desc @@ to_tsquery ('hello&world');
>>>
>>> it works, but I'm having the problem that the string used for the query
>>> is not 'hello&world' but 'hello world', Moreover, it can have an
>>> arbitrary number of spaces between the words, so I cannot just
>>> substitute the spaces with &, because 'hello&&world' gives error.
>>>
>>> What is the safest way transform a string into a list of words "anded"
>>> together?
>> Look at plainto_tsquery().
>
> db=# SELECT plainto_tsquery('default', 'hello word');
> ERROR: function plainto_tsquery("unknown", "unknown") does not exist
> HINT: No function matches the given name and argument types. You may
> need to add explicit type casts.
>
> I'm using 8.1.8 and I don't find plainto_tsquery in tsearch2.sql
>
> What can I do?

Yeah, you need 8.2 for that function. I don't think anybody has tried
backpatching it, but if you want to you can look at the code in 8.2 and
see if you can backpatch it yourself. But the easiest way is certainly
to upgrade to 8.2.

//Magnus

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Mario Munda 2007-05-11 07:27:00 Re: Missing magic block
Previous Message Chris 2007-05-11 07:08:20 Re: backup and restore