Maison  >  Article  >  base de données  >  Comment effectuer une opération de recherche en texte intégral dans MySQL ?

Comment effectuer une opération de recherche en texte intégral dans MySQL ?

WBOY
WBOYoriginal
2023-07-29 22:18:294703parcourir

Comment effectuer une opération de recherche en texte intégral dans MySQL ?

La recherche en texte intégral est une fonction permettant de trouver des mots-clés dans un champ de texte. Dans MySQL, nous pouvons utiliser la recherche en texte intégral pour améliorer l'efficacité des requêtes et trouver rapidement des résultats pertinents. Cet article explique comment effectuer des opérations de recherche en texte intégral dans MySQL et fournit des exemples de code.

1. Créer un index de texte intégral
Avant d'effectuer une recherche en texte intégral, vous devez d'abord créer un index de texte intégral sur les champs qui doivent être recherchés. Dans MySQL, vous pouvez utiliser l'index FULLTEXT pour implémenter la fonctionnalité de recherche en texte intégral.

Par exemple, dans une table nommée articles, nous souhaitons effectuer une recherche en texte intégral sur le champ de contenu. Vous pouvez exécuter l'instruction SQL suivante pour créer un index FULLTEXT :

ALTER TABLE articles ADD FULLTEXT(content);

2. Effectuer une requête de recherche en texte intégral

Après avoir créé un index en texte intégral, nous pouvons utiliser l'instruction MATCH AGAINST pour effectuer une requête de recherche en texte intégral.

Exemple de syntaxe :

SELECT * FROM articles WHERE MATCH(content) AGAINST('keyword');

Parmi eux, le contenu est le champ qui doit être recherché, et 'keyword' est le mot-clé qui doit être recherché. Il peut être modifié en fonction de la situation réelle.

Exemple de code :

SELECT * FROM articles WHERE MATCH(content) AGAINST('MySQL full-text search');

Cette instruction de requête renverra les enregistrements d'articles contenant le mot-clé "MySQL full-text search".

3. Définir les options de recherche en texte intégral

L'instruction MATCH AGAINST dans MySQL prend en charge certaines options pour contrôler davantage le comportement de la recherche en texte intégral.

    EN MODE BOOLÉEN
  1. Utilisez EN MODE BOOLÉEN pour effectuer des opérations booléennes sur les recherches.
Exemple de code :

SELECT * FROM articles WHERE MATCH(content) AGAINST('+MySQL -Full text' IN BOOLEAN MODE);

Cette instruction de requête renverra le texte intégral contenant le mot-clé "MySQL" mais pas le mot-clé " " enregistrement de l'article.

    AVEC QUERY EXPANSION
  1. L'utilisation de AVEC QUERY EXPANSION peut étendre la recherche et renvoyer davantage d'enregistrements d'articles liés aux mots-clés.
Exemple de code :

SELECT * FROM articles WHERE MATCH(content) AGAINST('MySQL full-text search' WITH QUERY EXPANSION);

Cette instruction de requête renverra davantage d'enregistrements d'articles liés au mot-clé "MySQL full-text search" " .

4. Limiter le nombre de résultats de recherche

Vous pouvez utiliser l'instruction LIMIT pour limiter le nombre de résultats de recherche afin d'améliorer l'efficacité des requêtes.

Exemple de code :

SELECT * FROM articles WHERE MATCH(content) AGAINST('MySQL full-text search') LIMIT 10;

Cette instruction de requête renverra les 10 premiers enregistrements d'articles qui satisfont au mot-clé "MySQL full-text search" ".

5. Utiliser les classements de recherche

L'instruction MATCH AGAINST dans MySQL peut trier les mots-clés en fonction de leur fréquence d'apparition dans le texte et renvoyer un classement de recherche.

Exemple de code :

SELECT *, MATCH(content) AGAINST('Recherche en texte intégral MySQL') AS rang FROM articles WHERE MATCH(content) AGAINST('Recherche en texte intégral MySQL') ORDER BY Rank DESC ;

Ceci L'instruction de requête renvoie les enregistrements d'articles triés par ordre décroissant en fonction du classement de recherche du mot-clé « Recherche en texte intégral MySQL ».

En résumé, la fonction de recherche en texte intégral dans MySQL peut être obtenue en créant un index FULLTEXT et en utilisant l'instruction MATCH AGAINST. Lorsque vous effectuez une opération de recherche en texte intégral, vous pouvez définir des options, limiter le nombre de résultats de recherche et utiliser les classements de recherche pour améliorer la précision et l'efficacité de vos requêtes.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn