IndexServer構築


Namazu for Win32 による。日本語前文検索システムの構築です。
自分でインストールした、結果です。


なお、参考にしたホームページは以下のとおりです。(大変参考になりました。ありがとうございます。)

(参考ページ)http://sl.hunet.ne.jp/cgi/_cool/namazu2/

基本的にこのページを読みながら作成しましたので、この内容の要約的ものと思ってください。


インストール方法

Namazuのインストール前にPerlをインストール済み確認願います。インストール済みでない場合はPerlのインストールを行って以下に進んで下さい。(Apachの構築を参照してください。)

Kakasiのインストール

@フォルダー\kakasiを作成(c:\内がいいかな?「ちなみに、ApacheとPerlも同様にc:\ にインストールしています。)

A配布ファイルを展開します。

BNamazuのインストール

ダウンロードしたEXEファイルはexeファイルにインストーラが組み込まれています。(感謝感謝)

Windows2000の場合


インデックスの作成

Namazu で全文検索を行うためには、まずインデックス(索引ファイル)の作成が必要です。

たとえば、c:\web\users 以下にあるファイルの全文検索を行いたい場合、コマンドプロンプト(Windows95/98/Me では MS-DOS プロンプト)から、以下のようにコマンドを実行します。

mknmz -O c:\namazu\var\namazu\index c:\web\users\


ローカルで検索してみる

さっそく、Namazu をコマンドプロンプト(MS-DOS プロンプト)で使ってみることにしましょう。たとえば、文字列「HTML」が含まれる文書を検索するには以下のようにします。

namazu "HTML"

すると、たとえば、以下のような結果が返ってくるでしょう。

Results:

References: [ html: 1 ]

 Total 1 documents matching your query.

1. readme.txt (score: 4)
Date: Thu, 18 Jun 1998 15:39:08
Apirc v1.0 - Java (c) IRC applet -- Apirc is a Java (c) IRC multi-threaded applet with private msg, channel, nickname control, channel list, ban windows, that allow people visiting a web site to conne
/c|/pub/www/apirc/readme.txt size (6,334 bytes)

Current List: 1 - 1


CGI で Namazu を使う

やっとここまで来ました。

Namazu を CGI で使うためには、その前提として以下の環境が必要です。

  1. Namazu が正しくセットアップされ、ローカルホスト上で検索が可能であること。

  2. Namazu がセットアップされたホストで WWW サーバが走っていること。

  3. その WWW サーバで EXE 拡張子の CGI が実行できること。


■ namazu.cgi.exe を CGI ディレクトリにコピー

じつは、namazu.cgi.exe を WWW サーバの CGI ディレクトリにコピーするだけで、もう Namazu をウェブページから利用できます。しかし、ローカル検索と同じ環境で CGI を使うことには少々問題も考えられます。そこで、Namazu の環境設定ファイル \namazu\etc\namazu\namazurc は CGI 用のものを準備することにします。

.namazurc というファイルを作成し、namazu.cgi.exe と同じ場所に置いてください。ファイル名の先頭にドットがついていることに注意してください。ドットファイルは、UNIX で隠し属性を持つファイルです。

このドットファイルの作成には、コマンドプロンプト(MS-DOS プロンプト)でオリジナルの \namazu\etc\namazu\namazurc を以下のようにコピーすればよいでしょう。その後に .namazurc を CGI ディレクトリまで移動してください。

copy namazurc .namazurc

namazu.cgi.exe は、自分と同じフォルダ内にこの .namazurc が見つかると、\namazu\etc\namazu\namazurc ではなくこちらを参照します。


■ .namazurc を WWW サービス対応にする

次に、.namazurc を CGI 用に修正します。オリジナルは以下のようになっています。

 Index  C:\namazu\var\namazu\index
 #Replace  /home/foo/public_html/ http://www.foo.bar.jp/~foo/
 #Logging  off
 Lang  ja_JP.SJIS
 #Scoring  tfidf
 #EmphasisTags  "<strong class=\"keyword\">"  "</strong>"
 #Template  /usr/local/var/namazu/index
 #MaxHit  10000
 #MaxMatch  1000
 #ContentType  "text/x-hdml"

(1) ローカルパスをバーチャルパスに変換

まず、以下の部分を変更します。

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

Replace 指令は、インデックス中の検索対象ファイルの位置情報がローカルパス形式になっているるものを URL 形式に置換するものです。

Replace /c\|/web/users/ http://192.168.0.1:8080/~

に変更しました。(私の場合、ApacheのUsersフォルダー内の検索

(2) 強調表示を行いますか?

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

ここでは、行頭の # を取って値の部分に HTML タグのペアを指定すると、検索によってヒットした部分をそのタグで修飾して表示するようになります。たとえば、"<strong class=\"keyword\">" "</strong>" とすると、ヒット部分がボールド(太字)の赤字で表示されるようになります。ちょうどそれで良いのでは?