Recherche FullText

Voir la vidéo
Description Sommaire

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);
Publié
Technologies utilisées
Auteur :
Grafikart
Partager