👻

超簡易的に検索の重み付けをする

2022/06/15に公開

たとえば、ざっくりタイトル、本文に含まれている「ラーメン」というキーワードで検索をして表示させたいとします。

そうすると、両方のどちらかのフィールドに含まれているものが全部でてくるのですが、一覧で見た時にタイトルにキーワードが含まれていないと関連するように見えず、クリック率もさがります。

そこで、より関連が強いものをだすために、簡易的ではありますがタイトルに含まれている方を優先させて表示するといい感じにだすことができます。(本当はそれぞれのフィールドをスコア化して、スコア順に並び替えするなどをやったほうがいいのですが)

そんな時に使えるorder byがこちら。

CASE WHEN title LIKE '%$keyword%' THEN 1 ELSE 2 END

このあとにorder by でさらに優先順を指定するとより良い感じに。

Discussion