MS Access Tips/Sample and VBA and Blog customize etc...

関連記事リスト自動表示スクリプトの改良版

以前の記事で
ブログに関連記事リストを自動表示するスクリプト
を紹介しましたが、果たして、使ってくださっている方はいるのでしょうか。精度と速度には自信がありますが、手間のかかるかなりマニアックな仕様ですので。。。

それはともかく、このスクリプト、いくつか不満点があったので改良してみました。

kanrenkiji.png

難易度:

すでに、このブログには改良スクリプトが組み込まれてますが、気付いた人はすごい洞察力の持ち主ですね。それほど、地味な改良です。

まず、改良と言うよりは不具合の修正が一点。

前回のスクリプトではキーワードの一致をIndexOfでしていました。JavaScripの分からない人には何の事がわからないと思いますが、要するに、文字列の一部でも一致すれば、キーワードが一致したカウントしていたのです。そのため、例えば、Query というキーワードが、jQueryにも一致するとカウントしてしまうのです。Query はAccess関係のキーワード、jQueryはjavaScript関係のキーワードでまったく関連性はないのにもかかわらず一致することになるというまずいことになってました。

これはコーディングしたときに既に気付いていたのですが、「まあいいや」という完全に手抜きのコードでした。今回、それを、完全一致したときのみカウントするように修正しました。

もう一点の改良点は、リストをある程度、ランダムに選択する仕様にしたことです。特定の記事ページを開いたときに、アクセスする度にリストの一部が前回とは異なるようになってます。

いままでの仕様は、キーワードの一致数で関連度を決定して、関連度が高い順にピックアップして、関連度が同じ場合は、記事が新しい順にピックアップしていました。

記事数が多くなっきたので、この仕様だと、古い記事はピックアップされる機会が減ってきます。古い記事にもいいものはあるので、ちょっともったいないです。

そこで、下記のような仕様にしてみました。

  1. 関連度が高いものから表示する。
  2. 関連度が同じグループ内では新しい記事から表示する。
  3. ただし、最後の同一関連度のグループからは、ランダムにピックアップしてから、新しい順に並び替えて表示する。

ちょっとわかりにくいので図で説明すると、

8件の記事を表示するとして、関連度が高い、かつ、新しい順にピックアップして下記のようになったとします。

記事1(5)
記事2(4)
記事3(4)
記事4(3)
記事5(3)
記事6(2)
記事7(2)
記事8(2)
記事9(2)
記事10(2)
記事11(2)
記事12(2)

関連度が3以上の 記事5 まではそのまま表示します。関連度2の記事は7件ありますが、ここから、ランダムに3件取り出します。それを新しい順に並び替えて表示します。例えば、下記のようになります。関連度2 の記事はアクセスする度に変化します。

記事1(5)
記事2(4)
記事3(4)
記事4(3)
記事5(3)
記事7(2)
記事10(2)
記事12(2)

スクリプトコード

2013/09/20 修正: while(i) を while(i-1) に修正。i=1 のとき無意味な処理になりますので。

jQueryを1箇所だけ利用してますので、jQueryを導入しておく必要があります。例えば、GoogleAPIsから読み込む場合は、HTMLの headブロック内に下記のコードを記述します。

キーワード、タイトルなどの記述書式、HTML内への埋め込み方法など詳細な導入法は、以前の記事
ブログに関連記事リストを自動表示するスクリプト
を参照してください。

以前のスクリプトをすでに導入済みの方は、記事データ移行のスクリプト部分をコピーして、以前のスクリプトに上書きして、ブログにアップロードするだけでOKです。

拍手する

11 Comments

名無し says...""

失礼します。

こちらのものを
カテゴリー内でエントリーの前後の記事を表示するようにしたいのですが
スプリクトコードを変更すれば可能でしょうか。

2010.05.19 08:47 | URL | #- [edit]
hatena says..."カテゴリ内で前後記事へ移動"

配列にカテゴリ情報も格納して、それを検索するようにすれば可能です。
実は、すでにこのブログにもその機能を実装しています。
カテゴリ別ページから個別記事に移動するとカテゴリ内移動モードになり、ページ上部に前後記事へのリンクが表示されるようになってます。

2010.05.19 09:46 | URL | #5uE6dEgY [edit]
名無し says...""

ご返事、ありがとうございます。
カテゴリ内移動モード>
確認しました。
すごく便利です。

スプリクコードと面向かって四苦八苦してみます。

2010.05.19 11:19 | URL | #- [edit]
dairy says..."ありがとうございます!"

hatenaさん、はじめまして。

スクリプトありがとうございます、
使わせていただきましたm(_ _)m

ちゃんと、地道にコピペしましたよ(笑)

2010.06.05 20:38 | URL | #m.2.LkcQ [edit]
あいおー says..."うまく表示されない?"

こんばんは。関連記事を表示させようと思ってここに辿りつきました。
過去記事を見て設定してみたのですが、うまく表示できないのです。

どうもブログの1P目だけにしか反応してないような?
2P目以降の記事には反映されてないみたいです。
原因などわかりますでしょうか?

……と書きこんでいる間に反映されていましたすみません。
しばらく待たないといけなかったんですね
というわけで、上の質問はなしでお願いします。

ただ、ひとついまだに解決できないことがあるのです。
このリストは、「続きを読む」を押す前の状態…個別の記事をクリックしない状態でも表示させることはできるのでしょうか?

<!--/more-->付近の位置にいろいろ挿入したのですが、
どうしても「記事内容をクリックし個別に表示しないと」リストが出ない状態です。
テンプレートとの相性などもあるのでしょうか?

どのような作業をしたかをあげておきますので、お返事いただけると幸いです。
ttp://www1.axfc.net/uploader/Sc/so/124476
パスは「hatena」です。

2010.06.16 22:00 | URL | #UzUN//t6 [edit]
hatena says..."Re: うまく表示されない?"

> このリストは、「続きを読む」を押す前の状態…個別の記事をクリックしない状態でも表示させることはできるのでしょうか?

あいおーさん、超亀レスですみません。

テンプレートHTMLへの挿入コードで、前後の下記のタグを削除すれば、個別記事以外のページでも表示されます。
<!--permanent_area-->

<!--/permanent_area-->



2010.11.17 00:05 | URL | #5uE6dEgY [edit]
Genzo says..."いまさらですが…"

いつも本当にお世話になってます。

いまさらなんですが、「関連記事リストの自動表示」を
導入させてもらいました。

もう、これで幾つHatenaさんのサイトを真似させてもらってるのだろう…
と、思うくらい参考にさせていただいてます。
(お恥ずかしい限りですが…)

本当にありがとうございます。

なお導入にあたり、記事を書かせていただきましたが、
まことに勝手ながらトラックバックさせていただいております。
ご都合が悪いようであればご連絡ください。

ではでは

2010.12.28 23:29 | URL | #x9UxyK2Y [edit]
あいおー says...""

hatenaさん、わざわざどうもありがとうございました。
今気づきました。

亀レスでお礼をば。

2011.01.11 21:16 | URL | #UzUN//t6 [edit]
B says..."とても便利です"

理想的な関連記事表示を見つけた!と
とても有難く使わせて頂いてます。

ところで、このスクリプトだと
当該記事が関連度最高値となって一番上に表示されてしまうと思うのですが
このブログ上では表示されないようになっています。
更に改良されたんでしょうか?
もし差し支えなければ、最新版を公開して頂けるとすごく嬉しいです!

2012.05.13 19:36 | URL | #SFo5/nok [edit]
hatena says..."re:とても便利です"

実は、現在、使っているのは、自分だけが使いやすいように特化させたもので、一般性に乏しいのでとても公開できるものではないのです。

また、最近、JSもさわっていないので、ここで公開しているコードを見ても、今の自分では解読できない状態なんです。

時間がとれたら、改良するかもしれません。たまに見に来てください。

2012.05.15 19:53 | URL | #5uE6dEgY [edit]
B says...""

お返事ありがとうございます。
残念ですがどうしても諦めきれなかったので
腹を括って、グーグル先生の力を借りつつ自力で解読&直してみました。
とりあえずの急場しのぎではありますが、今のところ何とかなっているので
公開は気が向いたときに、時間があったらで大丈夫です。
お騒がせ致しましたm(_ _)m

2012.05.17 14:57 | URL | #SFo5/nok [edit]

Leave a reply






該当の記事は見つかりませんでした。