Re: Accent insensitive search? - Mailing list pgsql-general

From Thom Brown
Subject Re: Accent insensitive search?
Date
Msg-id bddc86150903181024m65cafd45y914215cc5b066fc9@mail.gmail.com
Whole thread Raw
In response to Re: Accent insensitive search?  (Sam Mason <sam@samason.me.uk>)
List pgsql-general
2009/3/18 Sam Mason <sam@samason.me.uk>

If you can't find anything better in PG; the translate[1] function would
be my best suggestion.  Performance should be better than using regular
expressions.


Yeah, that does appear to perform better.  I tried the following at it worked for me:

CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text AS $$
DECLARE
    input_string text := $1;
BEGIN

input_string := translate(input_string, 'âãäåāăąÁÂÃÄÅĀĂĄ', 'aaaaaaaaaaaaaaa');
input_string := translate(input_string, 'èééêëēĕėęěĒĔĖĘĚ', 'eeeeeeeeeeeeeee');
input_string := translate(input_string, 'ìíîïìĩīĭÌÍÎÏÌĨĪĬ', 'iiiiiiiiiiiiiiii');
input_string := translate(input_string, 'óôõöōŏőÒÓÔÕÖŌŎŐ', 'ooooooooooooooo');
input_string := translate(input_string, 'ùúûüũūŭůÙÚÛÜŨŪŬŮ', 'uuuuuuuuuuuuuuuu');

return input_string;
END;
$$ LANGUAGE plpgsql;


Regards

Thom

pgsql-general by date:

Previous
From: Pedro Doria Meunier
Date:
Subject: Re: Accent insensitive search?
Next
From: John R Pierce
Date:
Subject: Re: Accent insensitive search?