2010-01-13 12 views
0

J'ai vu qu'il y a beaucoup de messages 'classer par pertinence' ici ... J'ai travaillé sur cette partie ... Ce que je voudrais faire, ce sont les résultats de recherche qui sont les premiers ordonné par pertinence et ensuite par points de vue.mysql - Classer par pertinence et par mots-clés

Par exemple, si je cherchais pour « chien »

et mes résultats avaient tous deux le même niveau de pertinence pour « chien » Je voudrais ensuite à les commander par des vues.

Voici mon SQL jusqu'à présent - n'hésitez pas à adopter une approche différente si vous pouvez penser à une meilleure façon.

select * from articles where match(title, description, tags) 
    against ('dog' in boolean mode) ORDER BY match(title, description, tags) 
    against ('dog' in boolean mode) DESC 

Répondre

1

Faire champ views dans articles, incrémenter lorsque l'enregistrement est considéré (update articles set views = views + 1 where id=..., puis l'ajouter à order by clause:

...order by match(...) against (...) desc, views desc 

Si vous avez des journaux tables, vous pouvez les utiliser, mais MySQL ne fonctionne pas bien avec les grandes tables de consignation