« 米国特許6599897(セロクエル)の要約・発明の背景・独立クレームの翻訳(再編集版) | トップページ | メモ: Billy Joel "We didn't start the fire" »

JavaScript による、ココログサイト内全文検索

従来、このサイト (nouse) のサイト内検索は、"yahoo japan," "google," "ココログル" の3つ検索エンジンで、対象を yeblog.cocolog-nifty.com に限定することで実現していた。しかし、「ある単語/フレーズを手掛かりに、それを含む記事に辿りつく」と云う、こちら側にとっては基本的な要求を満たしてくれないことが多いため、「無いよりはマシ」程度の価値しかなかった。

もっとも、文書を書いた本人である私自身の場合は、それなりに「手掛かり」は豊富であるし、よしんば些細な手掛かりであっても、目標とする記事を探す出すのには、少なくとも現在の記事数ぐらいでは苦労しないのだが、ゲストの場合は余計な手間を掛けさせてしまっていることが想像された。

この不備は以前から漠然と気になっていたのだが、アクセス解析を見るようになって、ゲストに無駄骨を折らせている目の当たりに分かるようになったので、最近本気になってネットを調べたのだった。すると、取り敢えずココログ専用ではあるが、良さそうなものがすぐに見つかった。それが、[暴想]と云うサイトの管理者である[なおゆき]さんが作成された cocolog_ajax_search.js と云う JavaScript ユーティリティだ(利用許諾条件: クリエイティブ・コモンズ・ライセンス)。

これを利用するのに、実際にユーザーが行なわなければならないのは、[暴想] 中の記事 [自分のココログを全文検索するJavaScript] (2005.10.30--最初の発表は1年以上前ことだ。今まで知らなかったのは、単に私が怠慢だったためだろう) で公表されているスクリプトを、自分が管理しているココログサイトのマイリストの項目として貼り付けることだけである(但し、後述するように、バックナンバー設定を変更する必要がでてくる可能性がある)。このスクリプトは、cocolog_ajax_search.js を組み込む一方、検索テキスト入力用のフォームを、サイドバーに作成してくれる。

使ってみると、すこぶる具合が良い(フレーズによる検索が出来ないのが残念だが、AND 検索は可能である)。ポスト直後の記事を含めて文字どおり全文検索するので、検索漏れに就いて疑心暗鬼せずにすむ。と云う訣で、今まであった検索エンジンの利用は全廃して、[暴想エンジン]だけに切り替えた。

ただし、導入時引っ掛かったのが、[管理ページトップ >ブログ一覧 > 個別のブログ名 >設定>バックナンバー設定] (注: 個別のブログ名 は、当該スクリプトを貼り付けるブログ名。このサイトでは nouse) が、[週別]では、ページエラーが出てしまうことだった。そこで、[バックナンバー設定]を[月別]に改めた。

これに合わせて、同じく[なおゆき]さんが発表している[カテゴリ別バックナンバーをプルダウンメニューにするJavaScript] (2005.10.09) と[月別バックナンバーをプルダウンメニューにするJavaScript] (2005.10.10) も導入することにした。その際、検索結果やカテゴリ・月別バックナンバーの表示の際に[タイトルと概要]を表示する形式を採用した。

と云う訣で、私が実際にした手順を以下にまとめておく。ただし、憶え間違えがあろうし、勘違いもあるかもしれないのが、その際は悪しからず。

1. [マイリストの新規作成]を行なう。ここで [リストのタイプ:] は「メモ」、[リストの名前:]は "in-site search" で、リストを新規作成した(勿論、リスト名は、cocolog の「仕様」に従う限り、個々のブログの管理者の任意である。以下、"in-site search" は適宜読み替えて頂きたい)。
2. [管理ページトップ >マイリスト>in-site search]の画面が現われるので、そこで[項目の追加]を選択する。
3. [項目を追加する: in-site search] と云うウィンドウが現われるので、そこの[ラベル]欄は空白のままにしておき、[メモ]欄に以下のテキストを貼り付ける。

<script type="text/javascript" src="http://java.cocolog-nifty.com/blog/files/javascript/prototype.js"></script>
<script type="text/javascript" src="http://java.cocolog-nifty.com/blog/files/javascript/cocolog_ajax_search.js"></script>
<form action="javascript:cocologAjaxSearch( '/blog/archives.html', document.getElementById('search_box').value );"><input type="search" id="search_box" value=""><input type="button" id="search_button" onclick="javascript:cocologAjaxSearch( '/blog/archives.html', document.getElementById('search_box').value );" value="検索"></form>
エンジン: cocolog_ajax_search.js<br />
作成者: [なおゆき]さん<br />
入手サイト: <a href="http://java.cocolog-nifty.com/blog/2005/10/javascript_c163.html">暴想</a><br />
ライセンス: <a href="http://creativecommons.org/licenses/by-sa/2.1/jp/">Creative Commons</a><br />
----------------------------
<script type="text/javascript" src="http://java.cocolog-nifty.com/blog/files/javascript/category_archive2pulldown.js"></script>
<script type="text/javascript" src="http://java.cocolog-nifty.com/blog/files/javascript/cocolog_archive_extention.js"></script>
<script type="text/javascript" src="http://java.cocolog-nifty.com/blog/files/javascript/date_archive2pulldown.js"></script>

<script type="text/javascript">
window.onload = function init() {
//タイトルと概要を表示を使う人は追加する
cocolog_archive_extention();
//カテゴリ別バックナンバーをプルダウンメニューに
category_archive2pulldown('#type=title');
//月別バックナンバーをプルダウンメニューに
date_archive2pulldown( '/nouse/archives.html', '#type=title');
}
</script>

注意すべきは、上記スクリプト中、末尾近くの[//月別バックナンバーをプルダウンメニューに]の次の行で、/nouse/ とあるところは、適宜 個別のブログ名 に変更しなければならないことだ(オリジナルでは /blog/ になっている)。また、その直後の archives.html も、自分のサイト独自のファイル名になっているなら、その通りに変更する必要があるとのことだ。

また、nouse では、ココログデザインを利用していないので、[カテゴリ別バックナンバーをプルダウンメニューにするJavaScript] に書かれてある window.onload で実行される関数 init() による処理中、ココログデザインに関わる次の2行を削除してある:

//ココログデザインを使っている人は追加する
initStyle();

4. ウィンドウ[項目を追加する: in-site search] 中の[追加]のボタンを押す。
5, [項目を編集する: in-site search] と云うウィンドウが現われるので、[変更を保存]のボタンを押す。
6. [変更内容を保存しました。]と云うメッセージがでるので、[ウィンドウを閉じる]のボタンを押す。
7. [管理ページトップ>ブログ一覧> 個別のブログ名 >デザイン> 個別のブログ名 テンプレート>表示項目]で [in-site search (メモ)]にチェックを入れる。
8. [管理ページトップ>ブログ一覧> 個別のブログ名 >デザイン> 個別のブログ名 テンプレート>並べ方]で、好みのサイドバーコンテンツの配列を決めてから、[変更を保存]のボタンを押す。
9. [現在のテンプレートを編集:個別のブログ名] で[反映]のボタンを押す。
10. [nouseの反映]と云うウィンドウで[反映]のボタンを押す。
11. [すべてのファイルを反映しました。]と云うメッセージが出たら、処理完了。

なお、[ココログをAjax化するJavaScript(再掲)] (2005.10.17) に掲載されていスクリプトは、使ってみたが、私のシステムと相性が悪いらしく、挙動がおかしくなった(読み込みが終わらない。ウインドウ上にポインタがある状態でマウスのホイールを回転すると、選択したカテゴリや月が勝手に変わってしまう)ので、旧い方のスクリプト (2005.10.09 及び 2005.10.10) を使った。

ついでに書いておくと、[ココログの記事作成画面をドリコム風にするJavaScript::Bookmarklet] (2005.10.03) や、[記事の作成画面を巨大化するJAVASCRIPT::BOOKMARKLET] (2005.09.07) も、やはり私のシステムと相性が悪いらしく働いてくれない。ともに、使えたなら便利だろうと思われるので、残念。

|

« 米国特許6599897(セロクエル)の要約・発明の背景・独立クレームの翻訳(再編集版) | トップページ | メモ: Billy Joel "We didn't start the fire" »

マイコンピュータ」カテゴリの記事

備忘」カテゴリの記事

ネット/ソフト/サイト」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: JavaScript による、ココログサイト内全文検索:

« 米国特許6599897(セロクエル)の要約・発明の背景・独立クレームの翻訳(再編集版) | トップページ | メモ: Billy Joel "We didn't start the fire" »