Suche mit Umlauten funktioniert nicht

Hallo zusammen,

bei einem unserer Kunden funktioniert die Suche nicht wenn ein Umlaut in den Suchschlitz eingegeben wird.
Es erscheint dann nur der Fehler “Leider ist etwas schief gelaufen”. Hat jemand eine Idee wodran das liegen kann?

Der Hoster ist Mittwald, bisher hatten wir dort diese Probleme nicht.

Viele Grüße

Wir sind auch bei Mittwald. Suche mit Umlauten geht auch nicht:
 

An exception occurred while executing '# search::detect-keywords
SELECT keyword FROM product_keyword_dictionary WHERE (language_id = ?) AND ((keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR keyword LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ? OR reversed LIKE ?))' with params ["\x2f\xbb\x5f\xe2\xe2\x9a\x4d\x70\xaa\x58\x54\xce\x7c\xe3\xe2\x0b", "tro\u00f6%", "t_ro\u00f6%", "t __ro\u00f6%", "to\u00f6%", "t_o\u00f6%", "t__ o\u00f6%", "tor\u00f6%", "tor_\u00f6%", "tor __\u00f6%", "tor%", "tor_%", "tor__ %", "\xb6\x72\x6f\x74\x25", "\xb6\x5f\x72\x6f\x74\x25", "\xb6\x5f\x5f\x72\x6f\x74\x25", "\xb6\x6f\x74\x25", "\xb6\x5f\x6f\x74\x25", "\xb6\x5f\x5f\x6f\x74\x25", "\xb6\xc3\x6f\x72\x74\x25", "\xb6\xc3\x6f\x72\x5f\x74\x25", "\xb6\xc3\x6f\x72\x5f\x5f\x74\x25", "\xb6\xc3\x6f\x72\x25", "\xb6\xc3\x6f\x72\x5f\x25", "\xb6\xc3\x6f\x72\x5f\x5f\x25"]:

SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'

Wir nutzen aber das Plugin „Suche Pro“ - kann also sein dass es ohne diese Plugin funktionieren würde…

Wenn ich bei Mittwald ins phpmyadmin gehe sieht es so aus:

Zeichensatz der MySQL Verbindung: utf8mb4_general_ci
Zeichensatz der Spalte 'keyword' in der Tabelle 'product_keyword_dictionary': utf8mb4_unicode_ci

 

Ich wäre ja schon froh, wenn die Suche OHNE Umlaute vernünftige Ergebnise liefern würde ;-(

Nicht das hier in der DB die Zeichencodierung nicht stimmt. Der Fehler tritt eigentlich nicht auf, jedenfalls mir nicht bekannt.

Im phpmyadmin geht es. Im Shopware nicht, auch wenn das Plugin deaktiviert ist.

Ich glaub dass irgendwie der Charset der Datenbankverbindung falsch ist, also eventuell etwas was tatsächlich Mittwald in der Hand hätte.

Aber kann man dieses Verbindungscharset beim Connect nicht überschreiben? Sollte das Shopware nicht machen?

So 100% versteh ich noch nicht wos hakt.

Hier mal der Query in sauber:

SELECT
   keyword 
FROM
   product_keyword_dictionary 
WHERE
   (
      language_id = "\x2f\xbb\x5f\xe2\xe2\x9a\x4d\x70\xaa\x58\x54\xce\x7c\xe3\xe2\x0b" 
   )
   AND 
   (
(keyword LIKE "tro\u00f6 % " 
      OR keyword LIKE "t_ro\u00f6 % "
      OR keyword LIKE "t__ro\u00f6 % "
      OR keyword LIKE "to\u00f6 % "
      OR keyword LIKE "t_o\u00f6 % "
      OR keyword LIKE "t__o\u00f6 % "
      OR keyword LIKE "tor\u00f6 % "
      OR keyword LIKE "tor_\u00f6 % "
      OR keyword LIKE "tor__\u00f6 % "
      OR keyword LIKE "tor % "
      OR keyword LIKE "tor_ % "
      OR keyword LIKE "tor__ % " 
      OR reversed LIKE "\xb6\x72\x6f\x74\x25" 
      OR reversed LIKE "\xb6\x5f\x72\x6f\x74\x25" 
      OR reversed LIKE "\xb6\x5f\x5f\x72\x6f\x74\x25"
      OR reversed LIKE "\xb6\x6f\x74\x25"
      OR reversed LIKE "\xb6\x5f\x6f\x74\x25"
      OR reversed LIKE "\xb6\x5f\x5f\x6f\x74\x25"
      OR reversed LIKE "\xb6\xc3\x6f\x72\x74\x25"
      OR reversed LIKE "\xb6\xc3\x6f\x72\x5f\x74\x25"
      OR reversed LIKE "\xb6\xc3\x6f\x72\x5f\x5f\x74\x25"
      OR reversed LIKE "\xb6\xc3\x6f\x72\x25" 
      OR reversed LIKE "\xb6\xc3\x6f\x72\x5f\x25"
      OR reversed LIKE "\xb6\xc3\x6f\x72\x5f\x5f\x25")
)

PS: Ja, die Suche ist ziemlicher Mist, das wissen wir alle. Aber das Plugin sah eigentlich ganz gut aus!

Florian_clicklabs Hast du mal den Mittwald Support kontaktiert?

Das Problem hatten wir auch bei Mittwald. Liegt an der Datenbank Collation. Mittwald hat diese bei uns angepasst…
Ich glaube das Charset sollte utf8 und die Collation utf8_unicode_ci sein.

Folgendes Bash-Skript gab es bei uns im Ordner /files:
 

#!/bin/bash

database=''
user=''
pass=''
host=''

charset='utf8'
collate='utf8_unicode_ci'

echo "Changing charset of database: $database"
mysql -u$user -p$pass -h$host $database -s -e "ALTER DATABASE $database CHARACTER SET = $charset COLLATE = $collate;"

for table in $(mysql -u$user -p$pass -h$host $database -s --skip-column-names -e 'show tables')
do
  echo ''
  echo "Changing charset of table: $table"
  mysql -u$user -p$pass -h$host $database -s -e "ALTER TABLE $table CHARACTER SET $charset COLLATE $collate"

  echo "Converting charset of table: $table"
  mysql -u$user -p$pass -h$host $database -s -e "ALTER TABLE $table CONVERT TO CHARACTER SET $charset COLLATE $collate"
done

echo "Collation changed to: $collate"

 

2 „Gefällt mir“

Wir brauchen UTF8MB4 im Standard von Shopware 6

Dann ist das also eine falsches Connection Charset bei Mittwald?

Mal sehen was deren Support sagt!

@Moritz Naczenski schrieb:

Wir brauchen UTF8MB4 im Standard von Shopware 6

Ja, Mittwald scheint damit Probleme zu haben (wg. DB-Server-Config) und musste diesen „Workaround“ anwenden

1 „Gefällt mir“

Ihr musst einfach diesen Befehl ausführen: 

ALTER TABLE `product_keyword_dictionary` CHANGE `keyword` `keyword` VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, CHANGE `reversed` `reversed` VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;

Lg

Amin N.

1 „Gefällt mir“

Laut Mittwald wird das Problem aufgrund von gemischten Datenbank- und Tabellenkollationen verursacht. Sie konnten mir aber schnell weiterhelfen und kümmern sich um das Problem damit es bei Neuinstallationen dort nicht mehr auftritt.

Ich habe bei Mittwald desöfteren Probleme mit dem PhpMyAdmin.

Beispiel:
Ich klicke auf die Tabelle „media_thumbnail“, Klicke danach auf den Reiter „Struktur“, und danach wieder auf „Anzeigen“. Das zerhaut mir die Anzeige… bedeutet, die Ansicht aktualisiert sich nicht mehr. Wenn ich dann links die Tabelle wechsele, und dann wieder auf die Thumbnail-Tabelle klicke, passiert nichts.

Kann das jemand bestätigen?

Ich werde da mal ein Ticket aufmachen…

 

 

Also wir haben das Problem im Shopware 6 Shop noch… alles up to date.

Wie kann das ein Jahr später noch sein?

Welche Kollation ist denn der SW-Standard?
Laut der Aussage von @11shop

Scheint ja die Kollation „utf8_general_ci“ der Standard zu sein, aber laut dem Tipps&Tricks der Shopware-Doku sollte es ja „utf8mb4_unicode_ci“ sein.

Bei einem unserer Kunden tritt das Problem auch auf, obwohl hier alle Tabellen und Tabellenspalten die „utf8mb4_unicode_ci“-Kollation besitzen.