Schrift
[thread]8331[/thread]

Strings vergleichen.. String::Approx?



<< >> 3 Einträge, 1 Seite
Gast Gast
 2006-09-14 02:22
#69858 #69858
Hi,

ich habe folgendes Problem: Ich habe eine Liste von ca. 15.000 Begriffen in einer Datenbank (MySQL). Davon muss ich einige mit einem Schlagwort vergleichen (einfache Suche)...

Da die User aber häufig Tippfehler machen muss ich die Begriffe auf Ähnlichkeit untersuchen. Dabei ist mir das Modul String::Approx aufgefallen.

Doch ich weiß nicht wie ich das jetzt effizient zusammenstöpseln soll. Es ist doch sicher nicht gerade effizient, wenn ich die 15.000 Datensätze aus der DB in ein Array lade um die dann über das Modul mit der Eingabe zu vergleichen....

Wie würdet ihr vorgehen? Oder liefert die MySQL DB vielleicht ein ähnliches Verfahren?

Besten Dank im Voraus.
dominicn
 2006-09-14 02:46
#69859 #69859
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Ob MySQL selbst eine Möglichkeit anbietet weiß ich nicht. Aber vielleicht gibt es ein Modul, das einige möglich Vertipper generiert, nach denen du dann die Datenbank durchsuchen kannst. Also sowas ähnliches wie www.vertippdich.de ...
GwenDragon
 2006-09-14 12:55
#69860 #69860
User since
2005-01-17
14510 Artikel
Admin1
[Homepage]
user image
MySQL:
Quote
SOUNDEX(zeichenkette)

Gibt eine Soundex-Zeichenkette von zeichenkette zurück. Zwei Zeichenketten, die fast gleich klingen, sollten identische Soundex-Zeichenketten haben. Eine Standard-Soundex-Zeichenkette ist 4 Zeichen lang, aber die SOUNDEX()-Funktion gibt eine beliebig lange Zeichenkette zurück. Sie können SUBSTRING() auf das Ergebnis anwenden, um eine Standard-Soundex-Zeichenkette zu erhalten. Alle nicht alphanumerischen Zeichen in der angegebenen Zeichenkette werden ignoriert. Alle internationalen alphabetischen Zeichen ausserhalb des Wertebereichs A bis Z werden als Vokale behandelt:
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

<< >> 3 Einträge, 1 Seite



View all threads created 2006-09-14 02:22.