Marc Reichelt: MySQL: Suche mit MATCH (...) AGAINST

Beitrag lesen

Hallo an alle,

für ein aktuelles Projekt möchte ich eine einfache Volltextsuche realisieren.
Nun stoß ich auf die Volltext-Suchfunktionen von MySQL, und dachte mir: Das muss es sein!

Soweit, sogut - ich habe also das erste Beispiel von dort ausgeführt. Nun:
Warum wird bei der Suche mit folgendem Query kein Resultat ausgegeben?

SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('mysql');

Eigentlich müssen alle 6 Datensätze gefunden werden - werden aber nicht. Eine Suche nach 'mysqld' funktioniert (1 Datensatz), aber nicht nach 'mysql'. Und: 'mysql' befindet sich nicht in den stopwords.

Was ist da los? Sehe ich den Wald vor lauter Bäumen nicht?

Und: Wie realisiere ich eine UND-Verknüpfung?
Eine Suche mit

SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('tutorial database');

liefert mir drei Resultate, nämlich die, wo 'tutorial' ODER 'database' vorkommen. Ich möchte aber die haben, wo 'tutorial' UND 'database' gefunden werden.
Die boolsche Suche habe ich eben gefunden - ist das meine Lösung? Oder geht es einfacher?

Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)