理工系研究者のための Mac OS X, Windows, Linux メモ
 
ホーム >> UNIX >> Namazu
このエントリーをはてなブックマークに追加

NAMAZU

  1. 必要なもの
  2. nkfのインストール
  3. Chasenのインストール
  4. NAMAZUの設定
  5. インデックスを作成する
  6. 指定したディレクトリをインデックスから除外する
  7. MacOSXにおいてCGIスクリプトが使用できるように設定する
  8. KAKASIをインストール

必要なもの

nkf(日本語文字コード変換アプリ)
 :琉球大・河野氏(リンク切れ) →Sourceforge.jp

chasen-2.2.9.tar.gz(Chasen、茶筌 、形態素解析システム)
 :奈良先端科学技術大学院大学自然言語処理学講座

ipadic-2.4.4.tar.gz(Chasenで用いる辞書)
 :奈良先端科学技術大学院大学自然言語処理学講座

Text-ChaSen-1.03.tar.gz(Text::ChaSen1、Chasenをperlから用いるためのモジュール)
 :Knok's page on DAIO net.

namazu-2.0.10.tar.gz (本体)
 :全文検索システム Namazu


nkfのインストール

Sorceforge.jp から nkf20.tgz をとってきます。ディレクトリ中のINSTALLの説明書に従って、

% make

とする。コンパイルが成功したら nkf を適当なところにコピーする。

% sudo cp nkf /usr/local/bin/

Chasenのインストール

% cd chasen-2.2.9
% ./configure -host=powerpc-apple-bsd
% make
% sudo make install

(注 2003.7.3) 最新版だった Chasen 2.3.1のソースを持ってきて configure 中にエラーでとまってしまった。メッセージを見ると、Darts というのをインストールすれば良さそう。darts-0.1.tar.gz をダウンロードしインストールした。

% ./configure
% make
% make check
% sudo make install 

この後、再度 configure すると今度は iconv をインストールするようにいわれる。リンク先からソースを取ってきて、

% ./configure
% make
%sudo make install

次に辞書のインストールを行う。

% cd ../ipadic-2.4.4
% ./configure
% make
% sudo make install

次に Text-Chasen をインストールします。

% cd Text-ChaSen-1.03

Makefile.PL を開いて次のように修正します。

'LIBS' => ['-L/usr/local/lib -lchasen']

あとは、

% perl Makefile.PL
% make
% sudo make install

Namazuのインストール

まず File-MMagic をインストールする。これは NAMAZU のパッケージに含まれている。

% cd namazu-2.0.12/File-MMagic
% perl Makefile.PL
% make
% sudo make install

次に NAMAZU のインストール。

% cd ../
% ./configure -host=powerpc-apple-bsd

次にmakeを行う。namazu-2.0.12 では

% make
% sudo make install

で問題なくコンパイルは終了する。

NAMAZUの設定

MacOSX においてウエブサイトのデータを NAMAZU で検索するための設定を行う。

NAMAZU の本体は、

/usr/local/bin/namazu

NAMAZU のインデックス作成コマンド mknmz も同じ場所にインストールされている。

NAMAZU をウエブサイトから使うための CGI スクリプトを、次のようにコピーしておく。

% cp /usr/local/libexec/namazu.cgi /Library/WebServer/CGI-Executables/

MacOSXではデフォルトでは CGI-Executables にのみ CGI の実行許可が付いている。(設定で変更できると思う)また、NAMAZU の設定ファイル(.namazurc)も CGI-Excutables にコピーする。

% cp /usr/local/etc/namazu/namazurc-sample /Library/WebServer/CGI-Executables/.namazurc

さらに、インデックス作成コマンド mknmz 用の設定ファイルはホームディレクトリにコピーしておく。

% cp /usr/local/etc/namazu/mknmzrc-sample ~/.mknmzrc

(.mknmzrc の置き場所は、/usr/local/etc/mknmz/mknmzrcでもよいし、任意の場所に置いて mknmz を実行する時にオプションで指定することも出来る)

たとえば、ホームページの書類が、

/Library/WebServer/Documents/

にあるとする。NAMAZUのデータベースを作る場所を、

~/namazu/index/

とする。この namazuディレクトリのパーミッションは 755 にしておく。

検索画面表示用のファイルは mknmz コマンドを使った時に自動的に作られる。デフォルトでは、

/usr/local/share/namazu/template

にあるテンプレートを用いて、データベース作成日時や、ファイル数などの情報を書き加えたものをインデックスファイルと同じ場所に作成する。もし検索画面をかえたいならば、上記のテンプレートを適当なディレクトリ (DIR)にコピーして中身を編集する。そして、データベース作成の時にオプションで指定する。

% mknmz --template-dir=DIR

次に CGI-Excutables に入れておいた .namazurc を編集する。設定部分はあらかじめ # を用いてコメントアウトされているのでそれを外して書き直せば良い。書き直すところは、

Index /Users/user_name/namazu/index
# 基本インデックスファイルの場所を指定
Template /Users/user_name/namazu/index
# NMZ.*.jp などの表示用テンプレートの場所。インデックスファイルと同じ場所なら、コメントアウトしておいて良い
Replace /Users/user_name/Sites/ http://127.0.0.1/~user_name/
# ディレクトリをURLに変換
Lang ja
# 環境変数 LANG が設定されていないときだけ読む(これを書いていないと検索画面が英語になる)

※シェルの環境変数 LANG を C にしていても、ここで ja にセットしておけば検索画面は日本語になるので、かならずこれは書いておく。

次に、mknmz に対する設定ファイル mknmzrc を書き直す。~/.mknmzrc をエディタで開いて、

$ADDRESS = 'メールアドレス';

とりあえずはここだけ変えれば良い。

インデックスを作成する

インデックスを作成したいディレクトリに移動。

% cd ~/namazu/index

インデックスを作成する時に、環境変数が jp になっていないと日本語のインデックスが作成できない。もし環境変数が日本語になっていない場合は、

% setenv LANG jp

と打っておく。(bashなら export LANG=jp)

mknmz コマンドではインデックスを作成したいファイルの入っているディレクトリを指定する。インデックスはカレントディレクトリに作成される。もしインデックスを作成するディレクトリを指定したいときはオプション「-O ディレクトリ名」を用いる。

% mknmz /Library/WebServer/Documents/

これでインデックスが作成が終了する。日本語の分解に Kakasi を使うなら -k 、Chasen を使うなら -c のオプションをつける。Namazu のインストール時に Kakasi と Chasen の両方がインストールされている場合にはオプションなしでは Kakasi が用いられる。

(2003.8.17 追記)インデックスが文字化けしてしまう時には、htmlファイル群の文字コードを陽に環境変数に与えて mknmz コマンドを実行する。htmlファイルが SJISならば、

% setenv LANG ja_JP.sjis
% mknmz /Library/WebServer/Documents/

とする。(追記ここまで)

指定したディレクトリをインデックスから除外する

インデックス作成時に特定のディレクトリを除外する方法は2つある。例えば、 /Library/Webserver/Documents/private/ 以下を指定するには、一つは、

% mknmz '--exclude=/Library/WebServer/Documents/private/.*' /Library/WebServer/Documents/

もう一つは ~/.mknmzrc に

$EXCLUDE_PATH = "/Library/WebServer/Documents/private/.*";

と書く。

▼参考サイト or 参考文献

MacOSXにおいてCGIスクリプトが使用できるように設定する

まずは「CGIが使えるようにApacheを設定する」のページを見てApacheの設定をする。MacOSX10.2の場合、Apacheの起動、終了はシステム環境設定の「共有」パネルから行うことが出来る。

うまくNAMAZUが設定されたかどうか確認するために、ブラウザから

http://127.0.0.1/cgi-bin/namazu.cgi

にアクセスする。適当な単語を入力して検索して、確認する。"127.0.0.1" の部分を "localhost" に置き換えることが出来るが、ネットワークに接続していないとエラーになった。"127.0.0.1"の場合はネットワークに接続しているか否かに関わらずアクセスできた。

KAKASIをインストール

日本語の文章を単語に分解するためのツールとしては、Chasen以外にKAKASIがある。以下のリンク先からソースファイルを持ってくる。

KAKASI - 漢字→かな(ローマ字)変換プログラム

最新版は kakasi-2.3.4.tar.gz だった。あとはインストールまで次のようにやれば良い。

% ./configure -host=powerpc-apple-bsd
% make
% sudo make install

ここで configure の時に -host を付けないとエラーになってしまったので注意。

また、

Text::Kakasi

から Text-Kakasi-1.05.tar.gz を採ってくる。そしてインストール

% cd Text-Kakasi-1.05
% perl Makefile.PL
% make
% sudo make install

Namazu から Kakasi を使うには、Kakasi をインストールした後に Namazu を ./configure; make する必要があります。

参考サイト・参考文献