RapidSearch Pro bricht beim Index-Aufbau bei Deutschen Umlauten (ä, ö, ü) ab


(Sebastian Schiller) #1

Liebe Community,

seit meinem kürzlichen Umstieg auf RapidWeaver 7 renoviere ich meine vorhandene Webseite. Dabei bin auf ein Problem mit deutschen Sonderzeichen gestoßen, zu dem ich bisher keine Lösung gefunden habe. Sicherlich ist die Lösung einfach, und ich hoffe, dass Ihr mir helfen könnt.

RapidWeaver 7.5.5
Theme: Boutique (ThemeFlood) 2.3
Stacks 3.5.7
Encoding UTF-8
RapidSearch Pro 2
MySQL-Datenbank Koalition utf8_unicode_ci (Tabelle rspro2_pages)
Webseite: https://www.ring-cafe-finsterwalde.de

Auf den Webseiten befinden sich deutsche Umlaute (ä, ö, ü). Durch das UTF-8-Encoding im Header werden diese in den HTML-Dateien wie folgt abgelegt:

ä - &auml
ö - &ouml
ü - &uuml

In der Seiten-Beschreibung werden die Umlaute wie folgt übernommen:

In beiden Fällen bricht der Aufbau der Suchindex durch RapidSearch Pro 2 bei den Sonderzeichen ab, so dass der Suchindex nicht vollständig und damit unbrauchbar ist.

Ich kann dies nur manuell beheben, und zwar durch das folgende Ersetzen:

ä - ä
ö - ö
ü - ü

Das geht natürlich bei den Seiten-Beschreibungen recht schnell, führt jedoch zu unschönen Ergebnissen in der Google-Suche:

Ring-Café Finsterwalde: Stadtgespräche
https://www.ring-cafe-finsterwalde.de/
Lose Reihe mit Vorträgen und Lesungen über Vergangenes, Aktuelles oder Zukünftiges. Ein kulturelles Kleinod.

Ziel ist es, den Index-Aufbau von RapidSearch Pro bis zum Ende zu durchlaufen.

Habt Ihr eine Idee?

Besten Dank und viele Grüße,
Sebastian


(Oliver) #2

Hallo @Sebastian,

grundlegend hätte ich für den Anfang zwei Verbesserungsvorschläge:

  1. Dein Encoding-Meta-Tag, derzeit <meta http-equiv="Content-Type" content="text/html; charset=utf-8">, sollte in <meta charset="utf-8" /> geändert werden. Das hat ganz einfach den Hintergrund, dass dein derzeitiger Tag noch dem HTML 4 - Standard entspricht, der Änderungsvorschlag Wiederrum ist HTML5-konform. (Könnte im Zweifelsfall schon bei deinem Problem helfen.)

  2. Mit utf8_unicode_ci gibt es dauernd Probleme. Ich kenne solche Fälle zwar eher aus der Joomla!-Ecke, kann aber auch hier der Auslöser der Probleme mit Sonderzeichen sein. Versuche stattdessen mal utf8_general_ci.

Insofern du lokal mit MAMP, XAMPP oder einer vergleichbaren Software arbeitest, kannst du dir beim indexieren durch RapidSearch mal zusätzlich das PHP- & das MySQL-Log ausgeben lassen, wenn Fehler auftreten kann man da am ehesten sehen, durch was diese verursacht werden.

Generell solltest du darauf verzichten, Umlaute durch HTML- oder UTF-8 – Bezeichner zu ersetzen. Der Meta-Tag ändert an diesen auch nichts (bezüglich des ‘ablegens’).

~N


(Sebastian Schiller) #3

Hallo @Noridge,

herzlichen Dank für die Vorschläge. Es hat eine Weile gedauert, bis ich nunmehr eine Lösung gefunden habe.

Der Hinweis kam von @willwood. Innerhalb der PHP-Datei files/rspro/lib/Helpers.php erfolgt eine (nicht notwendige) Umwandlung der HTML-Entities. Folgende Stelle habe ich auskommentiert:

ALT:
// Decode html entities, i.e. ü etc.
$string = html_entity_decode($string);
NEU:
// Decode html entities, i.e. ü etc.
//$string = html_entity_decode($string);

Jetzt funktioniert alles wie gewünscht: RapidSearch Pro sammelt alle Webseiten-Beschreibungen und erstellt einen korrekten Index. Das Ersetzen z.B. ä - ä habe ich wieder rückgängig gemacht, so dass die Google-Suche wieder korrekte Ergebnisse bringt.

Besten Dank und viele Grüße,
Sebastian