Namazu-users-ja(旧)


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

Re: 特定のパターンで検索する際「Out ofmemory!」になる



寺西です。

MT wrote:
> 
> サーバー上でも {お 土産} (pnamazu では分かち書きの結果が{}で括られ
> ます)と入力すれば、検索できることがわかりました。
> そのとき、「お」68,000 「土産」2,700 という結果になります。

なるほど。「お」はかなり多いですね。

> 「い土産」「う土産」(意味はないですが)と検索すると、もともと
> Out of memory! にはならないのですが、ひらがな一字部分は、20,000 〜 
> 30,000 です。Out of memory! になるかならないかの境がその辺にあるようです。

時間がかかっているということは、そこでメモリをどんどん消費している
とも考えられるので、そのようですね。

> そこで、MaxHit 等の値を調節すると、「土産」の方には反映するのですが、
> (2,700 より小さくすると Too many 〜 になります)「お」のキーワードの
> 登録数には反映しません。

この動作からすると、「お」と「土産」の結果が MaxHit 以下かどうかを
判断しているように思えます。

本家 Namazu では 「お」が MaxHit 以下かどうか、「土産」が MaxHit 以下
かどうかをチェックしています。

もし、上記の予想通りなら、「お」が 68,000 あるので、処理の途中で
メモリ不足になったということでしょう。(そしてこれは MaxHit で制御
できないということを意味しているかもしれません。)

# 「{お 土産}」 で検索するのと 「お土産」で検索するのでは、内部処理が
# 異なるので、使用するメモリもたぶん違うはずです。

> そもそも 初期値の MaxHit 10,000 / MaxMatch 1,000 では、「お」68,000
> というキーワードが出てくるのがよくわかりません。インッデックス作成
> に問題があったのでしょうか?

インデックス作成時には、単語を含む全文書が記録されますので、
68,000 個記録されても問題ありません。

本家 Namazu だと検索時に MaxHit に引っかかって、「お」は検索でき
ないでしょう。

どうやら、pnamazu と Namazu の違いがあるようで、あまりに多い単語
だと、pnamazu では Out of memory! で停まってしまい、何らかの
パラメータで制御するということはできないのかもしれません。
(処理するためには、十分なメモリが必要ということ)

pnamazu を改造して、MaxHit を使って、Too many 〜 にするようには
できるものと思いますが、あいにく私は pnamazu の中身を把握して
いないので、その改造部分や内容について情報を提供できません。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E