MB-Support

パソコン初心者のサポートページ

4.Namazu のテンプレートを変更する

 ホームページ制作が順調に進むと、サイト内検索を設置したくなるのが一般的です。サイトのページ数の増加に伴い、テキストリンクだけでは対応できなくなるかです。しかし、BLOGとは異なり、自分のホームページにサイト内検索を設置するのは至難の業。そこで、無料で利用できる全文検索システムのNamazuを設定する方法をご紹介します。


前回 は、ローカルではありますが、Internet Explorer から Namazu を使って自分のホームページを検索する事ができました。 本日は初期状態のテンプレートを、自分のホームページのデザインに変更してみたいと思います。

と、その前に・・・・前回までの作業で全文検索は可能になりましたが、検索結果をクリックしても目的のページにジャンプできないと思われます。 そこで、再び C:\namaxu\etc\namazu にある namazurc ファイルをメモ帳などで開いて下さい。修正する部分は以下です。



#Replace    /home/foo/public_html/ http://www.foo.bar.jp/~foo/

まずは、行頭の「#」を削除します。次に、/home/foo/public_html/ の部分を、自分のホームページスペースのアドレスに変更します。

Replace    /C\|/Inetpub/wwwroot/ http://www.foo.bar.jp/~foo/


例えば、IIS インストール状態だと C:\Inetpub\wwwroot\ がホームページスペースになります。 この場合は、/C\|/Inetpub/wwwroot/ と入力します。先頭と末尾は「/」にして、ドライブ名の「C:\」の部分は「/C\|/」に置き換えます。 ホームページスペースがDドライブにある場合は「/D\|/」となります。次に、http://www.foo.bar.jp/~foo/ の部分を「/」に置き換えます。 「/C\|/Inetpub/wwwroot/」 と「/」の間隔は、TABキーを1回押せば良いでしょう。

Replace    /C\|/Inetpub/wwwroot/ /

これを上書き保存して、もう一度 Internet Explorer から 検索してみて下さい。今度は検索結果をクリックすると、目的のページが表示される と思います。ローカルでのテストが終了して、実際にWEBで公開する場合は、ホームページアドレスを入力してもいいでしょう。例えば、MB-Support なら、

Replace    /C\|/Inetpub/wwwroot/ http://mbsupport.dip.jp/

こんな感じです。ダイナミックドメインアドレスを使用してローカルからアクセスできない場合は、 自宅サーバーのホームページにアクセスする方法 を参照して、 hosts ファイルにローカルIPアドレスを設定して下さい。



さて、やっと本題に入ります。 元のテンプレートでは味気ないので、自分流にカスタマイズしてみましょう。例えば、私はだったら右画像の様に検索ページをカスタムします。 テンプレートの保存場所は、 昨日 C:\namaxu\etc\namazu にある namazurc ファイル で設定しましたね。昨日は、

Template    C:\namazu\share\namazu\template

Template    C:\Inetpub\wwwroot\search\template

に移動しました。この中で使用するテンプレートは、ファイルの末尾に「.ja」と付いた NMZ.body.ja、NMZ.foot.ja、NMZ.head.ja、NMZ.result.normal.ja、NMZ.result.short.ja、NMZ.tips.ja の6つのファイルです。

 



この 6 つのページが組み合わさって、検索ページが作られています。 ここからは、ホームページを手書きで作成する知識が必要となります。とりあえず、6 つのファイルを片っ端から開いてみましょう。

ただし、文字コードが EUC のため、メモ帳では文字化けして編集できません。フリーソフトのテキストエディタ TeraPad などを利用して編集しましょう。ちなみに Front Page2003 で開いた状態が右画像です。 私の環境では文字コードが Sift-JIS なので、問題が起こるであろうと予測できますが、EUC から Sift-JIS に変更してみました。 今の所、検索結果の表示に問題は出ていません。6つのファイルを変更する前に、デスクトップなどにコピーして保存した方が無難です。



分割されたホームページなので、何とも説明が難しいのと、少なからず cgi で全文検索を導入する以上、ホームページのタグが分からない段階では無いと思います。 つまり、6つのファイルがどういう割り振りなのかを判断できれば、自分なりにカスタマイズできるでしょう。

まずは、ホームページである以上、<html> があるファイルがページの始まりです。これは、NMZ.head.ja ファイルに存在します。このファイルには 文書型宣言 や、 スタイルシート、タイトルなどが記入されています。自分流に変更しましょう。そう言えば 文字コード の指定はされていません。 <head>〜</head>の間に、自分のホームページと同じ文字コードを埋め込みましょう。bodyの部分で大切なのは以下の赤い文字。


<form method="GET" action="/namazu.cgi.exeの相対/絶対パス">
<p>
<strong>検索式:</strong> 
<input type="text" name="query" size="40">
<input type="submit" value="Search!">
<input type="hidden" name="whence" value="0">
<!-- <input type="hidden" name="idxname" value="foobar"> -->
<a href="/namazu.cgi.exeの相対/絶対パス">[検索方法]</a>
</p>
</form>


この部分だけを抽出して、タイトルページの上部などに自由に埋め込む事が可能です。action="/namazu.cgi.exeの相対/絶対パス"の所は、 埋め込むページにより相対パスを変更する必要があります。面倒な場合は絶対パスで指定した方が間違いがありませんね。右はMB-Supportのタイトル横に設置した状態です。

ただし、ここでは、テンプレートをカスタムするのが目的なので詳しくは触れません。ところで、NMZ.head.ja ファイルには、<html> と <body> の開始タグはありますが、</body> や </html> の終了タグはありません。先にも書きましたが、6つのファイルが組み合わさり1つのページを生成するためです。このファイルの続きは、NMZ.body.ja、NMZ.tips.ja、NMZ.result.normal.ja、NMZ.result.short.ja の4つのファイルに分かれます。



NMZ.body.ja

検索ページ ( namazu.cgi.exe ) にアクセスした時に表示される、基本的な検索方法が記入されています。 文字サイズ以外は特に変更する事は無いでしょう。



NMZ.tips.ja

ワードを入力して検索した結果、該当するページが得られなかった時に表示されるTipが記入されています。ここも文字サイズ以外は特に変更する事は無いでしょう。



NMZ.result.normal.ja 重要!

デフォルトの表示形式「標準」で検索結果を表示する部分です。 内容は検索番号、ページのタイトル(リンク付き)、スコア、著者(製作者のE-Mail)、日付、ワードにヒットした文章の引用、URL(リンク付き)、ページサイズとなります。 検索結果により、繰り返し処理される部分なので、このファイルに何かを付加するのは止めましょう(広告など)。



NMZ.result.short.ja

表示形式「簡潔」で検索結果を表示する部分です。 内容は検索番号、ページのタイトル(リンク付き)、スコア、ページサイズとなります。 検索結果により、繰り返し処理される部分なので、このファイルに何かを付加するのは止めましょう(広告など)。



NMZ.result.normal.ja、NMZ.result.short.ja とは以下の表示形式を決めるソースなので重要です。


グレーの部分は動的に生成される部分なので変更する必要はありません。例えば、<strong>で囲まれたリンク付きタイトルの部分を<u>〜</u>で囲み、下線を表示するなど変更できます。


<dt>${namazu::counter}. <strong><a href="${uri}">${title}</a></strong> 
(スコア: ${namazu::score})
<dd><strong>著者</strong>: <em>${author}</em>
<dd><strong>日付</strong>: <em>${date}</em>
<dd>${summary}
<dd><a href="${uri}">${uri}</a> 
(${size} bytes)<br><br>

検索ワードを赤文字で表示させる指定は、C:\namaxu\etc\namazu にある namazurc ファイルをメモ帳などで開いて、 EmphasisTags 行頭の「#」を削除して上書き保存します。文字色を変更したい場合は、NMZ.head.ja のスタイル部分「strong.keyword { color: Red; }」 のRedを変更して下さい。NMZ.head.ja のスタイル指定を削除して、 namazurc ファイルに直接カラーを指定しても同じです。その場合「"」の前に「\」を付け加えるのを忘れないで下さい。


#EmphasisTags "<strong 
class=\"keyword\">" "</strong>"


NMZ.head.jaを先頭に、NMZ.body.ja、NMZ.tips.ja、NMZ.result.normal.ja、NMZ.result.short.ja のどれか1つが結果に応じて埋め込まれ、最終ソースとなるのが NMZ.foot.ja です。

ここには、NMZ.head.ja で開始された <html> や <body> を閉じるタグが記入されています。NMZ.head.ja と同様に共通ページなので、ページ全体をデザインするのに <div> で囲む場合は、この2つのページにまたがって記入する事になります。



以上で自分のホームページに合った検索ページが作成できました。 ユーザーを常に検索ページに誘導するのでは無く、NMZ.head.ja の検索フォームを抽出して配置できるので、使いかっては抜群です。 次はもう一度インデックスの作成を見直してみましょう。インデックスを更新してこそ、全文検索ですから。




戻る 一覧表示 次へ


BTOパソコン・ゲームPC・自作パソコンなら【TSUKUMO】 - 自作PCに必要なパーツ、豊富な品揃え

Copyright © 2013 MB-Support パソコン初心者のサポートページ All Rights Reserved.

管理人サイト閲覧方法プライバシーポリシー著作権/免責事項