L'expansion des requêtes est utilisée pour tenter d'élargir la portée des résultats de recherche en texte intégral renvoyés. Considérez la situation suivante. Vous souhaitez retrouver tous les commentaires qui mentionnent des enclumes. Un seul commentaire contient le mot enclumes , mais vous souhaitez également rechercher toutes les autres lignes susceptibles d'être pertinentes pour votre recherche, même si elles ne contiennent pas d'enclumes .
C'est aussi une tâche d'expansion des requêtes. Lors de l'utilisation de l'expansion des requêtes, MySQL effectue deux analyses des données et de l'index pour terminer la recherche :
1. Tout d'abord, effectuez une recherche de base en texte intégral pour trouver toutes les lignes qui correspondent aux critères de recherche ; 🎜>2. Deuxièmement, MySQL vérifie ces lignes correspondantes et sélectionne tous les mots utiles (nous expliquerons brièvement comment MySQL détermine ce qui est utile et ce qui ne l'est pas).
3. Ensuite, MySQL effectue à nouveau une recherche en texte intégral, cette fois en utilisant non seulement les conditions d'origine, mais également tous les mots utiles.
Utilisez l'expansion des requêtes pour trouver des résultats susceptibles d'être pertinents, même s'ils ne contiennent pas le terme exact que vous recherchez.
Uniquement disponible dans MySQL version 4.1.1 ou supérieure. La fonctionnalité d'expansion des requêtes a été introduite dans MySQL 4.1.1 et ne peut donc pas être utilisée dans les versions précédentes.
Voici un exemple, effectuez d'abord une simple recherche en texte intégral sans extension de requête :
Entrée :
Sortie :select note_text from productnotes where match(note_text) against('anvils');
Analyse : Une seule ligne contient le mot enclumes, donc une seule ligne est renvoyée.
Voici la même recherche, cette fois en utilisant l'expansion des requêtes :
Entrée :
Sortie :select note_text from productnotes where match(note_text) against('anvils' with query expansion);
Analyse : Cette fois, 7 lignes ont été renvoyées. La première ligne contient le mot enclumes et a donc le rang le plus élevé. La deuxième ligne n'a rien à voir avec enclumes , mais comme elle contient deux mots de la première ligne ( client et recommander ), elle est également récupérée. La ligne 3 contient également ces deux mêmes mots, mais ils sont plus en arrière et plus éloignés dans le texte, donc cette ligne est également incluse, mais avec un troisième rang. La troisième ligne ne fait pas non plus référence aux enclumes (par leur nom de produit).
Comme vous pouvez le constater, l'expansion des requêtes augmente considérablement le nombre de lignes renvoyées, mais ce faisant, elle augmente également le nombre de lignes dont vous ne souhaitez pas réellement.
Plus il y a de lignes, mieux c'est. Plus il y a de lignes dans un tableau (et plus il y a de texte dans ces lignes), meilleurs sont les résultats renvoyés en utilisant l'expansion des 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!