Rafael: MySQL: Fulltext-Index (Versändnisfrage)

Beitrag lesen

Hallo,

ich habe eine Frage zum Fulltext-Index.
Durch das MATCH () AGAINST ()-Statement wird ein Fulltext-Index bekanntlich nach allen passenden Suchbegriffen durchforstet. Nun Frage ich mich, ob es ein Ambivalent zu dem LIKE-Escapezeichen % gibt.

Momentan habe ich nämlich das Problem, dass die Suche durch den Fulltext-Index zwar schneller geworden ist; sofern jemand aber nicht ein exaktes Wort in die Suchmaske eingibt, ein entsprechender Eintrag nicht gefunden wird.

Ich möchte es den Nutzern aber ermöglichen mit einem * Symbol alles zu finden, dass die gewählte Zeichenfolge beinhaltet.

Also dass aus der Satz "eins zwei" mit der Sucheingabe "ein*" bzw. "zwe*" auch gefunden wird. Wie muss ich das SQL-Statement in diesem Fall denn formulieren?

Der Fulltext-Index sollte doch dann die folgenden Wörter aufgenommen haben:

eins
zwei

Insofern sollte er nach meinem Verständnis auch nach "ein*" suchen können.

Oder muss ich in diesen Fällen trotzdem auf LIKE zurückgreifen und der Index wird dennoch genutzt? Bzw. habe ich dann das Problem, dass bei LIKE 'zwe%' die Zeile nicht gefunden wird, der Index also scheinbar doch nicht genutzt wird.

Danke für Aufklärung!