tsearch2 and case

Started by Uwe C. Schroederalmost 21 years ago4 messagesgeneral
Jump to latest
#1Uwe C. Schroeder
uwe@oss4u.com

First of all: Happy Independence Day.

I've got a quick question for those with tsearch2 experience.
I set tsearch2 up and it works great (although I'd like to search for phrases
too, but I guess that's not supported at this time).
Anyways, I noted that the search seems to be case sensitive for some search
terms, particularly abbreviations. So if I'm searching with

to_tsquery('ABCD') - where ABCD is a standard abbreviation, I get a lot of
hits, but I get none with to_tsquery('abcd') because the abbreviation is
always upper case in my text.

I'd like the search to be completely case insensitive. Can anyone point me in
the right direction?

Thanks for any help.

UC

--
Open Source Solutions 4U, LLC 2570 Fleetwood Drive
Phone: +1 650 872 2425 San Bruno, CA 94066
Cell: +1 650 302 2405 United States
Fax: +1 650 872 2417

#2Oleg Bartunov
oleg@sai.msu.su
In reply to: Uwe C. Schroeder (#1)
Re: tsearch2 and case

On Mon, 4 Jul 2005, Uwe C. Schroeder wrote:

First of all: Happy Independence Day.

I've got a quick question for those with tsearch2 experience.
I set tsearch2 up and it works great (although I'd like to search for phrases
too, but I guess that's not supported at this time).
Anyways, I noted that the search seems to be case sensitive for some search
terms, particularly abbreviations. So if I'm searching with

to_tsquery('ABCD') - where ABCD is a standard abbreviation, I get a lot of
hits, but I get none with to_tsquery('abcd') because the abbreviation is
always upper case in my text.

I'd like the search to be completely case insensitive. Can anyone point me in
the right direction?

use your own dictionary ! Read gendict tutorial for details.
http://www.sai.msu.su/~megera/oddmuse/index.cgi/Gendict
I would create simple dictionary abbrev which recognize your abbreviations
and use it first before any other dicts. btw, if you did it general enough
please share with us, so other people could use it.

Thanks for any help.

UC

--
Open Source Solutions 4U, LLC 2570 Fleetwood Drive
Phone: +1 650 872 2425 San Bruno, CA 94066
Cell: +1 650 302 2405 United States
Fax: +1 650 872 2417

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq

Regards,
Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83

#3Bruce Momjian
bruce@momjian.us
In reply to: Oleg Bartunov (#2)
Re: tsearch2 and case

Oleg Bartunov <oleg@sai.msu.su> writes:

I'd like the search to be completely case insensitive. Can anyone point me in
the right direction?

use your own dictionary ! Read gendict tutorial for details.
http://www.sai.msu.su/~megera/oddmuse/index.cgi/Gendict
I would create simple dictionary abbrev which recognize your abbreviations
and use it first before any other dicts. btw, if you did it general enough
please share with us, so other people could use it.

Do functional indexes interact well with tsearch? Couldn't you just make your
index on lower(col) and then do to_tsquery(lower('ABCD')) ?

--
greg

#4Mike Rylander
mrylander@gmail.com
In reply to: Uwe C. Schroeder (#1)
Re: tsearch2 and case

On 7/4/05, Uwe C. Schroeder <uwe@oss4u.com> wrote:

First of all: Happy Independence Day.

I've got a quick question for those with tsearch2 experience.
I set tsearch2 up and it works great (although I'd like to search for phrases
too, but I guess that's not supported at this time).

To do phrase searching just add an additional WHERE clause to your query:

SELECT id FROM tab WHERE ts_idx_col @@ to_tsquery('history&lesson')
AND text_col ~* '.*history\\s+lesson.*';

The full-text index will still be used, and the regex will be used to
prune the results afterwards.

--
Mike Rylander
mrylander@gmail.com
GPLS -- PINES Development
Database Developer
http://open-ils.org