tak_kaz24****@yahoo*****
tak_kaz24****@yahoo*****
2017年 5月 18日 (木) 18:40:54 JST
須藤様。高橋です。回答ありがとうございます。 >特定のトークン(今回の場合は「-」)が大量に含まれていると発 >生するはずです。どこに大量に含まれていれば発生するか、ですが、 >1つの文書内にでも、複数の文書にまたがってでも発生するはずで >す。今回の場合は複数の文書にまたがっているが、特定の文書です >ごく多い、というデータなのではないかと思います。 >極端ですが、たとえば、"- - - - (これが15万回続く)"というテ >キストでも再現すると思います 上記の方法で検証データを作成したところ事象が再現できました。 こちらで検証した結果では特定の文書で特定のトークンを14万回程度出現させたところ再現し、 特定のトークンを13万回程度出現させた文書を複数対象にしたところ再現しませんでした。 またトークンが捨てられた場合その後ろにある文字列で検索を行うと検索に該当し、 捨てられたトークンを含む文字列で検索した場合検索の対象にならないことを確認しました。 現状では制限事項となる想定ですが、もし回避策等ありましたら教えてください(上限値を増やす方法など)。 例:「- - - - (これが14万回続く) 〜 - Test01」のような文書の場合「Test01」で検索可能、「- Test01」では検索不可能 >あ、常に再現するというわけではなかったのですか。てっきり、常 >に再現するのかと思っていました。再現するときもあれば再現しな >いときもあるという感じですか? 性能の検証で大量の文書データを対象にPostgreSQLにロードした時に発生しました。 文書数が多すぎてどの文書か特定が困難でしたが、同じフォルダを対象に実行した場合再現したので同一条件では再現する想定です。 >とりあえず、ログにそのとき登録しようとしていた文書のIDを出力 >するようにはしました。 >たぶん、ログにでるのは「-」が大量に(373665個以上)含まれて >いる文書だと思います。 対応ありがとうございます!上記は最新のソースに反映されており、いずれpgroongaの1.2.1(仮)に反映される認識でOKでしょうか? また373,665個以上ですと昔の情報にあった1つの文書あたり0x1ffff個(= 131071個)の制限と異なりますが何か別の制限事項があるのでしょうか。