Hi zusammen,
ich ärger mich gerade etwas mit der MySQL-Volltextsuche (MATCH ... AGAINST) herum. Folgende Tabelle:
Code:
CREATE TABLE `demo` (
`tabID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(250) NOT NULL,
`content` mediumtext NOT NULL,
PRIMARY KEY (`tabID`),
FULLTEXT KEY `searchIndex` (`title`,`content`),
FULLTEXT KEY `title` (`title`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `demo` (`tabID`, `title`, `content`) VALUES
(1, 'Ein Testbegriff', 'Ein Testbegriff');
Das Problem: Die folgenden Suchabfragen:
Code:
SELECT *, MATCH(title) AGAINST ('Testbegriff') AS score FROM `demo`
// oder:
SELECT *, MATCH(title, content) AGAINST ('Testbegriff') AS score FROM `demo`
liefern als score jeweils 0 - der Datensatz würde also nicht gefunden werden, obwohl ja eine exakte Übereinstimmung hier vorliegt. In anderen Tabellen dieser Datenbank funktioniert die Volltextsuche nach exakt diesem Prinzip einwandfrei. Jemand eine Idee was ich hier übersehe?
Update: Im Boolschen Modus erhalte ich einen score von 1 - aber warum nur dort? Ich möchte diesen Modus nicht standardmäßig aktivieren.