次で終わる全文クエリがあります。
ORDER BY RELEVANCE DESC, CLICK_RATE DESC
の列に重みを付けることはできますorder by
か? 多分0.3
関連性と0.7
にclick_rate
?
今のままでは、入れ替えても満足のいく結果にはなりません。
別の方法として、上位の3
結果を でソートしCLICK RATE
、残りを でソートする方法がありrelevance
ます。
次で終わる全文クエリがあります。
ORDER BY RELEVANCE DESC, CLICK_RATE DESC
の列に重みを付けることはできますorder by
か? 多分0.3
関連性と0.7
にclick_rate
?
今のままでは、入れ替えても満足のいく結果にはなりません。
別の方法として、上位の3
結果を でソートしCLICK RATE
、残りを でソートする方法がありrelevance
ます。
これはうまくいくはずです
ORDER BY (.3 * RELEVANCE) + (.7 * CLICK_RATE) DESC
コメントから更新
上位 3 つの結果を click_rate で並べ替え、残りを関連性で並べ替える
最初にサブクエリを使用して最初の 3 つを識別し、順序付けを行う必要があります
SELECT test.id,
test.relevance,
test.click_rate,
top_3_click_rate.id t3_id,
top_3_click_rate.click_rate t3_click_rate
FROM test
LEFT JOIN (SELECT id,
click_rate
FROM test
ORDER BY click_rate DESC
LIMIT 3) top_3_click_rate
ON test.id = top_3_click_rate.id
ORDER BY top_3_click_rate.click_rate DESC,
test.relevance DESC
いつでも WHERE を使用できます。
これを試してください: WHERE RELEVANCE > 0.3 AND RELEVANCE < 0.7 ORDER BY RELEVANCE DESC, CLICK_RATE DESC