Suchen mit Umlaute...

Suchen mit Umlaute...

am 17.07.2007 20:22:48 von Lazlo Lebrun

vor einer Woche, hatte ich die Problematik vorgestellt: im
angelsächsischen Raum können viele Anwender nicht mit Umlaute suchen.
Es fehlt ihnen einfach die Tasten auf der Tastatur. ;-)
Es gab verschiedene Lösungsansätze, u. a. in die Umlaute mit PHP durch
äquivalenten ersetzen, oder die COLLATION verwenden, was jedoch nicht
mit einer Abfrage LIKE funktioniert.

Es gibt allerdings noch einen ganz einfache Lösung, die mich und meinen
Kunden zufrieden stellte: in der Suchanfrage soll der Kunde einfach jede
Umlaute durch einen _ ersetzen. höchstens kommen hierfür eine Paar
Treffer zu viel, was jedoch in viele Fälle (für mich meiner Kunden
allerdings) völlig akzeptabel ist.

Vielleicht hilft es auch jemand anderen.
Laszlo

Re: Suchen mit Umlaute...

am 18.07.2007 13:26:22 von Claus Reibenstein

Lazlo Lebrun schrieb:

> Es gab verschiedene Lösungsansätze, u. a. in die Umlaute mit PHP durch
> äquivalenten ersetzen, oder die COLLATION verwenden, was jedoch nicht
> mit einer Abfrage LIKE funktioniert.

Warum nicht? Fehlermeldung? Falsche Ergebnisse?

Schildere doch mal genau, was Du versucht hast und was dabei
rausgekommen ist. Ich habe den Verdacht, dass Du irgend etwas falsch
gemacht hast.

Gruß. Claus

Re: Suchen mit Umlaute...

am 18.07.2007 14:14:36 von Johannes Mueller

Lazlo Lebrun wrote:
> vor einer Woche, hatte ich die Problematik vorgestellt: im
> angelsächsischen Raum können viele Anwender nicht mit Umlaute suchen.
> Es fehlt ihnen einfach die Tasten auf der Tastatur. ;-)
> Es gab verschiedene Lösungsansätze, u. a. in die Umlaute mit PHP durch
> äquivalenten ersetzen, oder die COLLATION verwenden, was jedoch nicht
> mit einer Abfrage LIKE funktioniert.
>
> Es gibt allerdings noch einen ganz einfache Lösung, die mich und
> meinen Kunden zufrieden stellte: in der Suchanfrage soll der Kunde
> einfach jede Umlaute durch einen _ ersetzen.

Jeden Umlaut durch "_" ersetzen klingt suboptimal. Dadurch kann ä auch ö und
ü sein. Eigentlich könnte "_" alles sein. Oder meintest du, dass aus _a =
'ä' wird und aus _o = 'ö'?

Grüße
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.

Re: Suchen mit Umlaute...

am 18.07.2007 17:18:53 von Lazlo Lebrun

Johannes Mueller wrote:
> Lazlo Lebrun wrote:
>> vor einer Woche, hatte ich die Problematik vorgestellt: im
>> angelsächsischen Raum können viele Anwender nicht mit Umlaute suchen.
>> Es fehlt ihnen einfach die Tasten auf der Tastatur. ;-)
>> Es gab verschiedene Lösungsansätze, u. a. in die Umlaute mit PHP durch
>> äquivalenten ersetzen, oder die COLLATION verwenden, was jedoch nicht
>> mit einer Abfrage LIKE funktioniert.
>>
>> Es gibt allerdings noch einen ganz einfache Lösung, die mich und
>> meinen Kunden zufrieden stellte: in der Suchanfrage soll der Kunde
>> einfach jede Umlaute durch einen _ ersetzen.
>
> Jeden Umlaut durch "_" ersetzen klingt suboptimal. Dadurch kann ä auch ö und
> ü sein. Eigentlich könnte "_" alles sein. Oder meintest du, dass aus _a =
> 'ä' wird und aus _o = 'ö'?
>
_ ist jedes mögliches Zeichen.

Reicht aber völlig aus, um treffende Ergebnisse zu liefern, zumindest
nich bei einer Menschensuche im Shop.
Ein paar Treffer mehr stören nicht, im Gegenteil ;-)

Re: Suchen mit Umlaute...

am 18.07.2007 17:27:39 von Lazlo Lebrun

Claus Reibenstein wrote:
> Lazlo Lebrun schrieb:
>
>> Es gab verschiedene Lösungsansätze, u. a. in die Umlaute mit PHP durch
>> äquivalenten ersetzen, oder die COLLATION verwenden, was jedoch nicht
>> mit einer Abfrage LIKE funktioniert.
>
> Warum nicht? Fehlermeldung? Falsche Ergebnisse?
>
es kommen keine Treffer, siehe das erste Beispiel bei
http://dev.mysql.com/doc/refman/4.1/en/string-comparison-fun ctions.html
Collation funzt nur mit "=".

Aber auch damit hätte man immer nur eine collation, die nicht die
Sonderbuchstaben meheren Sprachen (Autoren z.B.) beinhalten.

Unterstrich ist viel einfacher -obwohl ungenauer- geht aber bestens.

Re: Suchen mit Umlaute...

am 18.07.2007 18:03:17 von Claus Reibenstein

Lazlo Lebrun schrieb:

> Claus Reibenstein wrote:
>
>> Lazlo Lebrun schrieb:
>>
>>> Es gab verschiedene Lösungsansätze, u. a. in die Umlaute mit PHP durch
>>> äquivalenten ersetzen, oder die COLLATION verwenden, was jedoch nicht
>>> mit einer Abfrage LIKE funktioniert.
>>
>> Warum nicht? Fehlermeldung? Falsche Ergebnisse?
>>
> es kommen keine Treffer, siehe das erste Beispiel bei
> http://dev.mysql.com/doc/refman/4.1/en/string-comparison-fun ctions.html
> Collation funzt nur mit "=".

Ich habe eben mal ein wenig auf meiner MySQL-Datenbank (4.1.10a)
getestet mit utf8_unicode_ci. Ergebnis: "München" und "Munchen" finden
beide sowohl "München" als auch "Munchen", "Muenchen" hingegen findet
nur "Muenchen". Einen Unterschied zwischen "LIKE" und "=" konnte ich
nicht feststellen.

Falls dies bei den neueren (5er-)Versionen der Datenbank anders ist,
würde ich das mal als Bug einstufen.

> Aber auch damit hätte man immer nur eine collation, die nicht die
> Sonderbuchstaben meheren Sprachen (Autoren z.B.) beinhalten.

Auch nicht mit utf8_unicode_ci?

Gruß. Claus