Maison >base de données >tutoriel mysql >Comment puis-je prioriser la pertinence dans la recherche plein texte MySQL pour différents champs ?

Comment puis-je prioriser la pertinence dans la recherche plein texte MySQL pour différents champs ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 01:44:30567parcourir

How Can I Prioritize Relevance in MySQL Fulltext Search for Different Fields?

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 :

  • Un sur le champ avec une priorité plus élevée (par exemple, des mots-clés)
  • Un sur le champ avec une priorité inférieure (par exemple, du contenu)
  • Un sur les deux champs combinés (par exemple, mots-clés, contenu)

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!

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