Atteindre la priorisation de la pertinence dans la recherche plein texte MySQL
Lorsque vous effectuez des recherches en texte intégral dans plusieurs champs, MySQL attribue une pertinence égale aux correspondances trouvées dans chaque champ. Cependant, il peut y avoir des scénarios dans lesquels il est souhaitable de donner la priorité à certains champs, afin de garantir qu'ils contribuent de manière plus significative au score de pertinence global.
Solution : créer des index pondérés
Pour y parvenir , créez plusieurs index de texte intégral :
Exemple de requête avec pertinence pondérée
Utilisation du MATCH (mot-clé) CONTRE (... ) et MATCH (contenu) CONTRE (...), vous pouvez calculer des scores de pertinence distincts pour chaque champ. L'instruction CASE attribue des valeurs binaires pour indiquer si un champ spécifique contient le terme de recherche :
SELECT *, CASE WHEN Keywords LIKE '%watermelon%' THEN 1 ELSE 0 END AS keywordmatch, CASE WHEN Content LIKE '%watermelon%' THEN 1 ELSE 0 END AS contentmatch,
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!