MySQL: Fulltext-Index (Versändnisfrage)
Rafael
- datenbank
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!
hi,
Ich möchte es den Nutzern aber ermöglichen mit einem * Symbol alles zu finden, dass die gewählte Zeichenfolge beinhaltet.
Das ist nur eingeschränkt möglich - mittels such* kannst du nach allen Wörtern suchen lassen, die mit such beginnen.
*such ist aber m.W. nicht möglich.
http://dev.mysql.com/doc/refman/4.1/en/fulltext-boolean.html
gruß,
wahsaga
Danke für den Link. Hatte in der Doku zwar schon gesucht, mich aber scheinbar nicht weit genug durchgeklickt.
Grüße.