Maison > Article > base de données > Comment puis-je trier les résultats de recherche en texte intégral MySQL par pertinence ?
Lorsque vous travaillez avec MySQL, il est essentiel de comprendre la différence entre LIKE et la recherche en texte intégral pour un tri précis des résultats.
Dans la requête fournie :
$query="SELECT * from `vocabulary` WHERE translation = 'word' OR translation LIKE '%word%'";
L'opérateur LIKE est utilisé pour la correspondance partielle, pas pour la recherche en texte intégral. Pour effectuer une recherche en texte intégral, utilisez la syntaxe MATCH(...) AGAINST(...).
Par exemple :
$query="SELECT * from `vocabulary` WHERE MATCH(translation) AGAINST('+word')";
La fonction MATCH renvoie un score de correspondance qui peut être utilisé comme approximation de la pertinence. Ce score peut être utilisé pour trier les résultats. Par exemple :
$query="SELECT *, MATCH(translation) AGAINST('+word') AS score FROM `vocabulary` ORDER BY score DESC";
Cette requête trie les résultats par pertinence, les correspondances ayant obtenu le score le plus élevé apparaissant en premier.
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!