Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   FB Suche laut DIN5007-2 (ä=ae) (https://www.delphipraxis.net/174117-fb-suche-laut-din5007-2-ae%3Dae.html)

knight 5. Apr 2013 13:35

AW: FB Suche laut DIN5007-2 (ä=ae)
 
Zitat:

Zitat von hoika (Beitrag 1210041)
Halo #,

ich suche eine Möglichkeit nach der Vorschrift DIN5007-2 zu suchen,
d.h.

Müller-Ölbrig
Müller-Oelbrig
Mueller-Ölbrig
Mueller-Oelbrig

sind identisch.
es gilt ä=ae, ö=oe, ü=ue.

Lokal geht es einfach über StringReplace und Uppercase,
aber direkt per Select * From Where ?.

Es geht hier wohlgemerkt nicht um Sortierung (LATIN II oder so ähnlich),

Bei DIN 5007-2 geht es aber um Sortierung.

Für dein Problem könnte der Soundex-Algorithmus (http://de.wikipedia.org/wiki/Soundex) eine Lösungsmöglichkeit sein. Einfach eine zusätzliche Spalte anlegen und beim Speichern per Trigger befüllen lassen.

knight

DataCool 5. Apr 2013 14:08

AW: FB Suche laut DIN5007-2 (ä=ae)
 
Du könntest auch über die Levenshtein Distanz:
http://de.wikipedia.org/wiki/Levenstein-Distanz
als UDF zum gesuchten Ergebnis kommen.
Code:
 Select LevDistance(Name, 'mueller') as LevDis from Tablename WHERE LevDis <= 2;
Hier werden dann gleich Tipp-/Schreibfehler mit abgefangen,
weil die Levenshtein Distanz die Anzahl/Größe der Unterschiede zweier Wörter berechnet.

Einen möglichen Delphi-Code zur Umsetzung:
http://en.wikibooks.org/wiki/Algorit...istance#Delphi

Greetz Data

Furtbichler 5. Apr 2013 15:57

AW: FB Suche laut DIN5007-2 (ä=ae)
 
Zitat:

Zitat von knight (Beitrag 1210106)
Für dein Problem könnte der Soundex-Algorithmus

Der taugt nichts und findet zu viele Übereinstimmungen. Es geht hier doch *nur* um die Umlaute.

Und bei Levenshtein ist Levenshtein('Müller','Mueller') = Levenshtein('Müller','Brüller')

Zudem heißt es im Eingangspost
Zitat:

Zitat von hoika (Beitrag 1210041)
Ich könnte mir auch eine UDF bauen, das wollte ich allerdings vernmeiden.


hoika 5. Apr 2013 17:21

AW: FB Suche laut DIN5007-2 (ä=ae)
 
Hallo,

Ich mache das jetzt lokal.
Da noch ein weiteres Feld gesucht, reicht mir da erst einmal.

Danke


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz