Comment classer les résultats de recherche Fulltext MYSQL par pertinence
Question :
Comment puis-je trier les résultats de la recherche en texte intégral MYSQL par pertinence, en hiérarchisant les correspondances exactes et en triant les correspondances partielles par ordre alphabétique ?
Réponse :
Pour effectuer une recherche en texte intégral dans MYSQL, utilisez l'outil MATCH(. ..) CONTRE(...) construction au lieu de l'opérateur LIKE. MATCH(...) AGAINST(...) renvoie un score de pertinence pour chaque résultat, qui peut être utilisé pour trier les résultats par pertinence.
Voici une requête modifiée qui utilise la recherche en texte intégral et trie les résultats par pertinence :
SELECT * FROM `vocabulary` WHERE MATCH(`translation`) AGAINST ('word') ORDER BY MATCH(`translation`) AGAINST ('word') DESC;
Cette requête renverra d'abord des résultats avec une correspondance exacte, suivis de correspondances partielles triées par ordre décroissant de pertinence.
Exemple :
Considérez le tableau de vocabulaire suivant :
id | translation |
---|---|
1 | word |
2 | crossword |
3 | words |
4 | wordsmith |
L'exécution de la requête ci-dessus avec le terme de recherche « mot » renverrait les résultats suivants triés par pertinence :
id | translation |
---|---|
1 | word |
2 | crossword |
3 | words |
4 | wordsmith |
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!