2009-08-30 4 views
6

Funktioniert MySql Volltextsuche mit nicht-lateinischen Sprachen? (Hebräisch, Arabisch, Japanisch ...)Funktioniert MySql Volltextsuche mit nicht-lateinischen Sprachen (Hebräisch, Arabisch, Japanisch ...) sinnvoll?

Zusatz: Habe einige Tests ... Es hat einige Probleme mit Hebräisch. Beispiel: Der Name מו ס ינזון ausgeprägt ist die gleich wie מו ש ינזון aber die Suche wird man nicht die andere finden, da dies ein häufiger Rechtschreibfehler in Hebräisch ist, es scheint, ich habe zu tun etwas Datenmanipulation, damit es tadellos funktioniert.

+0

Was ist Ihre Zusammenstellung? – Eric

+0

utf8_unicode_ci –

+0

Ja, das wird nicht die hebräische Semantik erfassen. Wenn es auf eine hebräische Sortierung eingestellt wäre, würde ich vermuten, dass es so wäre. – Eric

Antwort

2

Solange Ihre collation richtig eingestellt ist, funktioniert es prächtig.

Unicode wird für die meisten natürlich funktionieren. Aber das übersetzt nicht wirklich lateinische Zeichen zu ihnen sehr gut (zum Beispiel, in einer holländischen Kollatierung aa wird als å anerkannt werden).

1

Ja, jedoch, überprüfen Sie, was stopwords sind.

1

Japanese und Chinese Verwenden Sie ihre eigenen Leerzeichen Symbole, die MySQL nicht versteht.

Stellen Sie sicher, dass die Wörter in den zu indexierenden Texten durch ASCII Trennzeichen (Leerzeichen, Kommas usw.) getrennt sind. Alles außerhalb des Bereichs ASCII wird wahrscheinlich nicht funktionieren.

Außerdem werden Sie wahrscheinlich ft_min_word_len reparieren müssen: standardmäßig MySQL wird nicht Index Wörter kürzer als 4 Zeichen, und die meisten Japanese und Chinese Worte.

In Cyrillic Sprachen sind häufig Translationsfehler.

Alle Buchstaben aus dieser Sequenz: АВЕКМНОРСТуХ/ABEKMHOPCTyX sind in den meisten Schriftarten nicht unterscheidbar.

Die schlimmste von ihnen ist kyrillisch С/Latein C: diese beiden Symbole befinden sich auf einer Taste auf der Tastatur und unterscheiden sich nicht in den meisten Schriftarten, aber sie haben unterschiedliche Codes.

MySQL wird es auch nicht fangen.

2

Obwohl die hebräische Unterstützung in MySQL begrenzt ist, ist Ihr Problem eher ein Problem von Menschen mit falscher Rechtschreibung, dann eine Fehlfunktion des MySQL-Servers in dieser Perspektive. Wenn Sie in Google ein Wort falsch schreiben, zeigt es Ihnen einen Vorschlag an und Sie können auf diesen Vorschlag klicken, um nach diesem Begriff zu suchen.

Vielleicht könnten Sie ein Programm erstellen, das das gleiche Verhalten hat, z. Sie könnten eine Tabelle mit zwei Feldern erstellen, von denen eines das häufig falsch geschriebene Wort und das andere die korrekte Schreibweise enthält. Sie könnten dann ein Programm erstellen, das das falsch geschriebene Wort findet und den Vorschlag anzeigt.

+0

Der übliche Weg, dies zu implementieren, ist die Verwendung von N-Grammen – strum

0

Ja MySQL Volltextsuche funktioniert gut für Arabisch.So stellen Sie sicher, dass der folgende, wo nötig:

  1. COLLATION = utf8_unicode_ci & CHARACTER SET = utf8. (Datenbanken, Tabellen und Spalten).
  2. Index Wörter von 3 Buchstaben und mehr. Dies ist Very Important für Arabisch, ft_min_word_len = 3 (siehe show variables like "ft_%";)
  3. Überprüfen Sie die Version von MySQL (5.5 oder 5.6) und Motor (InnoDb oder MyIsam)