自サイトに検索機能をつけるには?

目次

はじめに

自サイトに下記のような検索機能をつける方法についていくつか紹介します。

インデックス型検索エンジンを導入する

サーバーの管理権限を持っているなら、Namazu のような、インデックス型検索エンジンを導入するのがおススメです。あらかじめ、用語毎のインデックスを作成しておくので検索も早く、サーバーへの負荷も少なく抑えることができます。

現在の Namazu は、Linux版、Windows版などが配布されています。インストール方法などは、上記のページの「チュートリアル」を参照してください。

逐次検索型検索エンジンを導入する

管理権限は無いけれど、CGIは設置できるという場合は、下記のページで紹介しているような、逐次検索型のCGIを設置する方法があります。

gooなどの検索エンジンを利用する

goo などの検索エンジンが検索対象としているサイトであれば、goo などの検索エンジンの機能を利用する方法があります。

例えば、https://www.tohoho-web.com/html/ のサイトを検索するには、以下のようなHTMLソースを埋め込みます。

<form action="http://www.goo.ne.jp/default.asp">
<input type=text name="MT" size=20>
<input type=submit value="検索" name="act.search">
<input type="hidden" name="SM" value="MC">
<input type=hidden name="RD" value="DM">
<input type=hidden name="Domain" value="www.tohoho-web.com">
<input type=hidden name="Path" value="">
<input type=hidden name="from" value="USR">
<input type=hidden name="DC" value="50">
(by <a href="http://www.goo.ne.jp">Goo</a>)
</form>

次のような検索窓が表示されます。

(by Goo)

NAMEとVALUEのくみ合わせは、次のような意味をもっています。

名前意味
MT検索する用語。
SMMCはすべての語を含む、SCはいずれかの語を含む、phraseはフレーズ検索、BはBoolean検索。
DC検索結果に表示する件数。
DE0はタイトルのみ表示、2はページの先頭を100語程度表示。
RD検索対象。DM は、ドメイン名とパス名を指定することを示す。
DSドメイン名とパス名に関して、IN は含む、EXは除く、を意味する。
Domainドメイン名。
Pathパス名。~tanaka など。最後のスラッシュ(/)は書かない。
from検索機能が誰から呼ばれたか。USR は一般ユーザーからの呼び出しを示す。

ただし、この方法は、goo などの検索エンジンが巡回を行って、データベースを更新してくれないと、新しい情報が検索できないという欠点はあります。

検索ASPサービスを利用する

最近では、サイトの検索機能を専門とする ASP(Application Service Provider)サービスもあるようです。有償・無償などいろいろあります。

3つの方法の比較

上記、3つの方法について、機能比較を行ったのが以下の表です。

評価点方法1方法2方法3方法4
設置の簡単さ×
検索の早さ×
サーバーの負荷×
反映の速さ×様々
イントラネットでの使用××