| 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: | Whole Thread | Raw Message | 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 |