カテゴリのサイト表示順を変更
ディレクトリ型検索エンジンdtnのカテゴリは、これまで登録サイトが申請順に並べて置いてあっただけでしたが、今後は人気サイト順に表示をするようにしました。
サイトを人気順に並び替え
サービス終了したYahoo!カテゴリも、ディレクトリ登録サイトを人気順に表示していましたが、それと同じようなイメージになります。昔からやろうやろうと思っていたものの、クエリを書くのが億劫でやらずじまいでおりましたが、やっと実現することができました。
上位表示のSEO効果
昔だったらカテゴリの上部にリンクが位置すればするほど被リンクとしての価値も増すイメージでしたが、昨今ではもうSEO的にはあまり意味がないかもしれません。とはいえ、何事も下がるよりは上がる方が気分もよいだろうとは思いますので、登録サイトをお持ちの方はぜひカテゴリ内の順位もたまには確認してみて下さい。
人気順に抽出するクエリ
書き直したクエリでは、カテゴリ登録サイトを抽出する際に、リンククリックデータ集計テーブル、イイネ評価集計テーブル、ほかに対して複数JOINをかけています。複数キーでJOINをすることもあり、実行速度が若干気になりましたが、日次バッチで深夜に1回走るだけですので、まぁよしということにしておきました。
テーブルとクエリはこのようなイメージです。
id | URL | サイト名 | サイト説明 |
---|---|---|---|
1 | https://test.co.jp/ | テスト1 | テストのサイト |
2 | https://test2.co.jp/ | テスト2 | テスト2のサイト |
3 | https://test3.co.jp/ | テスト3 | テスト3のサイト |
id | タイムスタンプ |
---|---|
2 | 2020-11-01 23:44:38 |
1 | 2020-11-01 23:05:40 |
3 | 2020-10-29 07:51:31 |
1 | 2020-10-27 18:34:49 |
SELECT
link.id AS ID
COUNT(DISTINCT outaccess.out_id)AS SCORE
FROM
link
LEFT JOIN
outaccess
ON
link.id = outaccess.out_id
WHERE
link.category_code = "******"
GROUP BY
link.id
ORDER BY
SCORE DESC
クエリ改修後
上のクエリではクリックアクセスしかJOINしていませんでしたが、実際にはクリックアクセスだけでなく、イイネ評価や他も含めて複数のLEFT JOINをかけつつ抽出し、HTML更新まで行います。トータルで数分は処理時間がかかりますが、今のところ毎晩問題なく走ってくれているようです。
ディレクトリ型検索エンジンdtnについては、他にも細かい機能修正をかけましたが、このご時世に、ディレクトリ型検索エンジンの改修について話題にして興味を持つ方はほとんどいないでしょうから、このあたりで終わりにしておきます。
未だ登録申請待ちで6,000サイト以上をお待たせしておりますが、今でも日に数件の申請をいただいておりますので、少しでも早く0件にできるよう頑張りたいと思います。