[[Soft/Editor/V]] namazuの使い方 http://mizube.yupapa.net/engine/namazu.html 更新日 2002.11.17 namazu の使い方 検索システムnamazuを使ってみよう ここでは、人気のある検索システム"namazu"を紹介します。 検索といっても、いろいろあります。 ここでは namazu.cgi を使って自分のホームページに全文検索機能を持たせたい場合の使いかたを紹介します。 なぜ検索システムに namazu を選んだか? 知人から検索機能の相談を受けました。 その相談とは「複数のWebサイトを指定して検索をしたい」というものでした。 私も知人もホームページは自前のWebサイトでなく、プロバイダのWebエリアをお借りしている"借家"なので、CGIはPerl言語だけが使えます。 検索対象に複数のWebサイトを指定できること レンタルWebサイトなので、Perl言語で実行可能なこと PDFファイルも検索できること フリーソフトであること これを満たすのは namazu 以外に無いようです。 namazu は非常に柔軟なシステムですから、使い方もいろいろです。 使っているパソコンのデータを検索したり、過去メールから検索したりする応用もあります。 ここでは、「レンタルWeb上で複数のWebサイトを指定して検索をしたい」場合に限って紹介していきます。 したがって、Perl版の"pnamazu"を使用します。 独自にWebサーバーを運営している人は、Perl版ではなくC言語の namazu.cgi を使った方が、検索の実行は速くなるでしょう。 -------------------------------------------------------------------------------- ●namazuで検索ができるまでの手順 namazu は検索対象のファイルに対してインデックスを作っておき、検索実行時にはインデックスを参照して検索するシステムです。 したがって、次のような流れになります。 検索対象のホームページをダウンロードして、自分のパソコンのワーク用フォルダに納める。 インデックスを作成する。 インデックスをWebサイトにアップロードする。 検索の実行。 順を追って説明します。 対象ホームページのダウンロードは、フリーソフトの「PerMan Surfer 波乗野郎」を使用しました。(非常に使いやすいソフトです) 自分のパソコン上でインデックスを作成します。 このインデックス作成には namazu のツールである mknmz を使います。 mknmz の本体部分が Perl言語で書かれているため、自パソコン上で Perlのプログラムが走るようにしなければなりません。 perl環境のインストール Active perl 5.6.1以降のインストールが必要です(jperl のインストールは必要ない) 「Active Perl」は下のページからダウンロードできます。 ActivePerl Windows MSI (無料ですが、事前登録が必要です) ダウンロードしたファイルを実行すればインストールできます。 インストール先のフォルダを指定しない限り、C:\Perlというフォルダを作り、そこにインストールされます。 次にPerl版 namazu である pnamaze をダウンロードします。 作者古川令さんのページ からダウンロードしてください。 また、Perl版でない本家の namazu のホームページはこちらです。 全文検索システム Namazu このホームページにある解説を良く読むことをお薦めします。 以下は未編集のメモです。悪しからず Windows版 Kakasi,namazu-for-win32のインストール 1.Kakasiをインストールする(OSのドライブのルート直下へkakasiフォルダをコピーするのみ) 実際に必要なのはKakasiの辞書だけ 2.namazu for win32をインストールする、インストール用のバッチファイルを使ってインストール (kakasiのパス等もまとめて設定される、使用するのはインデックス作成ソフト"mknmz.exe") 3.PDFを検索できるようにpdftotext.exeをダウンロードしてインストールする (ただし、日本語対応にconfigしてコンパイルした物であること xpdf-0.92-win32-ms) 次いでC:\namazu\share\namazu\filterにあるpdf.plを編集します。pdftotextのオプションの使い方が少し変更されたためです。filterディレクトリにあるplという拡張子のファイルはすべてperl(パール)というプログラミング言語で書かれていますが、中身はテキストファイルです。テキストエディタで簡単に編集できます。73行目あたりにある system("$pdfconvpath -q -eucjp -raw $tmpfile $tmpfile2"); を次のように変更します。 system("$pdfconvpath -q -enc EUC-JP -raw $tmpfile $tmpfile2"); 設定が完了したらMS-DOSプロンプトでmknmz -Cを実行してみます。対応メディアタイプにapplication/pdfが加わっているのを確認します。これでPDFファイルが検索対象に加わったはずです。適当なファイルで実際にインデックスが生成できるか確かめてみましょう。 4.namazurcの設定 続いてNamazuの設定ファイルnamazurcの設定をします。namazurcはC:\namazu\etc\namazu\namazurcにあるnamazurc-sample.win32をnamazurcにリネームして内容を書き換えます。namazurcはデフォルトでは以下のような記述になっています(必要な部分のみ引用)。 Index C:\namazu\var\namazu\index #Template C:\namazu\share\namazu\template #Replace /home/foo/public_html/ http://www.foo.bar.jp/~foo/ #Logging off Lang ja_JP.SJIS #Scoring tfidf #EmphasisTags "<strong class=\"keyword\">" "</strong>" Cドライブのhomepageというフォルダをインデックスの対象にした場合、以下のような記述になります。 Index C:\namazu\var\namazu\index Template C:\namazu\share\namazu\template #Replace /C\|/homepage/ http://www.foo.bar.jp/~foo/ #Logging off Lang ja_JP.SJIS #Scoring tfidf EmphasisTags "<strong class=\"keyword\">" "</strong>" ローカルで使う場合は上記の設定でいいと思います。 namazurcをWeb上で動く設定に変更する リプレース機能を使って、インデックスを作った環境と、実際のWebページの場所を整合させる設定をする。 Replace /g\|/download/web/hogeweb1.ne.jp/ http://hogeweb1.ne.jp/ Replace /g\|/download/web/hogeweb2.com/ http://hogeweb2.com/ Replace /g\|/download/web/hogeweb3.com/ http://hogeweb3.com/ Replace /g\|/download/web/hogeweb4.ne.jp/ http://hogeweb4.ne.jp/ Template の行はコメントにしておく mknmz 実行ディレクトリの template\NMZ.head.ja を編集する <link rev=made href="mailto:myname@myweb.ne.jp"> "Search!" を "検索スタート"に 複数のインデックスを検索する場合は"検索の方法"のリンクが無くなるので、 42行を <a href="http://myweb.ne.jp/users/myweb/service/hogehoge.html#kensaku">[検索方法]</a> とする mknmz 実行ディレクトリの template/NMZ.foot.jaの編集 サポートのメールアドレス mknmz 実行ディレクトリのshare\namazu\pl\conf.plの編集 $ADDRESS = 'webmaster@foo.bar.jp';を $ADDRESS = 'myname@myweb.ne.jp';に変更 インデックス作成時に作られるheader,footerを使用せず、固定のtemplateを使用する場合は Web転送ページのshare/namazu/template/NMZ.head.jaの編集 <!-- LINK-REV-MADE --> <link rev=made href="mailto:myname@myweb.ne.jp"> Web転送ページの share/namazu/template/NMZ.foot.jaの編集 サポートのメールアドレス ただし、固定されたテンプレートなので、インデックスの情報は0になってしまう。 上記が設定できたら、インデックス作成用のバッチファイルを作成してインデックスを作る バッチファイル内容(4つのホームページのインデックスを作成する) perl C:\namazu\bin\mknmz --html-split -O D:\web\myweb\homepage\cgi-bin\namazu\var\namazu\index\hogeweb1 G:\download\web\hogeweb1.ne.jp\ perl C:\namazu\bin\mknmz --html-split -O D:\web\myweb\homepage\cgi-bin\namazu\var\namazu\index\hogeweb2 G:\download\web\hogeweb2.com\ perl C:\namazu\bin\mknmz --html-split -O D:\web\myweb\homepage\cgi-bin\namazu\var\namazu\index\hogeweb3 G:\download\web\hogeweb3.com\ perl C:\namazu\bin\mknmz --html-split -O D:\web\myweb\homepage\cgi-bin\namazu\var\namazu\index\hogeweb4 G:\download\web\hogeweb4.ne.jp\