≪HOME(21世紀のアフィリエイト通販生活)
MovableType超高速サイト内検索!これ作った人神!
MovableTypeの検索って記事が増えてくると時間が掛かります。
さらに最大の欠点は複数のブログをMovableTypeで構築している時の挙動にあります。
この場合、一回目の検索では問題ありませんが、検索結果画面から2回目の検索を行おうとすると、全ブログが検索対象になってしまいます。
これはかなりマズい仕様です。
代わりにGoogleの検索窓を設置するなんて方法もありますが、Googleのインデックスに加わってない投稿間もないページは検索対象になりません。
新しい記事が検索対象にならないんじゃ話にならんよ。
この問題を劇的にしかも実に簡単な方法で改善できます。確認したい方は右上の検索窓から試してみて下さい。
参考にしたのはこちらです。感謝、感謝、感謝
└ ココログプロとかTypepadとかMTとかブログ人とかその他のブログサービスとかでもAjaxでバックナンバーを検索するJavaScript
新規インデックス・テンプレート作成で、ファイル名をsearch_data.txt として、index.htmlと同じ場所に出力します。
<?xml version="1.0" encoding="utf8"?>
{data: [
<MTEntries all="1">
{title:"<$MTEntryTitle remove_html="1" encode_js="1"$>",link:"<$MTEntryLink$>",body:"
<$MTEntryBody remove_html="1" encode_js="1"$><$MTEntryMore remove_html="1" encode_js="1"$>"},
</MTEntries>
{"title": "", "link": "", "body": ""}
]
}
各テンプレートの検索窓には以下を設置。テンプレート名&出力パスを変更した場合は、それに合わせて所定箇所を変更します。
<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/blog_ajax_json_search.js">
</script>
<form action="javascript:blogAjaxJsonSearch( '/search_data.txt', document.getElementById('search_box').value );"><input type="search" id="search_box" value="" size="30"><input type="button" id="search_button" onclick="javascript:blogAjaxJsonSearch( '/search_data.txt', document.getElementById('search_box').value );" value="サイト内検索"></form>
検索結果は今までのように検索用テンプレート search_templates/default.tmpl を使いません!
各アーカイブの<div class="content">~</div>で囲んだ部分に表示されます。
なので、もしない場合は新たにコンテンツ部分の内側などに追加すればOKです。
たったこれだけで完了
一番最初の検索だけ過去記事をロードしている為、ちょろっと時間が掛かりますが、同画面からの以降の検索は最速!爆速!驚速!音速の貴公子セナ!
最初のロード時間にしても私の環境だと1~2秒なので、今までより圧倒的に鬼速!
ヒットした語句がハイライト表示されるのも良さげです。
なにより検索結果がブログ内のメインコンテンツ部分に表示されるので、なんだかとってもスマートでクールな気分
人は便利さを手にした瞬間から、もう元には戻れないという。
- - - - - - - - - - - - - - - - - - - - - - - - - -
追記:
追加したテンプレートを見ると判りますが、コメントが検索対象になっていません。
コメントを検索対象に含めたい場合は以下のように変更します。
<?xml version="1.0" encoding="utf8"?>
{
data:[
<MTEntries all="1">{
title:"<$MTEntryTitle remove_html="1" encode_js="1"$>"
,link:"<$MTEntryLink$>"
,body:"<$MTEntryBody remove_html="1" encode_js="1"$><$MTEntryMore remove_html="1" encode_js="1"$><MTComments>【<$MTCommentAuthor remove_html="1" encode_js="1"$>】<$MTCommentBody remove_html="1" encode_js="1"$></MTComments>"
},</MTEntries>
{title:"",link:"",body:""}
]
}
参考にさせてもらったのはこちらです。
└ blog_ajax_json_search.jsにパッチ:コメントも含めて検索
検索ヒットしたコメントに対してもハイライトを効かせたい場合は、上記のサイトを参考にjavascript の呼び出し先を変更して下さい。
私の場合、何故かハイライト部分だけフォントサイズが小さくなっていたので、ローカルに落とさせて貰ってフォントサイズだけ変更しました。
今回も感謝、感謝、感謝です。
投稿者 Locutus : 2006年05月13日 22:13 EDIT カテゴリ⇒ MovableTypeカスタマイズ
→ MovableType超高速サイト内検索!これ作った人神! '06 5/13
エントリー投稿でMovableTypeのテンプレートタグを使う! '06 5/11
ModTextFilterプラグインで改行設定の不具合を解消!? '06 5/10
BlogCopyrightプラグインでCopyrightの年表示を自動化! '06 5/10
≪HOME
blog_ajax_json_search.jsにパッチ:コメントも含めて検索 from 風柳亭 - 別館:書庫のある庵 -
なおゆきさん(サイト『暴想』)作の全文検索スクリプトは、記事本文の全文検索が出来るようになっていますが、コメントまで含め [続きを読む]
トラックバック時刻: 2006年05月14日 02:18
links for 2006-05-14 from オラオラ
WordStore「言葉の魔力」(人気キーワード検索広場) (ta... [続きを読む]
トラックバック時刻: 2006年05月15日 15:49
「target="_blank"」について from Haggy's blog
Movable Typeの投稿画面にはリンク自動挿入ボタンが付いているが、「ta... [続きを読む]
トラックバック時刻: 2006年05月26日 17:21
links for 2006-05-14 from オラオラ
WordStore「言葉の魔力」(人気キーワード検索広場) (tags: japanese 日本語 検索) Aurium :: ... [続きを読む]
トラックバック時刻: 2006年12月25日 15:27
≪HOME(21世紀のアフィリエイト通販生活)