Recherche…


Introduction

MySQL offre la recherche FULLTEXT. Il recherche les tables avec des colonnes contenant du texte pour les meilleures correspondances pour les mots et les phrases.

Remarques

FULLTEXT recherche FULLTEXT fonctionne étrangement sur les tables contenant un petit nombre de lignes. Ainsi, lorsque vous en faites l'essai, il peut être utile de vous procurer une table de taille moyenne en ligne. Voici un tableau des éléments du livre , avec des titres et des auteurs. Vous pouvez le télécharger, le décompresser et le charger dans MySQL.

FULLTEXT recherche FULLTEXT est destinée à être utilisée avec une assistance humaine. Il est conçu pour produire plus de correspondances qu'une opération de filtrage WHERE column LIKE 'text%' .

FULLTEXT recherche FULLTEXT est disponible pour les tables MyISAM . Il est également disponible pour les tables InnoDB dans MySQL version 5.6.4 ou ultérieure.

Recherche FULLTEXT simple

    SET @searchTerm= 'Database Programming';
 SELECT MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) Score,
        ISBN, Author, Title 
   FROM book
  WHERE MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE)
  ORDER BY MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) DESC;

Étant donné une table nommée book avec des colonnes nommées ISBN , «Titre» et «Auteur», cela permet de trouver des livres correspondant aux termes 'Database Programming' . Il montre les meilleurs matchs en premier.

Pour que cela fonctionne, un index de texte intégral sur la colonne Title doit être disponible:

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);

Recherche BOOLEAN simple

    SET @searchTerm= 'Database Programming -Java';
 SELECT MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE) Score,
        ISBN, Author, Title 
   FROM book
  WHERE MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE)
  ORDER BY MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE) DESC;

Étant donné un tableau nommé book avec des colonnes nommées ISBN , Title et Author , cette recherche recherche les livres contenant les mots 'Database' et 'Programming' dans le titre, mais pas le mot 'Java' .

Pour que cela fonctionne, un index de texte intégral sur la colonne Titre doit être disponible:

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);

Recherche FULLTEXT sur plusieurs colonnes

    SET @searchTerm= 'Date Database Programming';
 SELECT MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) Score,
        ISBN, Author, Title 
   FROM book
  WHERE MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE)
  ORDER BY MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) DESC;

Étant donné un tableau nommé livre avec des colonnes nommées ISBN , Title et Author , les livres correspondant aux termes "Programmation de la base de données de dates" sont trouvés. Il montre les meilleurs matchs en premier. Les meilleurs résultats incluent des livres écrits par le Prof. CJ Date.

(Mais l'un des meilleurs résultats est également le Guide de datation du Docteur Date: Comment passer du premier rendez-vous au parfait compagnon . Cela montre une limitation de la recherche FULLTEXT: il ne prétend pas comprendre des choses telles que des parties du discours ou la signification des mots indexés.)

Pour que cela fonctionne, un index de texte intégral sur les colonnes Title et Author doit être disponible:

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_author_index (Title, Author);


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow