Database Reference
In-Depth Information
name | dmetaphone | dmetaphone _ alt | metaphone | soundex
----------------+------------+----------------+-----------+--------
50 Cent
| SNT
| SNT
| SNT
| C530
Aaron Eckhart | ARNK
| ARNK
| ARNKHRT
| A652
Agatha Hurle
| AK0R
| AKTR
| AK0HRL
| A236
:
Es gibt nicht die beste Funktion schlechthin. Die optimale Wahl hängt von
Ihren Daten ab.
String-Matches kombinieren
Da wir nun all unsere Suchtechniken beisammen haben, können wir damit
beginnen, sie auf interessante Art und Weise zu kombinieren.
Einer der flexibelsten Aspekte von Metaphones ist, dass die Ergebnisse ein-
fache Strings sind. Das erlaubt es uns, sie mit anderen String-Matchern zu
kombinieren.
Zum Beispiel können wir den Trigramm-Operator auf die metaphone -Ausga-
ben anwenden und die Ergebnisse nach der Levenshtein-Distanz sortieren.
Die folgende Query bedeutet: „Gib mir sortiert die Namen zurück, die sich
am ehesten nach Robin Williams anhören“.
SELECT * FROM actors
WHERE metaphone(name,8) % metaphone( 'Robin Williams' ,8)
ORDER BY levenshtein(lower( 'Robin Williams' ), lower(name));
actor _ id | name
----------+-----------------
2442 | John Williams
4090 | Robin Shou
4093 | Robin Williams
4479 | Steven Williams
Wie Sie sehen, ist das nicht perfekt. Robin Williams steht an dritter Stelle. Die
unkontrollierte Nutzung dieser Flexibilität kann zu sehr lustigen Ergebnissen
führen, also Vorsicht.
SELECT * FROM actors WHERE dmetaphone(name) % dmetaphone( 'Ron' );
actor _ id | name
----------+-------------
3911 | Renji Ishibashi
3913 | Renée Zellweger
:
Die Kombinationsmöglichkeiten sind riesig und nur durch Ihre Experimen-
tierfreude beschränkt.
Search WWH ::




Custom Search