朝顔日記

自分のサイトで検索エンジンを提供しよう

2006-09-05

以前、OpenSearch 形式の検索プラグインを用意しておいてページになんか書いておくとと、来たるべき Firefox 2.0 や IE7 なんかだとそれを自動検知して、ブラウザの検索エンジンに追加できるようになって、そのサイトをよく利用する人に喜ばれます(本当か)というようなことを、朝顔日記を OpenSearch Autodicovery 対応にや、Re:Firefox 2 の検索エンジン(もしくは SearchPlugin Generator) などで書きました。CMS や Blog サービスなんかを使っていれば、システム自体に検索機能が備わっていることが多くその実現は容易なわけですが、システムに検索機能が備わっていない場合はどうしたらいいでしょうか。そういう場合は、Google の特定のサイト内検索の機能を使えばよいのです。

実は、Firefox 2.0 が出たらネタにしようと思って以前から作って一時は密かに配布もしていた朝顔日記サイト内検索 by Google があるのでそれをご披露してみましょう。:p)


<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
<os:ShortName>朝顔日記(Google)</os:ShortName>
<os:Description>朝顔日記サイト内検索(Google)</os:Description>
<os:InputEncoding>UTF-8</os:InputEncoding>
<os:Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAA3NCSVQICAjb4U/gAAAAhFBMVEUWJl7///8xZtoYQc5UqfOAl+QaQcY9guUjO4whUdRYddthwftKluwiSdAqWNZScdoxTa9La9kmTdEpOGtmzP85deBRo/BHj+qUqOgeRc1evPktX9ghStZatfcnTtNixPwgOpIWKGWGm+UpVNVKmu40bd1ChOUyWdg7eeEvYtlXr/RIkurYoaDoAAAACXBIWXMAAAsSAAALEgHS3X78AAAAFnRFWHRDcmVhdGlvbiBUaW1lADEyLzAxLzAyE1rwngAAACF0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgNC4w6iYndQAAAJJJREFUeJxdzlsTgiAQhmENO9J22DYLGZZKQKv///8CZXLG926f2YuvKGcV5f01tTxH2CEAMDOkHgmUEMMBQohNBqbUG9QI21pKaay1fYa1ubGrmBu3GsEZ3coa0fzB4qLZM1Od4UohfAIi+QxaGtNo9KQyoK++B+iJYATEtBXiDcOwY9e1KhXnDx+nZzF1iTDrB1V5DvuDWNo8AAAAAElFTkSuQmCC</os:Image>
<os:Url
type="text/html"
method="GET"
template="http://www.google.co.jp/search?q={searchTerms}&amp;sitesearch=diary.noasobi.net&amp;hl=ja&amp;ie=utf-8&amp;oe=utf-8&amp;domains=diary.noasobi.net">
</os:Url>
</SearchPlugin>

os:Image のところには、アイコンをデータスキームで埋め込むか、アイコンの URL を記述しておけばいいようです。自サイトに置いたアイコンを参照してもらってもいいと思いますが、無駄なトラフィックになると思うのでデータスキームで埋め込むといいでしょう。画像をエンコードしてデータスキームにするには、The data: URI kitchen が便利です。

あと、os:ShortName や os:Description なんかを適切なものに書き換えておくのは当然として、os:Url の部分も注意深く見て、自分のサイトに合わせて書き換えてください。

os:Url 要素の template 属性の部分を再掲して説明します。見やすいように、&amp; の前に改行を入れてありますが、実際は改行無しになります。


template="http://www.google.co.jp/search?q={searchTerms}
&amp;sitesearch=diary.noasobi.net
&amp;hl=ja
&amp;ie=utf-8
&amp;oe=utf-8
&amp;domains=diary.noasobi.net"

強調部分をよく見て適切なものに書き換える必要があります。ちなみに、{searchTerms} の部分が入力される検索語に置き換わります。これがないと検索語が Google に渡りません。>拡張あれこれさん

で、出来上がったら適当な名前を付けて保存します。ここでは、asagaonikki_googleserach.xml とでもしておきます。これをサーバの適当な場所にアップします。ここではルートに置いたことにします。あとは、以下のような記述を html の head 要素のところに書いておきます。


<link rel="search" type="application/opensearchdescription+xml" href="/asagaonikki_googlesearch.xml" title="朝顔日記サイト内検索(google)" />

もちろん、href 属性や title 属性は自分のところのものに合わせてテキトーに書き換える必要があります。

これで html 手書き派のあなた(誰)も、OpenSearch Autodiscovery に対応した UA 向けに自サイトで検索エンジンを提供できるようになります。使う人がいるかどうかわかりませんが、少なくとも自分用としても便利ですよ。:p)

「自分のサイトで検索エンジンを提供しよう」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事へのツッコミ

1: 拡張あれこれ (2006-09-06T13:15:03+09:00)
やっと謎が解けた思いです.
私のサイトの検索拾っていく人がいるかは疑わしいのですが少なくとも自分ではよく自サイト検索するので有り難うございます.
この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2006/09/diary_060905a.html