From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | b t <qtboyzz(at)yahoo(dot)com> |
Cc: | pgsql-interfaces(at)postgresql(dot)org |
Subject: | Re: How to write UDF in C that resemble the LIKE function |
Date: | 2005-02-13 04:07:55 |
Message-ID: | 20050213040755.GA25541@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-interfaces |
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/
From | Date | Subject | |
---|---|---|---|
Next Message | Francisco Figueiredo Jr. | 2005-02-14 00:42:00 | Re: Function return number of affected rows |
Previous Message | Tom Lane | 2005-02-13 04:07:32 | Re: How to write UDF in C that resemble the LIKE function |