Ankündigung

Einklappen
Keine Ankündigung bisher.

HTML-Sonderzeichen und Suche

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • HTML-Sonderzeichen und Suche

    Hallo,
    ich hoffe, Ihr könnt mir helfen. Trotz intensiver Web-Recherche und MySQL-Doku komme ich nicht weiter...

    Folgendes Problem:
    In der Datenbank (MySQL 4.0.15) habe ich verschiedene Texte in reinem HTML-Code gespeichert. Somit sind beispielsweise die deutschen Umlaute und andere Sonderzeichen in der Form ü Ö ß " usw. in den Texten enthalten. Die Form der Speicherung kann und möchte ich nicht ändern (z.B. vor der Speicherung mit html_entity_decode bearbeiten).
    Texte, die der User sucht und die auch gefunden werden, werden per Script "gehighlighted".
    Beispiel:
    In der Datenbank ist ein Text über mich gespeichert. Der Datensatz enthält somit den Text "Über mich". Der User sucht den Text "über". Der Text wird gefunden (das leistet das Skript schon...) und die Ausgabe lautet:
    "<span style="font-color:red">&Uuml;ber</span> mich"

    So weit, so gut.
    Wenn der User jedoch nach dem Wort "um" sucht, fangen die Probleme an. Dieser Text kommt innerhalb des HTML-Sonderzeichens &Uuml; vor. Und wird somit gefunden und gehighlighted. Das Ergebnis sieht nicht nur unleserlich aus (&U<span style="font-color:red">um</span>l;ber mich), sondern ist auch logisch falsch!
    Habt Ihr eine Idee, wie ich dieses Problem möglichst generisch - also für sämtliche HTML-Sonderzeichen - lösen kann? Eine Möglichkeit wäre zwar der Ausschluss aus der Suche von einzelnen Worten, die in HTML-Sonderzeichen vorkommen (z.B. "um"). Jedoch will ich nicht irgendwelche Worte aus rein technischen Gründen ausschließen. Das sollte schon inhaltliche Gründe haben.


  • #2
    moin,

    geht aber bei einer größeren Anzahl an Daten und
    zuviele gleichzeitige Zugriffe an die Substanz des Servers


    Code:
    SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(suchtext, '&Auml;', 'A'), '&Ouml;', 'O'), '&Uuml;', 'U'),'&auml;', 'a'), '&ouml;', 'o'), '&uuml;','u'), '&szlig;', 's') FROM tabelle

    Kommentar


    • #3
      das stichwort heißt stemming, und sollte beim einfügen neuer dokumente in den index angewendet werden. dann gibt's die probleme erst gar nicht.

      Kommentar

      Lädt...
      X