Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 長い単語の排除



竹迫です。

外しているかもしれませんが、mknmzrc の設定ファイルには、
$WORD_LENG_MAX というオプションが存在します。

デフォルトでは 128 byte より長い単語を登録しないようにしているので、

#
# The max length of a word. the word longer than this will be ignored.
#
$WORD_LENG_MAX = 60;

と設定ファイルを書き換えて、単純に長さが 60 byte 以下の単語のみを
インデックスに登録するようにするだけでも、かなりの効果があるのでは
ないかと思います。

なぜなら、無意味な(無駄な)単語として登録されがちな・・・

* Base64   は 1 行あたり 76 byte の長さ
* uuencode は 1 行あたり 61 byte の長さ

で、必ず改行されているからです。

実在する世界一長い地名 
"Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch" は
58 byte の長さなので、この設定で大丈夫ですね。

ただし、mknmz に -K オプションを指定しなかった場合は、
60 byte を超える長さの URL やファイルの絶対パスなどが、
インデックスの対象から除外されるといった副作用があります。

したがって、寺西さんのアプローチとは逆の方向になりますが、
「$WORD_LENG_MAX を超える長さの文字列でも、許可された URLや
 ファイルの絶対パスの形式であれば、インデックスに登録する」
といったオプションがあると、仕様的にすっきりするのではないでしょうか?

# 許可するフォーマットは、正規表現で指定するとか・・・

>kp wrote:
>> あと、自分の環境では、
>> 
>> http://www.namazu.org/cgi-bin/jitterbug
>> http://www.namazu.org/doc/manual.html#mknmz-option
>> http://www.namazu.org/doc/nmz.html.ja
>> http://www.namazu.org/doc/nmz.html.ja#
>...
>> のようなフルパス名もたくさんありました。
>
>こっちは難しいところですね。
>個人的には分解して欲しいと思っていますが、分解されては困る
>場合もあるでしょうね。
>
>-K をつけると分解されるので、これらは残りません。(普段 -K を
>使っています。)

--
  株式会社ドリーム・アーツ 製品企画開発本部
    竹迫 良範  <takesako@xxxxxxxxxx>