À propos de ce tutoriel
Les recherches FullText permettent d'effectuer une recherche dans la base de données de manière plus avancée que l'opérateur LIKE
et permettent aussi d'organiser les résultats en fonction de la pertinence.
On commence par indexer les champs nécessitant la recherche
CREATE TABLE posts (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255),
content LONGTEXT,
online BOOLEAN DEFAULT 0,
FULLTEXT search_content (content)
);
Ensuite on pourra utiliser ce champs là pour une recherche
SELECT *
FROM posts
WHERE MATCH (content) AGAINST ('raton laveur' IN NATURAL LANGUAGE MODE);
Les résultats seront filtrés et automatiquement organisé en fonction de la pertinence par rapport à la recherche. Il est aussi possible de récupérer le score en utilisant le MATCH AGAINST
dans la liste des champs
SELECT *, MATCH (content) AGAINST ('raton laveur' IN NATURAL LANGUAGE MODE) AS score
FROM posts
WHERE MATCH (content) AGAINST ('raton laveur' IN NATURAL LANGUAGE MODE);
Vous pouvez aussi utiliser le mode booleen qui vous permet de contrôler plus précisément les mots à utiliser dans le recherche
SELECT *
FROM posts
WHERE MATCH (content) AGAINST ('+raton -laveur' IN BOOLEAN MODE);