Re: Tsearch limitations

From: psql-mail(at)freeuk(dot)com
To: Oleg Bartunov <oleg(at)sai(dot)msu(dot)su>
Cc: pgsql general list <pgsql-general(at)postgresql(dot)org>
Subject: Re: Tsearch limitations
Date: 2003-08-11 12:54:57
Message-ID: E19mCCP-000DP3-00@buckaroo.freeuk.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Oleg,

I understand (i think) how the parser breaks up the input into words
and builds ts_vector's.

And i understand how to do queries as described into the documentation.
(I have read it!)

SELECT * FROM vectors WHERE vector @@ to_tsquery('(leads|forks) & !
crawl')

But i haven't seen any mention of if i add the word:

cathedral

if there is any query which will match if I search for "thed".

The documentation seems to say that this cannot be done - but i'd just
like to check. Tsearch2 does everything i want except this.

"remember that the search operator @@ finds only exact matches between
query lexemes and vector lexemes if they are not exactly the same
string, they will not be considered a match"

> Mat,
>
> there are several function you may use to see (please, read
documentation):
>
> apod=# select to_tsvector('Hi my email addres is psql-mail(at)freeuk(dot)com'
);
> to_tsvector
> ----------------------------------------------------
> 'hi':1 'addr':4 'email':3 'psql-mail(at)freeuk(dot)com':6
> (1 row)
>
> or, even better
>
> apod=# select * from ts_debug('Hi my email addres is psql-mail(at)freeuk(dot)
com');
> ts_name | tok_type | description | token |
dict_name | tsvector
> -----------------+----------+-------------+----------------------+----
-------+------------------------
> default_russian | lword | Latin word | Hi | {
en_stem} | 'hi'
> default_russian | lword | Latin word | my | {
en_stem} |
> default_russian | lword | Latin word | email | {
en_stem} | 'email'
> default_russian | lword | Latin word | addres | {
en_stem} | 'addr'
> default_russian | lword | Latin word | is | {
en_stem} |
> default_russian | email | Email | psql-mail(at)freeuk(dot)com | {
simple} | 'psql-mail(at)freeuk(dot)com'
> (6 rows)
>
> You may write your own parser or preprocess text before tsearch.
>
> Oleg
> On Mon, 11 Aug 2003, Mat wrote:
>
> > Can Tsearch be used to return substring matches?
> >
> > i.e
> >
> > Text to search: Hi my email addres is psql-mail(at)freeuk(dot)com
> >
> > Query "psql" would match the email address?
> >
> > Query "mail" would also match?
> >
> > Query "reeu" would also match?
> >
> > Or is tsearch not suitable for this type of query? should i use FTI

> > instead?
> >
> > Thanks.
> >
> >
> > ---------------------------(end of broadcast)-----------------------
----
> > TIP 6: Have you searched our list archives?
> >
> > http://archives.postgresql.org
> >
>
> Regards,
> Oleg
> _____________________________________________________________
> Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
> Sternberg Astronomical Institute, Moscow University (Russia)
> Internet: oleg(at)sai(dot)msu(dot)su, http://www.sai.msu.su/~megera/
> phone: +007(095)939-16-83, +007(095)939-23-83
>

--

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Martijn van Oosterhout 2003-08-11 12:56:50 Re: Join faster than single table query
Previous Message ruben 2003-08-11 11:48:21 Join faster than single table query