tak_kaz24****@yahoo*****
tak_kaz24****@yahoo*****
2017年 4月 21日 (金) 19:18:27 JST
お世話になっています。高橋と申します。 PGroongaのWindows版を使用して全文検索システムを構築しています。 大量データ(数万〜数10万ドキュメント)の内容文字列を抽出しpgroongaに登録していますが、 ロード時に何点か気になるログがpgroonga.logに出力されましたので、お手数ですが内容について回答願えますでしょうか。 ■環境 Windows Server 2008 R2 Standard SP1(64bit)※メモリ4GBのVM環境 PostgreSQL9.5.5-1(Windowsインストーラ版使用) ※データフォルダはC:\Program Files\PostgreSQL\9.5\dataに設定 pgroonga1.1.9(Windowsバイナリ版使用) ■事象1:system call error: Permission denied: failed to remove pathが発生する 毎回ではないですが以下のようなメッセージが出力される場合があります。 内容からファイル削除時に権限不足で削除できなかったようですが、PostgreSQL管理ユーザで実行しているので権限に不足はない想定です。 2017-04-20 19:50:22.312000|e|2236: system call error: Permission denied: failed to remove path: <base/18911/pgrn.000010B> このメッセージが出た後PostgreSQLが応答しなくなることが多いので、原因と対処方法を教えていただけないでしょうか。 ※「C:\Program Files」にデータフォルダがあるのが良くない? ■事象2:too many postingsが発生する 一定のファイル数ごとにCOPYコマンドでPostgreSQLに登録しているのですが、以下のようなメッセージが出力されます。 内容から特定のトークン(この場合<->)のpostings?が多すぎて超過した分は捨てられる想定です。 超過した分はpgroongaのインデックスが作成されず検索にヒットしない想定です。 2017-04-20 19:50:24.562000|w|2880: [ii][update][one] too many postings: <Lexicon72052_0.index>: n-postings:<504736>, n-discarded-postings:<373665>, term:<123>(<->) 検索にヒットしないと困るため可能な限り上記メッセージを減らしたいのですが、対処方法はありますでしょうか? COPYコマンドに送る一回当たりのデータ量を減らしてみましたが、以下のようなメッセージが出力されPostgreSQLが応答しなくなりました。 2017-04-21 16:37:40.593000|A|2972: calloc fail (4194304)=0000000000000000 (C:\Users\kou\work\pgroonga\tmp\build\pgroonga-1.1.9\vendor\groonga\lib\io.c:1497) <113> 2017-04-21 16:37:40.609000|C|2972: mmap failed!!!! in GRN_IO_SEG_REF(0000000000CB3CB0, 0): このコマンドを実行するのに十分な記憶域がありません。 ■事象3:ignore too long tokenが発生する 以下のメッセージは4096バイト以上のトークンは無視され、pgroongaのインデックスが作成されず検索にヒットしないという認識で合っていますでしょうか。 2017-04-20 14:05:30.312000|w|3360: [token_next] ignore too long token. Token must be less than or equal to 4096: <167374>(<20141〜後略 以上、よろしくお願いします。