MySQL Volltextsuche findet nur Worte mit einer Länge von mindestens 4 Buchstaben
Frage von MediMan | 12.06.2012 um 20:10
Ich habe für ein kleines Web-Projekt eine MySQL Volltextsuche implementiert. Ich habe mich dabei strikt an die Anleitungen gehalten, die ich im Internet gefunden habe, aber es funktioniert nicht so, wie es soll. Es werden einfach nicht Wörter mit weniger als 4 Buchstaben gefunden! Dabei gibt es auf meiner Homepage viele Abkürzungen mit 3 Buchstaben, die nun natürlich ganz aus der Suche ausgeschlossen werden.
Meine MySQL Abfrage sieht bisher so aus:
SELECT * FROM tabelle WHERE MATCH (spalte1, spalte2) AGAINST ('+Wort -MySQL' IN BOOLEAN MODE);
Was muss ich daran ändern, damit es endlich funktioniert?
Ähnliche Themen
MySQL: Volltextsuche und Suche mit LIKE für Worte mit 3 Buchstaben kombinieren
Tutorial | 2 Kommentare
MySQL: Minimale Wortlänge bei der Volltextsuche ändern
Tipp | 1 Kommentar
Die Askingbox-Suche
Info | 0 Kommentare
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
PHP: Nur bestimmte Buchstaben, Zahlen und Zeichen in einem String zulassen
Tipp | 10 Kommentare
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
Text nur in bestimmten Zeilen ersetzen
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Deine MySQL Abfrage ist schon richtig, daran brauchst du nichts ändern. Was den Ausschluss aller Worte unter 4 Buchstaben verursacht, ist eine Einstellung von MySQL, die standardmäßig das Minimum der Wortlänge einer Volltextsuche auf 4 Buchstaben begrenzt.
In deinen MySQL-Systemvariablen befindet sich irgendwo die Zeile:
Das steht für "Full Text Minimum Word Length" und sorgt genau für das Verhalten mit dem Ausschluss der Worte mit 3 Buchstaben. Wenn du diesen Wert änderst, danach den MySQL Server neu startest und anschließend ein "REPAIR TABLE" durchführst, kannst du diese Wortlänge ändern. Ich habe das noch einmal etwas ausführlicher in meinem Tipp Minimale Wortlänge in der MySQL Volltextsuche ändern beschrieben.
Probleme gibt es nur dann, wenn man diese Einstellungen nicht ändern kann, zum Beispiel wenn man seine Homepage bei einem Hoster hat, der keine Einstellungen erlaubt. Für diesen Fall lässt es sich aber immer noch mit einer Kombination aus LIKE und Volltextsuche arbeiten.
13.06.2012 um 21:30