namazu-ml(avocado)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Trouble of indexing on winNT
Satoru Takabayashi <ccsatoru@xxxxxxxxxxxxxxxxxx> wrote:
>sub url_decchiagator() というサブルーチンの中に
>
>| if (($SYSTEM eq "WIN32") || ($SYSTEM eq "OS2")) {
>| $url =~ s|\\|/|g; # \ を / に
>
>という処理がありますが、ここは Shift_JIS を考慮して
>
>| if (($SYSTEM eq "WIN32") || ($SYSTEM eq "OS2")) {
>| # Shift_JIS の漢字の 1 byte目を保護 [09/23/1998]
>| $url =~ s|([\x00-\x7f])\\|$1/|g; # \ を / に
>
>にすべきです。以前のものだと \ を / に変換するときに 2 byteの文字
>を破壊してしまうことがあります。修正してみてください。これが原因か
>もしれません。
(snip)
>また、インデックス作成の対象としたファイルの中に .txt という拡張子
>のついたものがありませんか? テキストファイルの場合は sub
>filename_to_title() というサブルーチンを通してファイル名を要約用に
>タイトルとして設定しているのですが、この処理は日本語を考慮していな
>いので問題が起こり得ます。
ただいまこれらの点を修正したものを
<URL:http://saturn.aichi-u.ac.jp/%7Eccsatoru/Namazu/proto/>
に namazu-1.2.0.8-beta-5.tar.gz と namazu-1.3.0.0-beta-3.tar.gz と
して置いておきました。
Win32 と OS/2 の場合は filename_to_title() の中で Shift_JIS から
EUC-JP へコード変換を行うことにしました。元となるコードは古川さん
の pnamazu からいただきました。
ただ、テストする環境がないので本当に動くかは不明です。 "日本語.
txt" みたいな名前のファイルを作ってどなたか試してみてください。
それから、 v1.3.0.0-beta-3 の方はマニュアルを加筆しておきました。
以下にその部分を引用しておきます。
文書の更新/削除に対応したインデックスの更新
v1.3.0.0 以前のヴァージョンではインデックスは文書の追加しかできず、 ウ
ェブペイジなど、頻繁に更新される文書を対象とする場合には毎回全体 のイン
デックスを作り直さなければならず、不便でした。 v1.3.0.0 からは文書の更
新/削除に対応したインデッックスのアップデー トを行うことができます。
この仕組みは実際にインデックスから登録済の文書を更新/削除するので はな
く、欠番情報を記録することによって実現されています。つまり、イ ンデック
スに記録された元の情報はそのままで、単にその文書の IDが欠 番になるだけ
です。この情報は NMZ.t に記録され、検索時に参照されま す。また、文書の
日付情報と共用されています。
文書の更新/削除を含むインデックスの更新を繰り返していくと欠番が増 えて
記録効率が悪くなっていきます。気になる場合はインデックス全体を 作り直し
てください。欠番を詰めるツールを作ることも考えていますが、 いつになるか
は未定です。
なお、この欠番方式のアイディアは古川竜雄@日本HPさんからいただきま した
。 1997年の 11月頃の話です。
文書の日付による検索結果の新しい順/古い順のソート
v1.3.0.0 からは文書の日付によって検索結果を新しい順/古い順にソート する
ことができます。 NMZ.t を参照するので -Z オプションをつけてイ ンデック
スを作った場合にはできません。
昔の版にあったファイル名に連番が含まれるものを擬似的に新しい順/ 古い順
にソートする機能 (検索対象となるインデックスが単一の場合のみ 有効) はそ
のまま残すのでこれで十分という場合は NMZ.t は不要です。
検索時の日本語のわかち書き
v1.2.0.2 からは検索時に日本語のわかち書きを自前で行うようになりま した
。これにより KAKASI/ChaSen を呼び出す必要がなくなり、処理速度 が上がり
ました。NMZ.i を辞書の代わりに参照して実現しています。文字 列の左から最
長一致で分割しているだけです。
-- Satoru Takabayashi