MySQL
Recherche en texte intégral
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);