Blok funkcija SOUNDEX

Blok funkcija SOUNDEX izračunava sličnost zvuka niza znakova.

Vrijednosti Soundex-a imaju svojstvo da se slično izgovarana riječi generiraju istom vrijednosti Soundex-a. Ovo se može koristiti za pretraživanje u bazama podataka kada znate samo izgovor, a ne točan način pisanja. Funkcija Soundex vraća niz znakova od četiri znaka, počevši s slovom.

Ulaz STR

Ulaz definira niz znakova koji se treba izračunati.

Izlaz

Vraća niz znakova s Soundex-ovim kodom.

Osnovna pravila

Svaki Soundex-kod sastoji se od slova, a zatim tri broja, npr. A532 za Antcas. Ako ima riječ toliko slova da biste mogli generirati više brojeva, prekidate nakon trećeg broja. Ako riječ ima premalo slova, popunite posljednje brojeve nultima. Azijski naziv Lee stoga se kodira kao L000.

Broj Predstavljeni slova
1 B, F, P, V
2 C, G, J, K, Q, S, X, Z
3 D, T
4 L
5 M, N
6 R

Samoglasnici A, E, I, O i U i suglasnici H, W i Y se trebaju ignorirati osim u prvom znaku. Dodatno za njemački jezik može se definirati: Umlaute Ä, Ö i Ü se trebaju ignorirati, a "šarfo S" ß kodira se kao jednostavno S.

Ako imaju više slova u originalnom nizu znakova koji se slijede jedan za drugim isti Soundex-kod, pojavljuje se samo jednom u rezultatu, iz abfx postaje stoga približno A120 (a ostaje, jer prvi slovo, b i f daju isti kod 1, x daje 2, na kraju se dodaje nula kako bi se dobilo četiri znaka).

Prilikom praktične primjene Soundex postupka uglavnom se kritiziraju dva aspekta: S jedne strane je vrlo usmjeren na engleski jezik, s druge strane nudi samo vrlo grubu analizu.

Unatoč tome, treba napomenuti da se algoritam prikazan vjerojatno najčešće koristi za fonetsku pretragu. Sigurno je doprinijelo to što je za bazu podataka Oracle već vrlo rano implementirana odgovarajuća naredba PL/SQL standarda.