On Sat, Feb 12, 2005 at 07:40:17PM -0800, b t wrote:
>
> I have a question, as part of the project that I have to do for school,
> we have to implement a User Define Function in C that is similar like the
> LIKE funtion in PostgreSQL. For example where a customer is searching for
> an actor whose last name sounds like "Schwarseneger" (notice the typo).
> However, the customer is not sure neither about the spelling nor the
> pronunciation. The real star name should be "Schwarzenegger".
The contrib/fuzzystrmatch module contains implementations of the
soundex, levenshtein, and metaphone algorithms. Here's an example:
CREATE TABLE actor ( id serial PRIMARY KEY, name text NOT NULL
);
INSERT INTO actor (name) VALUES ('Schwarzenegger');
SELECT * FROM actor WHERE soundex(name) = soundex('Schwarseneger');id | name
----+---------------- 1 | Schwarzenegger
You could create a functional index to speed up queries on large
tables:
CREATE INDEX actor_name_soundex_idx ON actor (soundex(name));
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/