Maison >base de données >tutoriel mysql >Comment puis-je hiérarchiser les champs dans la recherche plein texte MySQL pour une pertinence accrue ?
Priorité des champs dans la recherche plein texte MySQL pour une pertinence améliorée
Supposons que vous rencontriez une situation dans laquelle vous avez deux colonnes, "mots-clés" et "contenu ," dans une table et un index de texte intégral sous-jacent couvrant les deux colonnes. Cependant, vous souhaitez donner aux lignes contenant un terme spécifique dans la colonne "mots clés" une pertinence plus élevée que celles le contenant dans la colonne "contenu".
Pour accomplir cette tâche dans le cadre de l'utilisation du "match contre" syntaxe, vous pouvez mettre en œuvre une approche à multiples facettes :
Créer plusieurs index de texte intégral :
Établir trois index de texte intégral :
Exploitez le calcul de pertinence pondéré :
Dans votre requête, récupérez séparément les scores de pertinence pour les correspondances de « mots clés » et de « contenu ». Ensuite, combinez ces scores en utilisant une addition pondérée, en attribuant un poids plus élevé à la pertinence des « mots-clés » :
SELECT id, keyword, content, MATCH (keyword) AGAINST ('watermelon') AS rel1, MATCH (content) AGAINST ('watermelon') AS rel2 FROM table WHERE MATCH (keyword,content) AGAINST ('watermelon') ORDER BY (rel1*weight_factor)+(rel2) DESC
Cette approche vous permet de hiérarchiser l'importance de la colonne « mots-clés » pour déterminer la pertinence du document dans vos requêtes de recherche en texte intégral MySQL. Le facteur de pondération dans le calcul permet d'affiner la priorité des termes correspondants dans la colonne souhaitée.
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!