我有一个小问题(这就是我希望)与排名的全文搜索,我的搜索结果中的MySQL数据库。有两种方式我都试过写它:全文搜索排名
自然的方式:
SELECT SQL_CALC_FOUND_ROWS *,
MATCH(productname,keywords) AGAINST('$cl_search') AS score
FROM products
WHERE MATCH(productname,keywords) AGAINST('$cl_search')
ORDER BY score DESC,lastupdated DESC;
布尔WAY:
SELECT SQL_CALC_FOUND_ROWS *,
((MATCH(productname) AGAINST('$cl_search' IN BOOLEAN MODE))+
(MATCH(keywords) AGAINST('\"$cl_search\"' IN BOOLEAN MODE))) AS score
FROM products
WHERE MATCH(productname,keywords) AGAINST('$cl_search')
ORDER BY score DESC,lastupdated DESC;
我喜欢索引我得到的,当我在自然语言模式中进行搜索,但我该怎么办防止进入即“包包包包包包”有人为产品名称,以获得良好的搜索结果?
所以我写了布尔方式来解决这个问题,但是1.它比较慢,而且我没有得到像'比较字数'这样的其他相关性索引。
关于如何获得两全其美的想法?