Ich möchte die Volltextsuche mit Boolesch Operatoren benutzen, aber leider werden diese nicht beachtet.
Die Tabelle:
- Code: Select all
mysql> CREATE TABLE artikel (
-> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
-> titel VARCHAR(200),
-> artikeltext TEXT,
-> FULLTEXT (titel,artikeltext)
-> );
mysql> INSERT INTO artikel VALUES
-> (0,'MySQL-Tutorial', 'DBMS steht für DataBase-Management ...'),
-> (0,'Wie man MySQL effizient einsetzt', 'Nachdem Sie ...'),
-> (0,'MySQL optimieren','In diesem Tutorial wird gezeigt, wie ...'),
-> (0,'1001 MySQL-Tricks','1. Lassen Sie mysqld nie als root laufen. 2. Normalisieren ...'),
-> (0,'MySQL vs. YourSQL', 'Im folgenden Vergleich von Datenbank ...'),
-> (0,'MySQL-Sicherheitsaspekte', 'Wenn er korrekt konfiguriert ist, ist MySQL ...');
Hier mal ein Beispiel:
- Code: Select all
SELECT * FROM artikel WHERE MATCH (titel,artikeltext) AGAINST ('Datenbank +Lassen')
Nun müsste die Spalte zurück gegeben werden, in der 'Datenbank' und 'Lassen' gefunden wird, oder?
Da keine Zeile beide Wörter enthält, darf nichts zurückgegeben werden.
Allerdings werden mir die Zeilen, die nur ein Wort von beiden beinhalten, zurückgegeben.
Habe ich etwas falsch gemacht?
Vielen Dank