単語検索用のインデックスファイル (転置ファイル, inverted ファイル)
[単語1を含む文書の総数 * 2][文書ID][スコア][文書ID][スコア]... [単語2を含む文書の総数 * 2][文書ID][スコア][文書ID][スコア]... [単語3を含む文書の総数 * 2][文書ID][スコア][文書ID][スコア]... :
NMZ.iの seek 用インデックス
[NMZ.i中の単語1の位置][NMZ.i中の単語2の位置] [NMZ.i中の単語3の位置]...
単語の一覧表
単なる行指向のテキスト。昇順に並ぶ。行番号をもとに NMZ.ii をseekできる。 (行番号 = 単語ID)
NMZ.w の seek 用インデックス
[NMZ.w中の単語1の位置][NMZ.w中の単語2の位置] [NMZ.w中の単語3の位置]...
インデックスに登録されているファイルのリスト
インデックスに登録されている文書ファイルを一行にひとつづつ記 録している。ただし、 '# ' からはじまる行はインデックスから削 除されたファイルを意味する。 '## ' からはじまる行はコメント。 例:
/home/foo/bar1.html /home/foo/bar2.html /home/foo/bar3.html ## indexed: Mon, 26 Oct 1998 01:23:45 (空行) # /home/foo/bar1.html ## deleted: Mon, 26 Oct 1998 12:34:56
フレイズ検索用のインデックス
2つの単語を 16bitのハッシュ値に変換して記録する。フレイズ検索 の際にはあらかじめフレイズを構成する各単語を ANDで検索し、その 後で NMZ.p を参照して語の順序を確認する。ただし、2単語づつの順 序しか記録していないのでたとえば "foo bar baz" で検索すると "foo bar" と "bar baz" を含む文書もヒットしてしまう。また、ハッ シュ値の衝突により不適当な文書がヒットすることもある。欠点はあ るもののそれなりに機能する。
[ハッシュ値¥x0000を含む文書数][ハッシュ値¥x0000を含む文書ID]... [ハッシュ値¥x0000を含む文書数][ハッシュ値¥x0001を含む文書ID]... [ハッシュ値¥x0000を含む文書数][ハッシュ値¥xffffを含む文書ID]...
フレイズ検索用のインデックスのインデックス
[NMZ.p中の¥x0000の位置][NMZ.p中の¥x0001の位置] ... [NMZ.p中の¥xffffの位置]
文書のタイムスタンプ、欠番の情報を記録
ファイルのタイムスタンプを 32bitで記録する。検索結果の日付順の ソートに利用される。また、値が -1 のときはその文書は欠番とみな される。
[文書ID1のタイムスタンプ][文書ID2のタイムスタンプ]...
フィールド情報を記録するファイル
フィールド指定の検索に使われる。構造は単なる行単位のテキスト。 正規表現のエンジンに読まれる。行番号をそのまま文書IDとして使え る。検索結果を表示する際にも用いられる。
単なる行指向のテキスト。(行番号 = 文書ID)
単なる行指向のテキストなのでエディタなどで書き換えてもいい。 ただし、その際は必ず rfnmz で NMZ.field.{subject,from,date,message-id,...}.i ファイルを再構築すること。
NMZ.field.{subject,from,date,message-id,...} の seek 用インデックス
[文書ID1のフィールドの位置][文書ID2のフィールドの位置]...
アクセスを制限するための設定ファイル
IPアドレス・ホスト名・ドメイン名によるアクセス制限を行う。
deny
でアクセスを許可しないホストを、
allow
でアクセスを許可するホストを指定する。IP
アドレスを指定したときは前方一致で評価され、ホスト名・ドメイ
ン名で指定したときは後方一致で評価される。all
は「すべてのホスト」を表す。設定は上から順に評価される。例:
deny all allow localhost allow 123.123.123. allow .foobar.jp
この例では、 localhost または IPアドレスが 123.123.123. から 始まるホスト、または .foobar.jp ドメインに属するホストからの みのアクセスを許可する。それ以外のホストからのアクセスは拒否 する。
Webサーヴァが Apache の場合、ホスト名・ドメイン名によるアク セス制限を行うには、 httpd.conf に
HostnameLookups On
の設定が必要。
インデックスを更新するために必要なデータを保存する。
検索結果の書式を指定するファイル
${フィールドの名前} の部分はそのフィールドの内容に置き換 えられる。つまり、 ${title} なら NMZ.field.title の内容 に置き換わる。${namazu::counter}, ${namazu::score} は特 別な意味を持つ。それぞれ、検索結果の番号、スコアに置き換 わる。
標準では NMZ.result.normal と NMZ.result.shortが 用意されて いる。利用者は自由に NMZ.result.* を作成できる。
検索結果の冒頭部分。
検索結果の末尾部分。
検索式の説明。キーワードが与えられなかったときに表示される。
検索のコツ。検索に何もヒットしなかったときに表示される。
インデックスの更新ログ。
検索時のロックファイル。
インデックス作成時のロックファイル。
検索されたキーワードのログ。