Maison  >  Article  >  base de données  >  Comment trier les résultats de la recherche Fulltext MySQL par pertinence ?

Comment trier les résultats de la recherche Fulltext MySQL par pertinence ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-05 07:21:02276parcourir

How to Order MySQL Fulltext Search Results by Relevance?

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!

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