On Tue, 21 Oct 2003 14:41:37 +0200, Adam Sjøgren wrote:
> I MySQL findes funktionen SOUNDEX(), som man kan bruge til at lave
> fonetiske søgninger
> (<
http://www.mysql.com/doc/en/String_functions.html#IDX1230>).
>
> Jeg har kigget i Postgresqls manual, men kan ikke finde noget
> tilsvarende dér
Du skal installere "fuzzystrmatch" fra PostgreSQL's "contrib"-område i
den database, hvor du vil have adgang til soundex (og lign. funktioner).
Hos mig gør jeg:
$ cd /usr/share/pgsql/contrib
$ psql -U postgres DATABASENAVN <fuzzystrmatch.sql
Herefter kan jeg, når jeg benytter relevante database, fx. skrive:
CREATE TABLE s (nm text);
insert into s values ('john');
insert into s values ('joan');
insert into s values ('wobbly');
select * from s where soundex(nm)=soundex('john');
nm
------
john
joan
(2 rows)
"Dokumentation":
http://developer.postgresql.org/cvsweb.cgi/pgsql-server/contrib/fuzzystrmatch/README.fuzzystrmatch?rev=1.4&content-type=text/x-cvsweb-markup
Delvist forældet, men lidt mere indgående, om soundex():
http://developer.postgresql.org/cvsweb.cgi/pgsql-server/contrib/soundex/Attic/README.soundex?rev=1.2&content-type=text/x-cvsweb-markup&hideattic=0
Der står, at soundex() er ret specifikt rettet mod det engelske sprog,
så pas på med, hvordan du bruger det. Måske en af de andre funktioner
fra fuzzystrmatch er mere relevant.
Hvis du ofte skal udføre soundex() på værdierne i en kolonne, kan det
nok betale sig at skabe et særligt index, der tager hensyn til dette:
http://developer.postgresql.org/docs/postgres/indexes-expressional.html
--
Greetings from Troels Arvin, Copenhagen, Denmark