Maison >base de données >tutoriel mysql >Comment puis-je hiérarchiser les champs dans la recherche plein texte MySQL pour une pertinence accrue ?

Comment puis-je hiérarchiser les champs dans la recherche plein texte MySQL pour une pertinence accrue ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 23:37:30534parcourir

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

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 :

  1. Créer plusieurs index de texte intégral :
    Établir trois index de texte intégral :

    • Un sur la colonne "mots-clés" seule
    • Un sur la colonne "contenu" seule
    • Un sur les colonnes "mots-clés" et "contenu"
  2. 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
  3. Rappel de contrôle avec l'indice combiné :
    Alors que le Le calcul ci-dessus détermine la pertinence, il est essentiel de séparer l'utilisation de l'index pour la recherche et la pertinence. Utilisez l'index sur les « mots-clés » et sur le « contenu » pour contrôler le rappel, en garantissant que les lignes pertinentes sont renvoyées dans les résultats de recherche.

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!

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