Maison > Article > base de données > Techniques de recherche en texte intégral dans MySQL
MySQL est l'une des bases de données relationnelles les plus couramment utilisées à l'heure actuelle, et la recherche en texte intégral y est également une fonction très importante. Cet article vous présentera les techniques de recherche en texte intégral dans MySQL et vous aidera à mieux utiliser MySQL pour la recherche en texte intégral.
1. Configurer la prise en charge de la recherche en texte intégral
Pour utiliser la fonction de recherche en texte intégral dans MySQL, vous devez d'abord vous assurer que le serveur a activé cette fonction. Dans MySQL 5.6.4 et supérieur, vous pouvez vérifier si la recherche en texte intégral a été activée via la commande suivante :
SHOW VARIABLES LIKE 'innodb_ft%';
Si innodb_ft_server est défini sur ON, la recherche en texte intégral a été activée.
Si la prise en charge de la recherche en texte intégral n'est pas activée, vous devez modifier le fichier my.cnf (ou my.ini) pour définir la valeur du paramètre ft_min_word_len sur la longueur minimale du mot que vous recherchez. Par défaut, sa valeur est 4. Par exemple, si vous souhaitez rechercher des mots de longueur 3, vous devez modifier sa valeur en 3 et redémarrer le service MySQL.
2. Créer un index de texte intégral
Lorsque la prise en charge de la recherche en texte intégral est activée, vous pouvez créer un index de texte intégral pour la table qui doit être recherchée. Créer un index de texte intégral est aussi simple que de créer un index FULLTEXT sur les colonnes qui nécessitent une recherche en texte intégral. Par exemple, si vous souhaitez effectuer une recherche en texte intégral au sein du corps d'un article, vous pouvez créer un index FULLTEXT sur la colonne "contenu" de la table "articles" à l'aide de la commande suivante :
ALTER TABLE articles ADD FULLTEXT(content);
Cela créera un Index FULLTEXT sur la colonne "contenu" pour les requêtes de recherche en texte intégral Accélération. Notez que les index FULLTEXT ne peuvent être créés que sur des colonnes de types de données CHAR, VARCHAR ou TEXT. Une fois l'index de texte intégral créé, la recherche en texte intégral peut commencer.
3. Utiliser une requête de recherche en texte intégral
La syntaxe de la recherche en texte intégral à l'aide de MySQL est très similaire aux instructions de requête SQL ordinaires. Par exemple, l'instruction pour rechercher tous les articles contenant le mot « MySQL » est la suivante :
SELECT * FROM articles WHERE MATCH(content) AGAINST('MySQL');
Parmi eux, la clause MATCH précise les colonnes à rechercher, et la clause AGAINST précise les mots-clés à rechercher. Si vous souhaitez effectuer une recherche en texte intégral dans plusieurs colonnes, répertoriez simplement les colonnes. Par exemple, pour rechercher des articles contenant « MySQL » à la fois dans le corps et dans le titre de l'article, vous pouvez utiliser la commande suivante :
SELECT * FROM articles WHERE MATCH(title,content) AGAINST('MySQL');
Lorsque nous effectuons des requêtes de recherche en texte intégral, nous devons généralement prêter attention aux problèmes suivants :
SELECT * FROM articles WHERE MATCH(content) AGAINST('"MySQL database"' IN BOOLEAN MODE);
SELECT * FROM articles WHERE MATCH(content) AGAINST('+MySQL -database' IN BOOLEAN MODE);
En mode booléen, le signe plus « + » signifie que le mot doit être inclus, et le "signe moins" signifie qu'il ne contient pas le mot, "astérisque" signifie correspondre à n'importe quel mot, "guillemets doubles" signifie correspondre à la phrase complète.
SELECT * FROM lyrics WHERE MATCH(text) AGAINST ('+love +song' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION);
Dans cet exemple, MySQL utilisera des modèles de langage naturel et l'expansion des requêtes pour déterminer la similitude entre les textes, ce qui entraînera de meilleurs résultats de correspondance.
4. Conclusion
La recherche en texte intégral est devenue une fonctionnalité standard dans les bases de données modernes et est largement utilisée dans divers domaines, notamment les réseaux sociaux, les applications liées à la musique et à la vidéo, et bien plus encore. Les techniques de recherche en texte intégral MySQL sont présentées ici. Je pense que ces techniques peuvent vous aider à utiliser MySQL plus efficacement pour la recherche en texte intégral. Bien sûr, il existe de nombreuses autres compétences et techniques qui doivent être apprises et maîtrisées. J’espère que cet article pourra vous ouvrir une nouvelle idée et vous inspirer davantage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!