2011-08-29 70 views
0

如何通過相關性製作一個php全文搜索順序?php mysql全文搜索按相關度排序

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

我想設置的相關性,首先應符合col1, col2然後再搭配col3,對於更多的話,如果col1, col2完成比賽,然後在col3轉動。

也許我應該設置一個百分比,如col1, col2有66%的相關性和col3有34%的相關性...

+1

你可能想看看 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

回答

1

你可以嘗試這樣的事情:

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