namazu を使って全文検索データベースを作ろう mynmz

namazu と w3m のコンビで、パーソナル全文検索データベースが簡単に作れます。データベースを更新するスクリプト updatenmz と検索用のスクリプト mynmz を作成するだけです。

スクリプトの作成

まず、スクリプトを納める ~/bin 、文書を納める ~/mydoc 、namazu が作成するインデックスを納める ~/myindex の3つのディレクトリーを作成します。

$ mkdir ~/bin ~/mydoc ~/myindex

~/bin ディレクトリーのスクリプトをどのカレント・ワーキング・ディレクトリーからでも実行できるようにパスを通しておきます。

$ PATH=$PATH:~/bin

次に、namazu のインデックスを作成するスクリプト updatenmz を~/bin ディレクトリーに作成します。updatenmz の中身は次のようになります。また、chmod 755 updatenmz でパーミッションを実行可能にしておきます。

#!/bin/sh
exec mknmz -O ~/myindex ~/mydoc

namazu で検索するスクリプト mynmz も ~/bin ディレクトリーに作成します。このファイルも、chmod 755 mynmz でパーミッションを実行可能にします。

#!/bin/sh
exec namazu -h $@ ~/myindex | w3m -T text/html

mynmzで全文検索

準備ができたら、~/mydoc ディレクトリーに、適当に文書をコピーします。mknmz でインデックスを作ることのできる文書は、拡張子で認識されます。ここでは、テキストファイルは hoge.txt のように、.txt をファイル名の最期につけます。HTML文書の場合は hoge.html のようにします。その他色々な形式のファイルを指定できますが、詳しくは Namazu のホームページ を参照してください。次に、インデックスファイルを作成するために、コマンドラインから updatenmz を起動します。

$ updatenmz

これだけで準備 OK です。次のように mynmz で検索すると、w3m が立ち上がり、検索結果と元の文書へのリンクを表示します。

$ mynmz アイディア

これだけでは1件から20件目までの文書しか表示されません。全ての検索結果を表示させるためには -a コマンドラインオプションを使います。

$ mynmz -a アイディア

検索結果を11件目から10件表示させたいときは、-w オプションと -n オプションを使って次のように入力します。

$ mynmz -w 10 -n 10 アイディア

簡単でしょう。

lynxを使ったmynmz

mynmz は lynx を使っても作れます。

#!/bin/sh
namazu -h $@ ~/myindex > ~/.mynmz.html
exec lynx ~/.mynmz.html