2011-08-29 48 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