2 : 02 題未定

← 2 - 01 p↑ もくじ i 2 - 03 n →

ホームページに全文検索つけてみる?

2001年1月5日

この記事は、次のような窓の作り方を説明したものです。この記事は2001年に書かれたもので、最新の状況と異なる可能性があります。

妖精現実内 全文検索

Google

注意:以下、記事の内容というか考え方は参考になるとは思いますが、やっぱ非公開の変数を勝手にいじるのはグーグルに迷惑かもしれないので、おすすめしません。なお、少しは実用目的で役立つ場合もありますが、ホンモノのサイト内検索とは、ほど遠いものです。あくまで、雰囲気や発想のほうを楽しんでください。

ふつうの検索エンジンの窓と違って、あなたのサイト内の記事だけを対象として検索してくれる「マイ・エンジン」。例えば……「このサイトには、あちこちに、なにげにフィンランド情報が書いてあるようだ。フィンランドについてちょっとでも書いてあるページにぜんぶ目を通したい」というフィンランド・マニア(?)がいたとして、わざわざ全ページに目を通さなくても、上のような窓に「フィンランド」と入れて Enter を押すかボタンをクリックすればそのサイトのなかの「フィンランド」という言葉を含むページがリストアップされるわけです。おお、実用的で、なかなかかっこいい機能じゃん?

2、3ページしかないサイトでは、わざわざ検索ボタンをつけることもないでしょうが、ある程度、規模の大きいウェブサイトでは、サイト内検索ができると、なにかとべんりでしょう。

こういう窓をあなたのウェブページに設置すること自体は、まったく問題なく、グーグルのほうでソースを教えてくれているほどです(「グーグルにリンクする」参照)。ただし、それは、入力されたキーワードによりウェブ全体を検索するふつうのツールです。以下は、それにちょっと細工して、(ウェブ全体じゃなく)あなた自身のドメイン内だけをグーグルで検索させるわけです。といっても、httpで始まるあるリソースを呼ぶだけなので、べつに違法でもなんでもありません。その方法ですが、「&sitesearch=」で検索対象のドメイン(上の例では「www.faireal.net」)を渡してやります。

自分でサーバを自由に使えるなら、なまずを泳がせてホンモノのサイト内全文検索を設置することもできるわけですが、ちゃっかり google を使うのは、はるかに簡単です。そうすれば自分のサーバの負荷にもならないし、グーグル名物のキャッシュも使えるし……

もちろんグーグルボットがまだ見てない部分は検索できません。あくまでグーグルのデータに依存する簡易なものです、ホントのホンモノの全文検索じゃありません、が、グーグルがよく見てるサイトであれば、けっこう実用になります。それに、実用性はともかくとして、気分だけでも、専用の検索があるとちょっと本格的なウェブサイトっぽくて楽しいかも?

サンプルソースは次のようになります。コピペして一か所だけ書き換えれば、すぐ動く……ハズです。たぶん。

<form method="get" action="http://www.google.com/search">
<p>妖精現実内 全文検索</p>

<div>
<!-- グーグルのロゴ。つけておこう -->
    <a href="http://www.google.com/"><img class="none"
        src="http://www.google.com/logos/Logo_40wht.gif" width="128" height="53"
        width="128" height="53" alt="Google" /></a>

<!-- 検索語の入力欄 -->
    <input type="text" name="q" size="31" maxlength="255" value="" tabindex="1" accesskey="q" />

<!-- 隠しフィールド -->
    <input type="hidden" name="sitesearch" value="www.faireal.net" />
    <input type="hidden" name="hl" value="ja" />

<!-- 検索ボタン -->
    <input type="submit" name="btnG" value="Google 検索" tabindex="2" accesskey="r" />
</div>
</form>

「sitesearch」の value は、あなたのウェブページのURLに従って書き換えてください。ドメインごとなので、例えば、ホームページのアドレスが members.example.com/~hoge/ の場合、「members.example.com」内の検索、というふうに指定することになります。ディレクトリ名までは指定できません。この制限を回避する方法もないわけでもないのですが、ぜんぜん別のテクニックになるので、ここでは紹介しません。

こういうとき、サブドメイン(hoge.example.com)をくれる無料ホームページがとくに光るのかな。日本でもトライポッドとかあるよね(ポップアップ広告がうざいから、おすすめできないけど)。サブドメインをくれる無料ウェブプロバイダは世界中にいっぱいあるし、なかには、サブドメインをくれて、しかも広告が入らない、そのうえFTPがつかえるフリー・ウェブ・プロバイダもけっこうあります。FTPがつかえないでいいなら、十か二十はあります。FTPが使えないのは、ふべんだから、おすすめできないけど……。(ホームページのアップロードにはFTPを使うものと思っている人もいると思いますが、世界的にみるとブラウザからアップのほうが多いくらいです。ブラウザからアップで日記とか更新するのは、面倒だから、やっぱFTPがいいけどね)

ちなみに、ボタン表面の文字列を「Google 検索」以外に書き換える場合、この値も「btnG」キーでむこうに渡されることになっているので、いちおうハッカーらしく(笑)次のように、細かい点までつじつまをあわせておきましょう。例えば「おれさまボタン」に書き換える場合……

  1. まず、ボタンの値を書き換えたのがむこうから見えないように name を消してから、value を書き換える。
    <input type="submit" value="おれさまボタン" />
  2. そうすると消してしまった「btnG」キー(値は「Google 検索」)が送出されなくなるので、隠しフィールドで偽造しておく(次の1行を書き足す。ブラウザからは見えません)。
    <input type="hidden" name="btnG" value="Google 検索" />

関連記事

サイト内の検索にGoogle.comを使う方法


webmaster@faireal.net