mknmzの構文
mknmz [options] 対象ディレクトリ
インデックスを作成するには mknmz コマンドを使う。mknmz
の引数にインデックス作成の対象とするディレクトリ名を与えてみよう。 たとえば、/home/httpd/html
を対象とするならば次のとおりだ。
% mknmz /home/httpd/html
すると、 /home/httpd/html 以下 の *.html *.txt
といったファイルについてインデックス作成が行われ、 mknmz を実行したディレクトリに NMZ.*
というファイルが作成される。この NMZ.* ファイルが Namazu のインデックスだ。
それじゃあ、実際の手順にいってみようか。とりあえず、一番最初に mknmz
コマンドのヘルプを表示させる。
% mknmz --help
また、-C オプションを付けると、その時の構成を表示するよ。
それじゃあ、こんどはインデックスの保存先ディレクトリの用意だ。
% mkdir /tmp/index
この例では、インデックスはカレントディレクトリに作られる。もし出力先を変更したい時には -O
オプションを使おう。
% mknmz -O /tmp/index ~/public_html
インデックス作成からはずしたいディレクトリがある場合は次の様な感じになる。
% mknmz --exclude=/private -O ./ /home/httpd/html
mknmz のコマンドライン構文は以下のとおり。
mknmz
の構文
mknmz [options] 対象ディレクトリ
対象ファイル
-F オプションはファイルのリストが必要になるけど、手作業で作るのは大変だよね。find
コマンドを利用してファイルのリストを作成するならこんな感じだよ。
% find `pwd` -type f -print >
filelist.txt
形態素解析
,文字列処理
,要約
インデックス作成
その他
mknmz
のデフォルト動作は、インデックスの対象ディレクトリにインデックスを作成する。ディレクトリを指定したい場合は、-O
オプションを使って次のようにする。
% mknmz -O /tmp/index ~/public_html
mknmz
はコマンドオプションでインデックスの作成方法をいろいろ指定できるけど、毎回それをするのは面倒だよね。そこで、オプションを指定しなくても、設定ファイルにあらかじめ指定しておけば、オプション付けをしなくてもよくなるんだ。もちろん、設定ファイルとは違う指定をしたくなったら、オプション指定するといい。優先度はコマンドオプションにあるからね。
mknmz は下記の順で設定ファイルを読み込むんだ。複数見つかった場合はすべて読み込む。
$(sysconfdir)/$(PACKAGE)/mknmzrc
通常は /usr/local/etc/mknmz/mknmzrc
- ~/.mknmzrc
- -f, --config=FILE オプションで FILE に指定した mknmzrc
mknmzrc
というファイルで、初期状態を指定しておくことができる。あらかじめサンプルが用意されていて、環境によって違うけど、通常は
/usr/local/etc/namazu/ ディレクトリに mknmzrc-sample という
サンプルファイルが用意されている。これを自分の作業領域にコピーして設定するんだ。
ところで、mknmz がデフォルトで参照にする設定ファイルは /usr/local/share/namazu/pl/conf.pl
だ。mknmzrc を作成しているうちにうまくいかなくなったら、conf.pl を参考にしてみよう。
インデックスファイルの作成に慣れたら、cron
を使って定期的にインデックス作成をするように設定するといいね。
スクリプトファイルの作成
shの場所を見つけよう。例では「/bin/sh」。
% which sh
/bin/sh
vi エディタ(または任意のエディタ)を起動する。
% vi namazu_index.sh
スクリプトファイル(上記の例では"namazu_index.sh")を下記のように編集する。
#! /bin/sh
# ログを出力するディレクトリに移動
cd /usr/local/apache/var/index
# mknmz の起動(オプションはあくまでサンプル)
mknmz --exclude=/private -O ./ /home/httpd/html
cronの編集
次はcronの編集。
% crontab -e
エディタが起動し、cronの編集画面が表示される。
0 0 * * * sh /root/sh/namazu_index.sh
上記の例では、0時0分にスクリプトファイルを起動している。これで、日ごとにログファイルが出力されるようになる。
mknmz は対象ファイルの文書形式を自動で判別して、適切なフィルタ処理を行うんだ。たとえば、
HTML文書だと <title> の抽 出や、HTMLタグの除去を行う。この処理は $(datadir)/$(PACKAGE)/filter
に置かれる文書フィ ルタによって行われるんだ。標準で用意されている文書フィルタは次の通り。
- gzip.pl
- gzipで圧縮されたファイルを扱う
必需品: gzip コマンド または Compress::Zlib モジュール
- bzip2.pl
- bzip2で圧縮されたファイルを扱う
必需品: bzip2 コマンド
- compress.pl
- compressで圧縮されたファイルを扱う
必需品: compressコマンド
- deb.pl
- debパッケージを扱う
必需品: dpkgコマンド
- dvi.pl
- dviファイルを扱う
必需品: dvi2tty, nkf
- excel.pl
- Microsoft Excel文書を扱う
必需品: xlHtml, lv (Excel 97/98文書の場合)
代替品: doccat
- hnf.pl
- ハイパー日記システム のファ イルを扱う
必需品: hnf フィルタは特殊。ハイパー日記システム・プロジェクトか ら Namazu for hns
を入手する必要がある
- hdml.pl
- HDML文書を扱う
- html.pl
- HTML文書を扱う
- mailnews.pl
- Mail/News のファイルを扱う
- man.pl
- man を扱う
必需品: nroff または groff
注意: 日本語の man を扱うには -T nippon に対応した groff または jgroff
が必要
- mhonarc.pl
- MHonArc のファイルを扱う
- msword.pl
- Microsoft Word文書を扱う (日本語版は Word 97, 98, 2000)
必需品: wvWare, lv
代替品: doccat
- pdf.pl
- PDF 文書を扱う
必需品: xpdf (バージョン 0.91 以上を推奨)に付属の pdftotextコマンド
注意: 日本語の PDF 文書を扱う場合、--enable-japanese で configure
されたものが必要
- postscript.pl
- PostScript 文書を扱う
必需品: ps2textコマンド
- powerpoint.pl
- Microsoft PowerPoint文書を扱う
必需品: xlHtml に付属の pptHtmlコマンド, lv
代替品: doccat
- rfc.pl
- RFCのファイルを扱う
- rpm.pl
- RPMパッケージを扱う
必需品: rpm
- taro.pl
- 一太郎 9, 10 の文書を扱う
必需品: doccat
- tex.pl
- TeXのファイルを扱う
必需品: detex
次の文書フィルタは Windows専用だよ。
- ichitaro456.pl
- 一太郎 4, 5, 6 の文書を扱う
必需品: JSTXT
注意: JSTXT は MS-DOS用のツールです。
- oleexcel.pl
- Microsoft Excel文書を扱う
必需品: Microsoft Excel 97 もしくは 2000
- olemsword.pl
- Microsoft Word文書を扱う
必需品: Microsoft Word 97 もしくは 98 もしくは 2000
- olepowerpoint.pl
- Microsoft PowerPoint文書を扱う
必需品: Microsoft PowerPoint 97 もしくは 2000
- oletaro.pl
- 一太郎 (バージョン 4 ~ 10) の文書を扱う
必需品: Microsoft Word 97 もしくは 98 もしくは 2000
- olertf.pl
- RTF (Rich Text Format) 形式の文書を扱う
必需品: Microsoft Word 97 もしくは 98 もしくは 2000