2011-08-29 6 views
0

Comment faire un ordre de recherche fulltext php par pertinence?php mysql recherche plein texte par ordre de pertinence

SELECT * FROM table 
WHERE MATCH (col1,col2,col3) 
AGAINST ('+$boolean' IN BOOLEAN MODE) 
Order By relevance 

Je veux mettre la pertinence, la première doit correspondre col1, col2 puis ensuite correspondre col3, pour plus de mots si col1, col2 match se est terminé, puis tournez à col3.

Peut-être que je devrais fixer un pourcentage, comme col1, col2 présentant de l'intérêt de 66% et col3 présentant de l'intérêt de 34% ...

+1

Vous voudrez peut-être jeter un oeil à http://stackoverflow.com/questions/547542/how-can-i-manipulate-mysql-fulltext-search-relevance-to-make-one-field-more-valu http://stackoverflow.com/questions/7115221/mysql-query-weight-based-search-engine – swordfish

Répondre

1

Vous pouvez essayer quelque chose comme ceci:

SELECT *, (MATCH(col1, col2) AGAINST('+$boolean' IN BOOLEAN MODE) * 0.66 + MATCH(col3) AGAINST('+$boolean' IN BOOLEAN MODE) * 0.34) AS relevance 
FROM table 
WHERE MATCH(col1, col2, col3) AGAINST ('+$boolean' IN BOOLEAN MODE) 
ORDER BY relevance DESC 
Questions connexes