Maison >base de données >tutoriel mysql >Comment puis-je trier les résultats de recherche en texte intégral MySQL par pertinence ?

Comment puis-je trier les résultats de recherche en texte intégral MySQL par pertinence ?

DDD
DDDoriginal
2024-11-03 02:19:291000parcourir

How can I sort MySQL fulltext search results by relevancy?

Tri des 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!

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