On Wed, 3 Sep 2008, Fco. Mario Barcala Rodr?guez wrote:
Hi all:
Is there any way to create a case sensitive full text index? My target
is to make case sensitive full text searches but I don't know how.
I could create a configurario for full text searching:
CREATE TEXT SEARCH CONFIGURATION public.myconfiguration (PARSER =
pg_catalog.default);
CREATE TEXT SEARCH DICTIONARY public.my_dict (
TEMPLATE = pg_catalog.simple,
STOPWORDS = my_stops
);
ALTER TEXT SEARCH CONFIGURATION myconfiguration
ALTER MAPPING FOR asciiword, asciihword, hword_asciipart,
word, hword, hword_part
WITH my_dict;
And then create the full text index:
CREATE INDEX textindexsensible ON documento
USING gin(to_tsvector('myconfiguration',texto));
But default behaviour of Simple Dictionary returns the lower-cased form
of the word if it isn't in stopwords list. Is there any way to change
this behaviour?
If you don't need any dictionary, why do you use simple dictionary ?
Instead, you can write dummy dictionary, which just checks for stopwords.
Another option, is write simple wrapper around simple dictionary, which
returns array (lexem_from_simple_dic, original_lexem). Then you can
have two different configurations - one for case sensitive search
(uses this wrapper dictionary for query) and another one - for more broader
search.
Looks like we can take this into account in our future work on improving
flexibility of text search.
Oleg
Thanks in advance,
Mario Barcala
P.S. I am using PostgreSQL 8.3
Regards,
Oleg
_____________________________________________________________
Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru),
Sternberg Astronomical Institute, Moscow University, Russia
Internet: oleg@xxxxxxxxxx, http://www.sai.msu.su/~megera/
phone: +007(495)939-16-83, +007(495)939-23-83