私はmysqlデータベースの全文検索の検索結果をランク付けして小さな問題を抱えています。私が試した2つの方法でそれを書く:全文検索ランキング
NATURAL WAY:
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;
BOOLEAN 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.それはより遅く、2.私は '単語数と比較した'のような他の関連性指標を取得しない。
どのようにして両方の世界をベストにするかについてのご意見はありますか?