(57)【特許請求の範囲】
【請求項１】
１文字索引からＮ（Ｎは１以上の整数）文字索引までの各文字数の索引毎に生成要否が設定されたＮ文字索引生成定義情報テーブルを記憶機器を用いて記憶する索引生成定義記憶部と、
索引生成対象の文書に対して、１文字索引からＮ文字索引までの各文字数の索引のうち、前記索引生成定義記憶部に記憶された前記Ｎ文字索引生成定義情報テーブルに生成要と設定されている文字数の索引をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成し、生成した索引を記憶機器を用いて記憶するＮ文字索引生成部と、
前記Ｎ文字索引生成部が新たに生成する各文字数の索引のデータサイズを索引生成対象の当該文書に基づいてＣＰＵを用いて推定する索引容量推定部と、
前記索引容量推定部が推定した各文字数の索引のデータサイズと各文字数の索引を記憶する前記記憶機器の空き容量とに基づいて前記Ｎ文字索引生成定義情報テーブルに各文字数の索引の生成要否をＣＰＵを用いて設定する索引生成定義設定部と
を備えたことを特徴とするＮ文字索引生成装置。
【請求項２】
前記索引生成定義設定部は、
各文字数の索引のデータサイズの合計より前記空き容量の方が少ない場合、１文字索引を他の文字数の索引より優先して生成要とする
ことを特徴とする請求項１記載のＮ文字索引生成装置。
【請求項３】
前記索引生成定義設定部は、
各文字数の索引のデータサイズの合計より前記空き容量の方が少ない場合、データサイズの大きい順とデータサイズの小さい順とのいずれかの順に前記空き容量に記憶できる分だけ各文字数の索引を生成要とする
ことを特徴とする請求項１または請求項２記載のＮ文字索引生成装置。
【請求項４】
前記索引生成定義設定部は、
各文字数の索引のデータサイズの合計より前記空き容量の方が少ない場合、文字数の多い順と文字数の少ない順とのいずれかの順に前記空き容量に記憶できる分だけ各文字数の索引を生成要とする
ことを特徴とする請求項１または請求項２記載のＮ文字索引生成装置。
【請求項５】
前記Ｎ文字索引生成装置は、さらに、
前記索引生成定義設定部が特定文字数の索引を生成不要とした場合、索引生成済みの各文書に対する前記特定文字数の索引を削除するＮ文字索引削除部
を備えたことを特徴とする請求項１〜請求項４いずれかに記載のＮ文字索引生成装置。
【請求項６】
１文字索引からＮ（Ｎは１以上の整数）文字索引までの各文字数の索引毎に生成要否が文字種毎に設定されたＮ文字索引生成定義情報テーブルを記憶機器を用いて記憶する索引生成定義記憶部と、
索引生成対象の文書に対して、１文字索引からＮ文字索引までの各文字数の索引のうち、前記索引生成定義記憶部に記憶された前記Ｎ文字索引生成定義情報テーブルに生成要と設定されている文字数と文字種とを組み合わせた索引をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成し、生成した索引を記憶機器を用いて記憶するＮ文字索引生成部と、
前記Ｎ文字索引生成部が新たに生成する各文字数と各文字種とを組み合わせた各索引のデータサイズを索引生成対象の当該文書に基づいてＣＰＵを用いて推定する索引容量推定部と、
前記索引容量推定部が推定した各文字数と各文字種とを組み合わせた各索引のデータサイズと各索引を記憶する前記記憶機器の空き容量とに基づいて前記Ｎ文字索引生成定義情報テーブルに各文字数と各文字種とを組み合わせた各索引の生成要否をＣＰＵを用いて設定する索引生成定義設定部と
を備えたことを特徴とするＮ文字索引生成装置。
【請求項７】
前記索引生成定義設定部は、
各文字数と各文字種とを組み合わせた各索引のデータサイズの合計より前記空き容量の方が少ない場合、各文字種の１文字索引を各文字種の他の文字数の索引より優先して生成要とする
ことを特徴とする請求項６記載のＮ文字索引生成装置。
【請求項８】
前記索引生成定義設定部は、
各文字数と各文字種とを組み合わせた各索引のデータサイズの合計より前記空き容量の方が少ない場合、データサイズの大きい順とデータサイズの小さい順とのいずれかの順に前記空き容量に記憶できる分だけ各文字数と各文字種とを組み合わせた各索引を生成要とする
ことを特徴とする請求項６または請求項７記載のＮ文字索引生成装置。
【請求項９】
前記索引生成定義設定部は、
各文字数と各文字種とを組み合わせた各索引のデータサイズの合計より前記空き容量の方が少ない場合、文字数の多い順と文字数の少ない順とのいずれかの順に前記空き容量に記憶できる分だけ各文字数と各文字種とを組み合わせた各索引を生成要とする
ことを特徴とする請求項６または請求項７記載のＮ文字索引生成装置。
【請求項１０】
前記索引生成定義設定部は、
各文字数と各文字種とを組み合わせた各索引のデータサイズの合計より前記空き容量の方が少ない場合、各文字種の所定の優先順に前記空き容量に記憶できる分だけ各文字数と各文字種とを組み合わせた各索引を生成要とする
ことを特徴とする請求項６、請求項７または請求項９記載のＮ文字索引生成装置。
【請求項１１】
１文字索引からＮ（Ｎは１以上の整数）文字索引までの各文字数の索引毎に生成要否が設定されたＮ文字索引生成定義情報テーブルを記憶機器を用いて記憶する索引生成定義記憶部と、
索引生成対象の文書に対して、１文字索引からＮ文字索引までの各文字数の索引のうち、前記索引生成定義記憶部に記憶された前記Ｎ文字索引生成定義情報テーブルに生成要と設定されている文字数の索引を所定のデータサイズ単位でＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成し、生成した前記所定のデータサイズ単位の各索引を一時ブロック化索引として記憶機器に記憶するＮ文字索引生成部と、
前記Ｎ文字索引生成部が生成した前記一時ブロック化索引を前記所定のデータサイズ単位より大きなデータサイズ単位で固定ブロック化索引としてＣＰＵを用いて生成し直す索引ブロック化部と、
前記索引ブロック化部が生成した前記固定ブロック化索引と前記Ｎ文字索引生成部が新たに生成した前記一時ブロック化索引とに基づいて特定の検索キーワードが含まれている文書をＣＰＵを用いて特定する文書検索部と
を備えたことを特徴とする文書検索装置。
【請求項１２】
１文字索引からＮ（Ｎは１以上の整数）文字索引までの各文字数の索引毎に生成要否が設定されたＮ文字索引生成定義情報テーブルを記憶機器を用いて記憶する索引生成定義記憶部と、
索引生成対象の文書に対して、１文字索引からＮ文字索引までの各文字数の索引を所定のデータサイズ単位でＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成し、生成した前記所定のデータサイズ単位の各索引を一時ブロック化索引として記憶機器に記憶するＮ文字索引生成部と、
前記Ｎ文字索引生成部が生成した前記一時ブロック化索引に対して、前記索引生成定義記憶部に記憶された前記Ｎ文字索引生成定義情報テーブルに生成不要と設定されている文字数の索引を削除すると共に、前記所定のデータサイズ単位より大きなデータサイズ単位で固定ブロック化索引としてＣＰＵを用いて生成し直す索引ブロック化部と、
前記索引ブロック化部が生成した前記固定ブロック化索引と前記Ｎ文字索引生成部が新たに生成した前記一時ブロック化索引とに基づいて特定の検索キーワードが含まれている文書をＣＰＵを用いて特定する文書検索部と
を備えたことを特徴とする文書検索装置。
【請求項１３】
Ｎ文字索引生成部が、索引生成対象の文書に対して、１文字索引からＮ（Ｎは１以上の整数）文字索引までの各文字数の索引のうち、１文字索引からＮ文字索引までの各文字数の索引毎に生成要否が設定されたＮ文字索引生成定義情報テーブルに生成要と設定されている文字数の索引をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成し、生成した各文字数の索引を記憶機器を用いて記憶し、
索引容量推定部が、前記Ｎ文字索引生成部によって新たに生成される各文字数の索引のデータサイズを索引生成対象の当該文書に基づいてＣＰＵを用いて推定し、
索引生成定義設定部が、前記索引容量推定部によって推定された各文字数の索引のデータサイズと各文字数の索引を記憶する前記記憶機器の空き容量とに基づいて前記Ｎ文字索引生成定義情報テーブルに各文字数の索引の生成要否をＣＰＵを用いて設定する
ことを特徴とするＮ文字索引生成方法。
【請求項１４】
Ｎ文字索引生成部が、索引生成対象の文書に対して、１文字索引からＮ（Ｎは１以上の整数）文字索引までの各文字数の索引のうち、１文字索引からＮ文字索引までの各文字数の索引毎に生成要否が設定されたＮ文字索引生成定義情報テーブルに生成要と設定されている文字数の索引を所定のデータサイズ単位でＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成し、生成した前記所定のデータサイズ単位の各索引を一時ブロック化索引として記憶機器に記憶するＮ文字索引生成処理を行い、
索引ブロック化部が、前記Ｎ文字索引生成部が生成した前記一時ブロック化索引を前記所定のデータサイズ単位より大きなデータサイズ単位で固定ブロック化索引としてＣＰＵを用いて生成し直す索引ブロック化処理を行い、
文書検索部が、前記索引ブロック化部が生成した前記固定ブロック化索引と前記Ｎ文字索引生成部が新たに生成した前記一時ブロック化索引とに基づいて特定の検索キーワードが含まれている文書をＣＰＵを用いて特定する文書検索処理を行う
ことを特徴とする文書検索方法。
【請求項１５】
Ｎ文字索引生成部が、索引生成対象の文書に対して、１文字索引からＮ（Ｎは１以上の整数）文字索引までの各文字数の索引を所定のデータサイズ単位でＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成し、生成した前記所定のデータサイズ単位の各索引を一時ブロック化索引として記憶機器に記憶するＮ文字索引生成処理を行い、
索引ブロック化部が、前記Ｎ文字索引生成部が生成した前記一時ブロック化索引に対して、１文字索引からＮ文字索引までの各文字数の索引毎に生成要否が設定されたＮ文字索引生成定義情報テーブルに生成不要と設定されている文字数の索引を削除すると共に、前記所定のデータサイズ単位より大きなデータサイズ単位で固定ブロック化索引としてＣＰＵを用いて生成し直す索引ブロック化処理を行い、
文書検索部が、前記索引ブロック化部が生成した前記固定ブロック化索引と前記Ｎ文字索引生成部が新たに生成した前記一時ブロック化索引とに基づいて特定の検索キーワードが含まれている文書をＣＰＵを用いて特定する文書検索処理を行う
ことを特徴とする文書検索方法。
【請求項１６】
請求項１３記載のＮ文字索引生成方法をコンピュータに実行させるＮ文字索引生成プログラム。
【請求項１７】
請求項１４または請求項１５記載の文書検索方法をコンピュータに実行させる文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、Ｎ−ｇｒａｍを索引単位として文書データのＮ文字索引を生成し、検索キーワードとして指定された文字列をＮ文字索引を使って文書データ中から検索するＮ文字索引生成装置、文書検索装置、Ｎ文字索引生成方法、文書検索方法、Ｎ文字索引生成プログラムおよび文書検索プログラムに関するものである。
【背景技術】
【０００２】
文書データを対象として検索キーワードに指定された文字列を検索する場合、検索の高速化を図るために、文書データの登録時に索引（インデックス）を作成する方法が知られている。例えば、連続するＮ文字の組み合わせ（Ｎ−ｇｒａｍという）に対して作成する索引があり、これをＮ文字索引あるいはＮ−ｇｒａｍ索引と呼ぶ。なお、Ｎは１以上の整数であり、１−ｇｒａｍをユニグラム、２−ｇｒａｍをバイグラム、３−ｇｒａｍをトリグラムと呼ぶ。
【０００３】
Ｎ文字索引を用いた文書検索法としては、非特許文献１に開示された方法が知られている。また、特許文献１に開示された方法により、大規模な量の文書を検索する場合に、Ｎ文字索引を効率的に読み出し、検索速度の低下を防止することが可能となった。
【特許文献１】特許第３８５７０９２号公報
【非特許文献１】小川  泰嗣、松田  透、「ｎ−ｇｒａｍ索引を用いた効率的な文書検索法」、電子情報通信学会、電子情報通信学会論文誌  Ｄ−Ｉ  Ｖｏｌ．Ｊ８２−Ｄ−Ｉ  Ｎｏ１、ｐｐ．１２１−１２９、１９９９年１月
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の技術に示されるような文書検索法、文書検索装置および文書検索プログラムにより、大規模な量の文書を検索する場合にも検索速度を向上させることが可能になった。
その一方で、登録される文書の量が大きくなると、その中に含まれるＮ−ｇｒａｍの量も大きくなるため、ディスク装置に格納されるＮ文字索引のサイズが大きくなり、ストレージコストを圧迫するという課題があった。
【０００５】
本発明は、例えば、上記のような課題を解決するためになされたものであり、大規模な量の文書を登録する場合でも、ディスク装置に格納するＮ文字索引のサイズを縮小し、ストレージコストの圧迫を抑制できるようにすることを目的とする。
【０００６】
また例えば、本発明は、Ｎ文字索引を読み出す際の入力単位を最適に保つように文書の登録を行っている文書登録装置において、段階的にＮ文字索引の一部を削除することで、Ｎ文字索引を読み出す際の入力単位の状態に起因する検索速度の差を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のＮ文字索引生成装置は、１文字索引からＮ（Ｎは１以上の整数）文字索引までの各文字数の索引毎に生成要否が設定されたＮ文字索引生成定義情報テーブルを記憶機器を用いて記憶する索引生成定義記憶部と、索引生成対象の文書に対して、１文字索引からＮ文字索引までの各文字数の索引のうち、前記索引生成定義記憶部に記憶された前記Ｎ文字索引生成定義情報テーブルに生成要と設定されている文字数の索引をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成し、生成した索引を記憶機器を用いて記憶するＮ文字索引生成部とを備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、例えば、Ｎ文字索引生成定義情報テーブルに基づいて特定の文字数の索引のみ生成することにより、大規模な量の文書を登録する場合でも、ディスク装置に格納するＮ文字索引のサイズを縮小し、ストレージコストの圧迫を抑制することができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、実施の形態１における文書管理システム１００の機能構成図である。
実施の形態１における文書管理システム１００の機能構成について、図１に基づいて以下に説明する。
【００１０】
文書管理システム１００（Ｎ文字索引生成装置、文書登録装置、文書検索装置）は文書登録部１１０および文書検索部１４０を備え、文書登録部１１０は文書入力部１１１、Ｎ文字索引生成変更部１２０、索引容量記録部１３０、ディスク空き容量取得部１３１、登録対象文書記憶部１８０およびＮ文字索引記憶部１９０を備える。
【００１１】
文書登録部１１０は登録対象文書１０１（索引生成対象の文書）に対してＮ文字索引情報１９１を生成し、登録対象文書１０１とＮ文字索引情報１９１とを文書管理システム１００に登録する。
文書入力部１１１は入力機器から登録対象文書１０１（電子データ）を入力し、入力した登録対象文書１０１を登録文書１８１（電子データ）として登録対象文書記憶部１８０に記憶する。
Ｎ文字索引生成変更部１２０は、Ｎ文字索引生成部１２１、Ｎ文字索引削除部１２２およびＮ文字索引変更部１２３を備え、Ｎ文字索引生成定義情報テーブル１９２に基づいてＮ文字索引情報１９１を生成し、Ｎ文字索引生成定義情報テーブル１９２を変更し、変更したＮ文字索引生成定義情報テーブル１９２に基づいてＮ文字索引情報１９１から特定文字数の索引を削除する。
索引容量記録部１３０（索引容量推定部）はＮ文字索引生成変更部１２０（Ｎ文字索引生成部１２１）が新たに生成する各文字数の索引のデータサイズを当該登録文書１８１に基づいてＣＰＵを用いて推定し、推定したデータサイズを加算して後述する索引容量管理テーブル１９３を更新する。
ディスク空き容量取得部１３１は、Ｎ文字索引情報１９１が記憶されるＮ文字索引記憶部１９０の管理情報を参照し、Ｎ文字索引記憶部１９０の空き容量（空きデータサイズ）情報を取得する。
登録対象文書記憶部１８０は登録文書１８１を記憶する記憶機器である。
Ｎ文字索引記憶部１９０はＮ文字索引情報１９１、Ｎ文字索引生成定義情報テーブル１９２および索引容量管理テーブル１９３を記憶する記憶機器である。
【００１２】
Ｎ文字索引情報１９１は１文字索引からＮ文字索引までの各文字数の索引データ（１文字索引１０９ａ、２文字索引１０９ｂ、・・・、Ｎ文字索引、以下、任意の文字数の索引を小文字でｎ文字索引１０９とする）の集合であり、全登録文書１８１の各ｎ文字索引１０９が含まれる。
【００１３】
図２は、実施の形態１におけるＮ文字索引生成定義情報テーブル１９２の一例を示す図である。
図２に示すように、Ｎ文字索引生成定義情報テーブル１９２には各ｎ文字索引１０９毎に生成要否（対象［生成要］ｏｒ非対象［生成不要］）が設定されている。なお、Ｎ文字索引生成定義情報テーブル１９２の設定は全登録文書１８１に適用される。Ｎ文字索引生成定義情報テーブル１９２は予めシステム管理者により設定され、Ｎ文字索引変更部１２３により更新される。
【００１４】
図３は、実施の形態１における索引容量管理テーブル１９３の一例を示す図である。
図３に示すように、索引容量管理テーブル１９３には、各ｎ文字索引１０９毎に、各登録文書１８１の当該ｎ文字索引１０９を合計したデータサイズ（以下、累積サイズとする）が設定されている。索引容量管理テーブル１９３は索引容量記録部１３０により更新される。
【００１５】
Ｎ文字索引生成部１２１は、登録文書１８１に対して、各ｎ文字索引１０９のうち、Ｎ文字索引生成定義情報テーブル１９２に「対象（生成要）」と設定されているｎ文字索引１０９をＣＰＵを用いて生成し、生成したｎ文字索引１０９をＮ文字索引記憶部１９０に記憶する。
【００１６】
Ｎ文字索引変更部１２３は、索引容量記録部１３０が推定した新たな登録文書１８１の各ｎ文字索引１０９のデータサイズとディスク空き容量取得部１３１が参照したＮ文字索引記憶部１９０の空き容量とに基づいて、Ｎ文字索引生成定義情報テーブル１９２に設定されている各ｎ文字索引１０９の生成要否をＣＰＵを用いて変更設定する。
例えば、Ｎ文字索引変更部１２３は、新たな登録文書１８１の各ｎ文字索引１０９のデータサイズの合計よりＮ文字索引記憶部１９０の空き容量の方が少ない場合、１文字索引を他のｎ文字索引１０９より優先して生成要とする。
また例えば、Ｎ文字索引変更部１２３は、新たな登録文書１８１の各ｎ文字索引１０９のデータサイズの合計よりＮ文字索引記憶部１９０の空き容量の方が少ない場合、データサイズの大きい順とデータサイズの小さい順とのいずれかの順に、Ｎ文字索引記憶部１９０の空き容量に記憶できる分だけ、各ｎ文字索引１０９を生成要とする。
また例えば、Ｎ文字索引変更部１２３は、新たな登録文書１８１の各ｎ文字索引１０９のデータサイズの合計よりＮ文字索引記憶部１９０の空き容量の方が少ない場合、ｎ文字索引１０９の「ｎ（文字数）」の多い順とｎ文字索引１０９の「ｎ」の少ない順とのいずれかの順に、Ｎ文字索引記憶部１９０の空き容量に記憶できる分だけ、各ｎ文字索引１０９を生成要とする。
【００１７】
Ｎ文字索引削除部１２２は、Ｎ文字索引変更部１２３がｘ（特定数）文字索引を生成不要とした場合、生成済みのＮ文字索引情報１９１から各登録文書１８１のｘ文字索引を削除する。
【００１８】
文書検索部１４０は、入力機器から検索キーワード１０２を入力し、入力した検索キーワード１０２が含まれている登録文書１８１をＮ文字索引情報１９１に基づいてＣＰＵを用いて特定し、特定したＮ文字索引情報１９１を示す検索結果１０３を出力機器に出力する。
【００１９】
図４は、実施の形態１における文書管理システム１００の外観の一例を示す図である。
図４において、文書管理システム１００は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（コンパクトディスク装置）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続され、また、ＬＡＮ９４２（ローカルエリアネットワーク）、ゲートウェイ９４１を介してインターネット９４０に接続されている。
【００２０】
図５は、実施の形態１における文書管理システム１００のハードウェア資源の一例を示す図である。
図５において、文書管理システム１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶機器、記憶装置あるいは記憶部の一例である。また、入力データが記憶されている記憶機器は入力機器、入力装置あるいは入力部の一例であり、出力データが記憶される記憶機器は出力機器、出力装置あるいは出力部の一例である。
通信ボード９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力機器、入力装置あるいは入力部の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力機器、出力装置あるいは出力部の一例である。
【００２１】
通信ボード９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信ボード９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
【００２２】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。
【００２３】
上記プログラム群９２３には、実施の形態において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００２４】
ファイル群９２４には、実施の形態において、「〜部」の機能を実行した際の「〜の判定結果」、「〜の計算結果」、「〜の処理結果」などの結果データ、「〜部」の機能を実行するプログラム間で受け渡しするデータ、その他の情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。登録文書１８１（登録対象文書１０１）、Ｎ文字索引情報１９１（ｎ文字索引１０９）、Ｎ文字索引生成定義情報テーブル１９２、索引容量管理テーブル１９３、検索キーワード１０２、検索結果１０３などはファイル群９２４に含まれるものの一例である。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、実施の形態において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）等の記録媒体に記録される。また、データや信号値は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００２５】
また、実施の形態において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものである。あるいは、「〜部」の手順や方法をコンピュータに実行させるものである。
【００２６】
図６は、実施の形態１における文書管理システム１００の文書登録処理を示すフローチャートである。
文書登録部１１０が登録文書１８１とＮ文字索引情報１９１とを文書管理システム１００に登録（記憶）する文書登録処理について、図６に基づいて以下に説明する。
文書登録部１１０の各部は、以下に説明する各処理をＣＰＵを用いて実行する。
なお、図６に示す文書登録処理（Ｓ１１０〜Ｓ１６０）は登録対象文書１０１毎に実行される。
【００２７】
＜Ｓ１１０：文書入力処理＞
まず、文書入力部１１１は登録対象文書１０１を入力し、入力した登録対象文書１０１を登録文書１８１として登録対象文書記憶部１８０に記憶する。
【００２８】
＜Ｓ１２０：索引容量推定処理＞
次に、索引容量記録部１３０はＳ１１０で新たに記憶された登録文書１８１について生成対象である各ｎ文字索引１０９のデータサイズを推定し、推定したデータサイズに基づいて索引容量管理テーブル１９３を更新する。
このとき、索引容量記録部１３０はＮ文字索引生成定義情報テーブル１９２を参照して生成対象であるｎ文字索引１０９を特定し、生成対象であると特定した各ｎ文字索引１０９についてデータサイズを推定する。
例えば、Ｎ文字索引生成定義情報テーブル１９２が図２の設定値（１文字索引：「対象」、２文字索引：「非対象」、３文字索引：「対象」、４文字索引：「対象」）を示す場合、索引容量記録部１３０は新たな登録文書１８１の１文字索引と３文字索引と４文字索引とについてデータサイズを推定する。索引容量記録部１３０は新たな登録文書１８１の２文字索引についてデータサイズを推定しなくても構わない。
ｎ文字索引１０９のデータサイズは、登録文書１８１のデータサイズ（文字数）と「ｎ」の大きさとに依存する。索引容量記録部１３０は、ｎ文字索引１０９のデータサイズを算出する所定の式に、登録文書１８１のデータサイズと「ｎ」とを代入して各ｎ文字索引１０９のデータサイズの推定値を算出する。
そして、索引容量記録部１３０は算出した推定値を加算して索引容量管理テーブル１９３の設定値を更新する。例えば、索引容量管理テーブル１９３が図３の設定値（１文字索引：「１００ＧＢ（ギガバイト）」、３文字索引：「２８０ＧＢ」、４文字索引：「３５０ＧＢ」）を示し、新たな登録文書１８１に対する１文字索引の推定サイズ（データサイズの推定値）が「１ＭＢ（メガバイト）」、３文字索引の推定サイズが「２ＭＢ」、４文字索引の推定サイズが「３ＭＢ」だった場合、索引容量記録部１３０は索引容量管理テーブル１９３に対して１文字索引のデータサイズとして「１００００１ＭＢ（＝１００ＧＢ＋１ＭＢ、ここで、１ＧＢ＝１０００ＭＢとする）」を設定する。また、索引容量記録部１３０は、３文字索引のデータサイズとして「２８０００２ＭＢ（＝２８０ＧＢ＋２ＭＢ）」を設定し、４文字索引のデータサイズとして「３５０００３ＭＢ（＝３５０ＧＢ＋３ＭＢ）」を設定する。
【００２９】
＜Ｓ１３０：空き容量取得処理＞
次に、ディスク空き容量取得部１３１は、Ｎ文字索引情報１９１が記憶されるＮ文字索引記憶部１９０の管理情報を参照し、Ｎ文字索引記憶部１９０の空き容量情報を取得する。Ｎ文字索引記憶部１９０の空き容量には、Ｎ文字索引情報１９１を作成するときなどに必要な作業域は含まない。
【００３０】
＜Ｓ１４０：索引生成定義設定処理＞
次に、Ｎ文字索引変更部１２３は各ｎ文字索引１０９の推定サイズの合計値とＮ文字索引記憶部１９０の空き容量とを比較し（Ｓ１４１）、各ｎ文字索引１０９の推定サイズの合計値がＮ文字索引記憶部１９０の空き容量より大きい場合、新たに生成非対象とするｎ文字索引１０９を選択する（Ｓ１４２）と共に、選択結果に基づいてＮ文字索引生成定義情報テーブル１９２と索引容量管理テーブル１９３とを更新する（Ｓ１４３）。
以下に、Ｓ１４１〜Ｓ１４３の詳細について説明する。
【００３１】
まず、Ｓ１４１の詳細について説明する。
Ｎ文字索引変更部１２３は、Ｓ１２０で推定された新たな登録文書１８１に対する各ｎ文字索引１０９の推定サイズを合計し、新たな登録文書１８１に対する各ｎ文字索引１０９の推定サイズの合計値とＳ１３０で得られたＮ文字索引記憶部１９０の空き容量とを大小比較する。
【００３２】
次に、Ｓ１４２の詳細について説明する。
Ｓ１４１で新たな登録文書１８１に対する各ｎ文字索引１０９の推定サイズの合計値がＮ文字索引記憶部１９０の空き容量より大きいと判定した場合、Ｎ文字索引変更部１２３は、新たな登録文書１８１について、現在のＮ文字索引生成定義情報テーブル１９２が生成対象としている各ｎ文字索引１０９の一部は、容量不足のため記憶することができないと判断する。
そこで、Ｎ文字索引変更部１２３は、所定の選択規則（選択アルゴリズム、選択手順、選択方法、選択プログラム）に基づいて、現在のＮ文字索引生成定義情報テーブル１９２において生成対象（生成要）になっている各ｎ文字索引１０９の中から、生成非対象（生成不要）に変更するｎ文字索引１０９を選択する。このとき、Ｎ文字索引変更部１２３は、変更後のＮ文字索引生成定義情報テーブル１９２において生成対象となる各ｎ文字索引１０９がＮ文字索引記憶部１９０に記憶できるように、生成非対象に変更するｎ文字索引１０９を１つ以上選択する。つまり、Ｎ文字索引変更部１２３は、１つのｎ文字索引１０９を生成非対象に変更しても、生成対象である残りのｎ文字索引１０９をＮ文字索引記憶部１９０に記憶できない場合、生成非対象に変更するｎ文字索引１０９を２つ選択する。
【００３３】
例えば、所定の選択規則は、１文字索引以外のｎ文字索引１０９を生成非対象に選択することを示す。つまり、所定の選択規則は、１文字索引を他のｎ文字索引１０９より優先して生成対象にすることを示す。１文字索引を生成対象にすることで、任意の検索キーワード１０２（任意の文字数の検索キーワード１０２）に対する検索を行うことが可能になる。
【００３４】
また例えば、所定の選択規則は、索引容量管理テーブル１９３が示す累積サイズ（または、Ｓ１２０で算出された推定サイズ）の小さい順に生成非対象にするｎ文字索引１０９を選択することを示す。つまり、所定の選択規則は、索引容量管理テーブル１９３が示す累積サイズ（または、Ｓ１２０で算出された推定サイズ）の大きい順に、Ｎ文字索引記憶部１９０に記憶できる分だけ、各ｎ文字索引１０９を生成対象にすることを示す。索引容量管理テーブル１９３が図３の累積サイズを示す場合（但し、ｎ＝１〜４とする）、Ｎ文字索引変更部１２３は、生成対象の中で累積サイズが一番小さい１文字索引、または、１文字索引を除いた中で累積サイズが一番小さい３文字索引を新たに生成非対象とするｎ文字索引１０９に選択する。
また例えば、所定の選択規則は、索引容量管理テーブル１９３が示す累積サイズ（または、Ｓ１２０で算出された推定サイズ）の大きい順に生成非対象にするｎ文字索引１０９を選択することを示す。つまり、所定の選択規則は、索引容量管理テーブル１９３が示す累積サイズ（または、Ｓ１２０で算出された推定サイズ）の小さい順に、Ｎ文字索引記憶部１９０に記憶できる分だけ、各ｎ文字索引１０９を生成対象にすることを示す。索引容量管理テーブル１９３が図３の累積サイズを示す場合（但し、ｎ＝１〜４とする）、Ｎ文字索引変更部１２３は、累積サイズが一番大きい４文字索引を新たに生成非対象とするｎ文字索引１０９に選択する。
【００３５】
また例えば、所定の選択規則は、「ｎ」の小さい順に生成非対象にするｎ文字索引１０９を選択することを示す。つまり、所定の選択規則は、「ｎ」の大きい順に、Ｎ文字索引記憶部１９０に記憶できる分だけ、各ｎ文字索引１０９を生成対象にすることを示す。Ｎ文字索引生成定義情報テーブル１９２が図２の設定値を示す場合（但し、ｎ＝１〜４とする）、Ｎ文字索引変更部１２３は、生成対象の中で「ｎ」が一番小さい１文字索引、または、１文字索引および既に「生成非対象」である２文字索引を除いた中で「ｎ」が一番小さい３文字索引を新たに生成非対象とするｎ文字索引１０９として選択する。「ｎ」が大きいｎ文字索引１０９を生成対象にすることで、ｎ文字索引１０９が示す各Ｎ−ｇｒａｍ（登録文書１８１から抽出したｎ文字）を多く組み合わせたり、検索キーワード１０２を細かく分割したりしなくても、長い文字数の検索キーワード１０２に対する検索が行える。そして、長い文字数の検索キーワード１０２に対する検索時間を短くすることが可能になる。
また例えば、所定の選択規則は、「ｎ」の大きい順に生成非対象にするｎ文字索引１０９を選択することを示す。つまり、所定の選択規則は、「ｎ」の小さい順に、Ｎ文字索引記憶部１９０に記憶できる分だけ、各ｎ文字索引１０９を生成対象にすることを示す。Ｎ文字索引生成定義情報テーブル１９２が図２の設定値を示す場合（但し、ｎ＝１〜４とする）、Ｎ文字索引変更部１２３は、「ｎ」が一番大きい４文字索引を新たに生成非対象とするｎ文字索引１０９として選択する。「ｎ」が小さいｎ文字索引１０９を生成対象にすることで、ｎ文字索引１０９が示す各Ｎ−ｇｒａｍを組み合わせることにより、３文字以下の短い文字数の検索キーワード１０２に対する検索が可能になる。
【００３６】
なお、一般的に、ｎ文字索引１０９は「ｎ」が大きいほどデータサイズが大きいため、「Ｓ１２０で算出された推定サイズの小さい順」と「索引容量管理テーブル１９３が示す累積サイズの小さい順」と「ｎの小さい順」とは同じ意味合いとなり、「推定サイズの大きい順」と「累積サイズの大きい順」と「ｎの大きい順」とは同じ意味合いとなる。
【００３７】
次に、Ｓ１４３の詳細について説明する。
Ｎ文字索引変更部１２３は、Ｓ１４２で選択したｎ文字索引１０９について、Ｎ文字索引生成定義情報テーブル１９２の設定値を「対象」から「非対象」に変更する。例えば、Ｓ１４２で４文字索引を選択した場合、Ｎ文字索引変更部１２３は、図２に示すＮ文字索引生成定義情報テーブル１９２に対して、４文字索引の設定値「対象」を「非対象」に更新する。
また、Ｎ文字索引変更部１２３は、Ｓ１４２で選択したｎ文字索引１０９について、索引容量管理テーブル１９３が示す累積サイズをクリアする。例えば、Ｓ１４２で４文字索引を選択した場合、Ｎ文字索引変更部１２３は、図３に示す索引容量管理テーブル１９３に対して、４文字索引の設定値「３５０ＧＢ」を「０ＧＢ」に更新する。
【００３８】
実施の形態１では、新たに生成非対象に選択されたｎ文字索引１０９は、後述するＮ文字索引削除処理（Ｓ１５０）において、全登録文書１８１について削除される。
つまり、新たな登録文書１８１に対する各ｎ文字索引１０９（生成対象に限る）の推定サイズの合計値が、Ｎ文字索引記憶部１９０の空き容量と生成非対象に変更するｎ文字索引１０９の累積サイズとの合計値以下であれば、新たな登録文書１８１に対する各ｎ文字索引１０９をＮ文字索引記憶部１９０に記憶することができる。
また、全登録文書１８１について生成するｎ文字索引１０９を一致させることで、各登録文書１８１間でｎ文字索引１０９の整合性が図られ、Ｎ文字索引情報１９１の管理を容易にすることができる。
【００３９】
＜Ｓ１５０：Ｎ文字索引削除処理＞
Ｓ１４３においてＮ文字索引生成定義情報テーブル１９２と索引容量管理テーブル１９３とが更新された後、Ｎ文字索引削除部１２２は、Ｎ文字索引記憶部１９０に記憶されているＮ文字索引情報１９１から、Ｓ１４２において新たに生成非対象に選択されたｎ文字索引１０９を削除する。つまり、Ｎ文字索引削除部１２２は、新たに生成非対象に選択されたｎ文字索引１０９を全ての登録文書１８１についてＮ文字索引記憶部１９０から削除する。例えば、Ｎ文字索引情報１９１として登録文書Ａの１文字索引、３文字索引および４文字索引と登録文書Ｂの１文字索引、３文字索引および４文字索引とが記憶されており、Ｓ１４２において４文字索引が新たに生成非対象に選択された場合、Ｎ文字索引削除部１２２は登録文書Ａの４文字索引と登録文書Ｂの４文字索引とをＮ文字索引情報１９１から削除する。このとき、Ｎ文字索引情報１９１は登録文書Ａの１文字索引および３文字索引と登録文書Ｂの１文字索引および３文字索引となる。
【００４０】
＜Ｓ１６０：Ｎ文字索引生成処理＞
Ｓ１４１で新たな登録文書１８１に対する各ｎ文字索引１０９の推定サイズの合計値がＮ文字索引記憶部１９０の空き容量以下と判定された場合、または、Ｓ１５０で生成非対象のｎ文字索引１０９が削除された後、Ｎ文字索引生成部１２１は、Ｎ文字索引生成定義情報テーブル１９２に基づいて、新たな登録文書１８１について生成対象の各ｎ文字索引１０９を所定の生成規則（生成アルゴリズム、生成手順、生成方法、生成プログラム）に従って生成する。生成した各ｎ文字索引１０９はＮ文字索引記憶部１９０に記憶される。Ｎ文字索引生成定義情報テーブル１９２が図２の設定値を示す場合、Ｎ文字索引生成部１２１は１文字索引、２文字索引、４文字索引を生成する。なお、所定の生成規則には従来技術を用いて構わない。
このとき、Ｎ文字索引生成部１２１はＮ文字索引生成定義情報テーブル１９２を参照して生成対象であるｎ文字索引１０９を特定し、新たな登録文書１８１を先頭文字から最終文字まで順に１文字ずつ選択しながら、選択した文字から始まるＮ−ｇｒａｍ（ｎ文字索引１０９が生成対象であるｎ文字）を抽出し、抽出した各Ｎ−ｇｒａｍの情報（登録文書１８１中の出現位置など）をｎ文字索引１０９としてＮ文字索引情報１９１に追加する。
【００４１】
図７は、実施の形態１における１文字索引１０９ａのデータ構造の一例を示す図である。
図８は、実施の形態１におけるＮ文字索引生成処理（Ｓ１６０）を示すフローチャートの一例である。
Ｎ文字索引生成処理（Ｓ１６０）におけるｎ文字索引１０９の生成方法の一例について、図７および図８に基づいて以下に説明する。
【００４２】
まず、ｎ文字索引１０９のデータ構造の一例として図７に基づいて１文字索引１０９ａを説明する。
１文字索引１０９ａは管理情報２１０ａと位置情報２２０ａとを有する。
【００４３】
管理情報２１０ａは、所定数の登録文書１８１毎に、位置情報ブロック格納位置２１１（位置情報ブロック格納位置２１１ａ、位置情報ブロック格納位置２１１ｂ、・・・、位置情報ブロック格納位置２１１ｃ）を情報として有する。
各位置情報ブロック格納位置２１１は、１つのブロック内文書数２１２と、各Ｎ−ｇｒａｍ毎のＮ−ｇｒａｍブロック内格納位置２１３とを情報として有する。ブロック内文書数２１２は当該位置情報ブロック格納位置２１１で管理されている登録文書１８１の数を示す。位置情報ブロック格納位置２１１ａはＮ−ｇｒａｍ「ａ」についてのＮ−ｇｒａｍブロック内格納位置２１３ａとＮ−ｇｒａｍ「ｂ」についてのＮ−ｇｒａｍブロック内格納位置２１３ｂとを有している。
【００４４】
位置情報２２０ａは、管理情報２１０ａの各位置情報ブロック格納位置２１１と１対１で対応する各位置情報ブロック２２１を有する。位置情報ブロック格納位置２１１ａと位置情報ブロック２２１ａとが対応し、位置情報ブロック格納位置２１１ｂと位置情報ブロック２２１ｂとが対応し、位置情報ブロック格納位置２１１ｃと位置情報ブロック２２１ｃとが対応している。
【００４５】
位置情報ブロック２２１ａは、位置情報ブロック格納位置２１１ａの各Ｎ−ｇｒａｍブロック内格納位置２１３と１対１で対応する各Ｎ−ｇｒａｍ情報２２２を有する。Ｎ−ｇｒａｍブロック内格納位置２１３ａとＮ−ｇｒａｍ情報２２２ａとが対応し、Ｎ−ｇｒａｍブロック内格納位置２１３ｂとＮ−ｇｒａｍ情報２２２ｂとが対応している。
【００４６】
Ｎ−ｇｒａｍ情報２２２ａは、登録文書１８１毎に、Ｎ−ｇｒａｍブロック内格納位置２１３ａが示すＮ−ｇｒａｍ「ａ」の出現回数２２４および各出現位置２２５を示す。
Ｎ−ｇｒａｍ情報２２２ａの文書番号２２３ａおよび文書番号２２３ｂは、登録文書１８１を識別する情報であり、異なる登録文書１８１を示している。
Ｎ−ｇｒａｍ情報２２２ａの各出現回数２２４は、Ｎ−ｇｒａｍブロック内格納位置２１３ａが示すＮ−ｇｒａｍ「ａ」の当該登録文書１８１中の出現回数を示す。出現回数２２４ａは文書番号２２３ａで識別される登録文書１８１における「ａ」の出現回数を示し、出現回数２２４ｂは文書番号２２３ｂで識別される登録文書１８１における「ａ」の出現回数を示す。
Ｎ−ｇｒａｍ情報２２２ａの各出現位置２２５はＮ−ｇｒａｍブロック内格納位置２１３ａが示すＮ−ｇｒａｍ「ａ」の当該登録文書１８１中の出現位置を示す。例えば、出現位置２２５は登録文書１８１の先頭文字から数えた文字数で表される。出現位置２２５ａは文書番号２２３ａで識別される登録文書１８１における「ａ」の１回目の出現位置を示し、出現位置２２５ｂは文書番号２２３ａで識別される登録文書１８１における「ａ」の２回目の出現位置を示し、出現位置２２５ｃは文書番号２２３ｂで識別される登録文書１８１における「ａ」の１回目の出現位置を示す。
【００４７】
管理情報２１０ａの各Ｎ−ｇｒａｍブロック内格納位置２１３はＮ−ｇｒａｍを示すと共に、対応する位置情報２２０ａのＮ−ｇｒａｍ情報２２２の記憶領域のアドレスを示す。Ｎ−ｇｒａｍブロック内格納位置２１３ａはＮ−ｇｒａｍ「ａ」とＮ−ｇｒａｍ情報２２２ａの先頭アドレスとを示し、Ｎ−ｇｒａｍブロック内格納位置２１３ｂはＮ−ｇｒａｍ「ｂ」とＮ−ｇｒａｍ情報２２２ｂの先頭アドレスとを示す。
【００４８】
２文字索引１０９ｂ、３文字索引１０９ｃ、４文字索引１０９ｄおよびＮ文字索引１０９ｅといった各ｎ文字索引１０９は１文字索引１０９ａと同様なデータ構造を有する。
【００４９】
次に、Ｎ文字索引生成処理（Ｓ１６０）におけるｎ文字索引１０９の生成方法の一例を図８に基づいて説明する。図８は、図７に示したデータ構造を有するｎ文字索引１０９を生成する方法の一例である。
図８の各処理（Ｓ２１０〜Ｓ２８０）は生成対象であるｎ文字索引１０９毎に実行される。例えば、Ｎ文字索引生成定義情報テーブル１９２が図２の設定値を示す場合（但し、ｎ＝１〜４とする）、図８の各処理（Ｓ２１０〜Ｓ２８０）は１文字索引１０９ａの生成時、３文字索引１０９ｃの生成時および４文字索引１０９ｄの生成時の３回実行される。
【００５０】
まず、Ｎ文字索引生成部１２１は管理情報２１０の最後の位置情報ブロック格納位置２１１からブロック内文書数２１２を取得する（Ｓ２１０）。
【００５１】
次に、Ｎ文字索引生成部１２１はブロック内文書数２１２と所定の閾値とを大小比較する。所定の閾値とは１つの位置情報ブロック格納位置２１１で管理する登録文書１８１の数である。ここで、所定の閾値は登録文書１８１のデータサイズ、ｎ文字索引１０９の読み込みに使用するバッファのサイズに応じて任意に定めることができる（Ｓ２２０）。
【００５２】
Ｓ２２０においてブロック内文書数２１２が所定の閾値より大きかった場合、Ｎ文字索引生成部１２１は管理情報２１０に位置情報ブロック格納位置２１１を追加し、追加した位置情報ブロック格納位置２１１のブロック内文書数２１２に「１」を設定し、位置情報２２０に位置情報ブロック２２１を追加する。追加した位置情報ブロック格納位置２１１と位置情報ブロック２２１とは、位置情報ブロック格納位置２１１が位置情報ブロック２２１の記憶領域のアドレスを示すことにより、対応付けられている（Ｓ２３０）。
【００５３】
Ｓ２２０においてブロック内文書数２１２が所定の閾値以下であった場合、または、Ｓ２３０の後、Ｎ文字索引生成部１２１は文書内ポインタ（変数）に新たな登録文書１８１の先頭を設定する。例えば、Ｎ文字索引生成部１２１は文書内ポインタに登録文書１８１の先頭として「１（文字目）」を設定する（Ｓ２４０）。
【００５４】
次に、Ｎ文字索引生成部１２１はＮ文字索引生成定義情報テーブル１９２に基づいて文書内ポインタが示すＮ−ｇｒａｍ（ｎ文字索引１０９が生成対象であるｎ文字）を抽出する。例えば、文書内ポインタが「１」を示し、Ｎ文字索引生成定義情報テーブル１９２が図２の設定値を示す場合（但し、ｎ＝１〜４とする）、Ｎ文字索引生成部１２１は、１−ｇｒａｍとして登録文書１８１の先頭文字（１文字目）、３−ｇｒａｍとして登録文書１８１の先頭文字から始まる３文字および４−ｇｒａｍとして登録文書１８１の先頭文字から始まる４文字を抽出する（Ｓ２５０）。
【００５５】
次に、Ｎ文字索引生成部１２１は、Ｓ２５０で抽出した各Ｎ−ｇｒａｍの情報をｎ文字索引１０９に書き出す。例えば、抽出したＮ−ｇｒａｍについてのＮ−ｇｒａｍブロック内格納位置２１３が最後の位置情報ブロック格納位置２１１に存在しない場合、Ｎ文字索引生成部１２１は抽出したＮ−ｇｒａｍのＮ−ｇｒａｍブロック内格納位置２１３を最後の位置情報ブロック格納位置２１１に追加し、追加したＮ−ｇｒａｍブロック内格納位置２１３に対応させてＮ−ｇｒａｍ情報２２２を追加する。そして、Ｎ文字索引生成部１２１は、追加したＮ−ｇｒａｍ情報２２２に対して、新たな登録文書１８１の文書番号２２３を設定し、出現回数２２４として「１」を設定し、出現位置２２５を追加し、追加した出現位置２２５に文書内ポインタの値を設定する。また例えば、抽出したＮ−ｇｒａｍのＮ−ｇｒａｍブロック内格納位置２１３が最後の位置情報ブロック格納位置２１１に存在する場合、Ｎ文字索引生成部１２１は抽出したＮ−ｇｒａｍのＮ−ｇｒａｍブロック内格納位置２１３に対応するＮ−ｇｒａｍ情報２２２に対して、出現回数２２４に１加算し、出現位置２２５を追加し、追加した出現位置２２５に文書内ポインタの値を設定する（Ｓ２６０）。
【００５６】
次に、Ｎ文字索引生成部１２１は文書内ポインタが新たな登録文書１８１の末尾（最終文字）を示すか判定する（Ｓ２７０）。
【００５７】
Ｓ２７０において文書内ポインタが新たな登録文書１８１の末尾を示さないと判定した場合、Ｎ文字索引生成部１２１は文書内ポインタを次の文字に進める。例えば、Ｎ文字索引生成部１２１は文書内ポインタに１加算する（Ｓ２８０）。
【００５８】
以後、Ｎ文字索引生成部１２１は、Ｓ２７０において文書内ポインタが新たな登録文書１８１の末尾を示すまで、Ｓ２５０〜Ｓ２６０を繰り返す。
【００５９】
次に、実施の形態１における文書管理システム１００の文書検索部１４０が実行する文書検索処理について説明する。
文書検索部１４０は入力機器から検索キーワード１０２を入力し、入力した検索キーワード１０２をｎ文字索引１０９が生成されている各ｎ文字単位に分割し、分割した各ｎ文字とＮ文字索引情報１９１に設定されているＮ−ｇｒａｍとを比較して検索キーワード１０２が含まれている登録文書１８１を特定し、特定した登録文書１８１の識別情報（例えば、文書番号２２３やタイトル）を検索結果１０３として出力機器に出力する。
文書検索部１４０が実行する文書検索処理は、Ｎ文字索引のデータ構造に依存するＮ文字索引の参照方法以外、従来の文書検索処理と同じである。
【００６０】
実施の形態１では、以下のような文書管理システム１００について説明した。
文書管理システム１００は文書データ格納手段（登録対象文書記憶部１８０）とＮ文字索引格納手段（Ｎ文字索引記憶部１９０）と文書管理手段（Ｎ文字索引生成変更部１２０、文書検索部１４０）とを備える。
文書データ格納手段は文書データ（登録文書１８１）を格納する。
Ｎ文字索引格納手段は上記文書データ中のＮ−ｇｒａｍに関連して、位置情報２２０および管理情報２１０から構成されるＮ文字索引（ｎ文字索引１０９）を格納する。
文書管理手段は上記Ｎ文字索引を生成する（Ｎ文字索引生成変更部１２０）とともに、検索キーワード１０２が与えられると、上記管理情報２１０中の位置情報ブロック格納位置２１１からＮ−ｇｒａｍブロック内格納位置２１３を参照し、上記検索キーワード１０２のＮ−ｇｒａｍに関連するＮ−ｇｒａｍ位置情報（位置情報２２０）を読み出して、照合処理による検索結果１０３を出力する（文書検索部１４０）。
また、上記文書管理手段は、上記Ｎ文字索引を構成するＮ−ｇｒａｍに関連する位置情報２２０および管理情報２１０を、任意のＮ（ｎ）に対して生成・格納しないように設定可能とするＮ文字索引生成変更手段（Ｎ文字索引変更部１２３）を備える。
この文書管理システム１００は、登録対象文書１０１の登録前に、どのＮ−ｇｒａｍに関連する位置情報２２０および管理情報２１０を生成・格納するかについて設定しておくことで、この設定（Ｎ文字索引生成定義情報テーブル１９２）に基づいたＮ文字索引を生成することを特徴とする。
【００６１】
また、文書管理手段（Ｎ文字索引生成変更部１２０）は、Ｎ文字索引のディスク装置への格納に要する索引容量を記録する索引容量記録手段（索引容量記録部１３０）と、上記Ｎ文字索引が格納されるディスク装置（Ｎ文字索引記憶部１９０）の空き容量を取得するディスク空き容量取得手段（ディスク空き容量取得部１３１）とを備える。
この文書管理システム１００は、登録対象文書１０１が上記文書データとして登録されると、上記Ｎ文字索引がディスク装置の空き容量に格納可能かを事前に判定し、格納可能でないと判定した場合には上記Ｎ文字索引とディスク装置に格納済みのＮ文字索引を構成する一部のＮ−ｇｒａｍに関連する位置情報２２０および管理情報２１０を削除し、ディスク装置に格納可能となるようにＮ文字索引を再構成することを特徴とする。
【００６２】
この文書管理システム１００は、登録対象文書が文書データとして登録されると、この登録対象文書のＮ文字索引のサイズを索引生成前に把握し、ディスク装置に格納可能となるように、任意のＮにおける索引を生成対象外とし、同時に、既にディスク装置に格納されているＮ文字索引についても、先の生成対象外としたＮにおける索引をディスク装置から削除する。これにより、文書管理システム１００は、Ｎ文字索引の格納用のディスク装置に収まるように、Ｎ文字索引を生成することができる。
【００６３】
また、文書管理システム１００は、生成対象外またはディスク装置から削除対象とする任意のＮの索引において、Ｎが１である場合には、生成対象外またはディスク装置からの削除対象にしないようにしたものである。
【００６４】
この文書管理システム１００によれば、ディスク装置の空き容量に合わせて索引生成対象とするＮ文字索引を効率的に自動決定することが可能となる。文書管理システム１００はＮ文字索引生成変更手段とディスク空き容量取得手段と索引容量記録手段とを備えるので、ディスク装置の空き容量に収めることができる範囲で、最大限の検索速度を引き出せるように、Ｎ文字索引を自動生成することができるという効果が得られる。
【００６５】
文書管理システム１００は、生成（登録）するＮ文字索引を選択することに特徴を有し、Ｎ文字索引の生成方法（登録方法）の種類は問わない。
【００６６】
また、上記では索引容量記録部１３０の推定サイズを加算して索引容量管理テーブル１９３を更新したが、実際のＮ文字索引情報１９１のデータサイズに基づいて索引容量管理テーブル１９３を更新してもよい。
【００６７】
実施の形態２．
実施の形態２では、実施の形態１と異なる事項について主に説明し、説明を省略した事項については実施の形態１と同様であるものとする。
【００６８】
図９は、実施の形態２におけるＮ文字索引生成定義情報テーブル１９２の一例を示す図である。
図１０は、実施の形態２における索引容量管理テーブル１９３の一例を示す図である。
【００６９】
図９に示すように、実施の形態２におけるＮ文字索引生成定義情報テーブル１９２には各ｎ文字索引１０９の生成要否が文字種毎に設定されている。
図１０に示すように、実施の形態２における索引容量管理テーブル１９３には各ｎ文字索引１０９の累積サイズが文字種毎に設定されている。
文字種とは、漢字、ひらがな、カタカナ、英字、記号、ギリシャ文字、ロシア文字、囲み英数字（例えば、丸に囲まれた英数字）、アラビア数字、単位記号（例えば、“ミリ”や“ｍｍ”）、数学記号（例えば、不等号、イコール、シグマ、ルート）など、文字の種類のことである。
【００７０】
実施の形態２における文書管理システム１００の構成は実施の形態１と同じであり、実施の形態２における文書管理システム１００の各構成は以下のような特徴を有する。
【００７１】
索引容量記録部１３０はＮ文字索引生成変更部１２０が新たに生成する各文字数と各文字種とを組み合わた各索引のデータサイズを当該登録文書１８１に基づいてＣＰＵを用いて推定し、推定したデータサイズを加算して索引容量管理テーブル１９３を更新する。
各文字数と各文字種とを組み合わせた各索引とは、漢字の１文字索引、ひらがなの１文字索引、漢字の２文字索引、カタカナのＮ文字索引など、「ｎ」と文字種とで特定される各ｎ文字索引１０９のことである。以下、任意の文字数と特定の文字種とを組み合わせた索引のことを特定文字種のｎ文字索引１０９という。
【００７２】
Ｎ文字索引変更部１２３は、索引容量記録部１３０が推定した新たな登録文書１８１の各文字種の各ｎ文字索引１０９のデータサイズとディスク空き容量取得部１３１が参照したＮ文字索引記憶部１９０の空き容量とに基づいて、Ｎ文字索引生成定義情報テーブル１９２に設定されている各文字種の各ｎ文字索引１０９の生成要否をＣＰＵを用いて変更設定する。
例えば、Ｎ文字索引変更部１２３は、新たな登録文書１８１の各文字種の各ｎ文字索引１０９のデータサイズの合計よりＮ文字索引記憶部１９０の空き容量の方が少ない場合、各文字種の１文字索引を各文字種の他のｎ文字索引１０９より優先して生成要とする。
また例えば、Ｎ文字索引変更部１２３は、新たな登録文書１８１の各文字種の各ｎ文字索引１０９のデータサイズの合計よりＮ文字索引記憶部１９０の空き容量の方が少ない場合、データサイズの大きい順とデータサイズの小さい順とのいずれかの順に、Ｎ文字索引記憶部１９０の空き容量に記憶できる分だけ、各文字種の各ｎ文字索引１０９を生成要とする。
また例えば、Ｎ文字索引変更部１２３は、新たな登録文書１８１の各文字種の各ｎ文字索引１０９のデータサイズの合計よりＮ文字索引記憶部１９０の空き容量の方が少ない場合、ｎ文字索引１０９の「ｎ（文字数）」の多い順とｎ文字索引１０９の「ｎ」の少ない順とのいずれかの順に、Ｎ文字索引記憶部１９０の空き容量に記憶できる分だけ、各文字種の各ｎ文字索引１０９を生成要とする。
また例えば、Ｎ文字索引変更部１２３は、新たな登録文書１８１の各文字種の各ｎ文字索引１０９のデータサイズの合計よりＮ文字索引記憶部１９０の空き容量の方が少ない場合、各文字種の所定の優先順に、Ｎ文字索引記憶部１９０の空き容量に記憶できる分だけ、各文字種の各ｎ文字索引１０９を生成要とする。
【００７３】
他の構成は実施の形態１と同じである。
【００７４】
実施の形態２における文書管理システム１００の文書登録処理の流れは実施の形態１と同じであり、実施の形態２の文書登録処理を構成する各処理は以下のような特徴を有する。
【００７５】
文書入力処理（Ｓ１１０）において、文書入力部１１１は実施の形態１と同様に登録文書１８１を記憶する。
【００７６】
索引容量推定処理（Ｓ１２０）において、索引容量記録部１３０はＳ１１０で新たに記憶された登録文書１８１について生成対象である各文字種の各ｎ文字索引１０９のデータサイズを推定し、推定したデータサイズに基づいて索引容量管理テーブル１９３を更新する。
例えば、Ｎ文字索引生成定義情報テーブル１９２が図９の設定値を示す場合、索引容量記録部１３０は、新たな登録文書１８１に対する「漢字」、「ひらがな」、「カタカナ」、「英字」および「記号」の各文字種の１文字索引および「ひらがな」、「カタカナ」および「英字」の各文字種の２文字索引についてデータサイズを推定する。
また、索引容量管理テーブル１９３が図１０の設定値を示し、新たな登録文書１８１に対する「漢字」、「ひらがな」、「カタカナ」、「英字」および「記号」の各文字種の１文字索引および「ひらがな」、「カタカナ」および「英字」の各文字種の２文字索引の推定サイズがそれぞれ「１ＭＢ」、「３ＭＢ」、「２ＭＢ」、「７ＭＢ」、「５ＭＢ」、「６ＭＢ」、「４ＭＢ」、「８ＭＢ」だった場合、索引容量記録部１３０は各設定値を「１０００１ＭＢ」、「３０００３ＭＢ」、「２０００２ＭＢ」、「９０００７ＭＢ」、「５０００５ＭＢ」、「６５００６ＭＢ」、「４０００４ＭＢ」、「２００００８ＭＢ」に更新する。
【００７７】
空き容量取得処理（Ｓ１３０）において、ディスク空き容量取得部１３１は実施の形態１と同様にＮ文字索引記憶部１９０の空き容量を参照する。
【００７８】
索引生成定義設定処理（Ｓ１４０）において、Ｎ文字索引変更部１２３は以下のように処理を行う。
Ｎ文字索引変更部１２３は、実施の形態１と同様に、新たな登録文書１８１に対する各文字種の各ｎ文字索引１０９の推定サイズの合計値とＳ１３０で得られたＮ文字索引記憶部１９０の空き容量とを大小比較する（Ｓ１４１）。
【００７９】
Ｓ１４１で新たな登録文書１８１に対する各文字種の各ｎ文字索引１０９の推定サイズの合計値がＮ文字索引記憶部１９０の空き容量より大きいと判定した場合、Ｎ文字索引変更部１２３は、実施の形態１と同様に、生成非対象に変更するｎ文字索引１０９を選択する。
【００８０】
例えば、Ｎ文字索引変更部１２３は１文字索引以外の各文字種のｎ文字索引１０９を生成非対象に選択する。
【００８１】
また例えば、索引容量管理テーブル１９３が図１０の累積サイズを示す場合（但し、ｎ＝１〜２とする）、Ｎ文字索引変更部１２３は、生成対象の中で累積サイズが一番小さい「漢字」の１文字索引、または、１文字索引を除いた中で累積サイズが一番小さい「カタカナ」の２文字索引、または、累積サイズが一番大きい「英字」の２文字索引を生成非対象にする。
【００８２】
また例えば、Ｎ文字索引変更部１２３は「ｎ」の大小や各文字種の所定の優先度に応じて生成非対象にするｎ文字索引１０９を選択する。Ｎ文字索引生成定義情報テーブル１９２が図９の設定値を示し（但し、ｎ＝１〜２とする）、各文字種のｎ文字索引１０９の生成優先度が「漢字→ひらがな→カタカナ→英字→記号」の順に高い場合、文字種「ｚｚ」のｘ文字索引を「ｚｚｘ」と表記すると、Ｎ文字索引変更部１２３は「記号１→英字１→カタカナ１→ひらがな１→漢字１→英字２→カタカナ２→ひらがな２」や「英字２→カタカナ２→ひらがな２→記号１→英字１→カタカナ１→ひらがな１→漢字１」や「記号１→英字１→英字２→カタカナ１→カタカナ２→ひらがな１→ひらがな２→漢字１」や「記号１→英字２→英字１→カタカナ２→カタカナ１→ひらがな２→ひらがな１→漢字１」などの順で生成非対象にするｎ文字索引１０９を選択する。
【００８３】
次に、Ｓ１４３において、Ｎ文字索引変更部１２３は、実施の形態１と同様に、Ｓ１４２で選択したｎ文字索引１０９についてＮ文字索引生成定義情報テーブル１９２の設定値を「対象」から「非対象」に変更する。
【００８４】
Ｎ文字索引削除処理（Ｓ１５０）において、Ｎ文字索引削除部１２２は実施の形態１と同様にＳ１４２で生成非対象に選択されたｎ文字索引１０９を削除する。
【００８５】
Ｎ文字索引生成処理（Ｓ１６０）において、Ｎ文字索引生成部１２１は、実施の形態１と同様に、新たな登録文書１８１について生成対象の各文字種の各ｎ文字索引１０９を生成する。Ｎ文字索引生成定義情報テーブル１９２が図９の設定値を示す場合、Ｎ文字索引生成部１２１は「漢字」、「ひらがな」、「カタカナ」、「英字」、「記号」の各１文字索引１０９ａおよび「ひらがな」、「カタカナ」、「英字」の各２文字索引１０９ｂを生成する。
【００８６】
実施の形態２では、以下のような文書管理システム１００について説明した。
文書管理システム１００は、Ｎ文字索引（Ｎ文字索引情報１９１）を構成するＮ−ｇｒａｍに関連する位置情報２２０および管理情報２１０に対して、英字・数字・漢字・ひらがな・カタカナ・その他の記号文字といった文字の種類ごとにＮ文字索引を生成するか否かを設定可能とすることを特徴とする。
【００８７】
また、文書管理システム１００は、索引容量記録手段（索引容量記録部１３０）が、英字・数字・漢字・ひらがな・カタカナ・その他の記号文字といった文字の種類ごとに、Ｎ文字索引のディスク装置（Ｎ文字索引記憶部１９０）への格納に要する索引容量を記録することを特徴とする。
【００８８】
文書管理システム１００は、任意のＮ（ｎ）における索引（ｎ文字索引１０９）において、漢字・ひらがな・カタカナ・英字・数字・その他の記号文字といった文字の種類ごとにＮ文字索引のサイズを索引生成前に把握し、ディスク装置に格納可能となるように、任意のＮにおける文字の種類ごとの索引を生成対象外とし、同時に、既にディスク装置に格納されている索引についても削除する。
【００８９】
この文書管理システム１００によれば、索引生成対象外とするＮ文字索引を文字の種類ごとに詳細化して自動設定することが可能となる。これにより、文書管理システム１００はディスク装置の空き容量に応じて段階的にＮ文字索引の索引容量を削減することができ、任意のＮ文字索引における各文字の種類に対して検索速度の性能低下を段階的に抑えるという効果が得られる。
【００９０】
実施の形態３．
実施の形態３では、実施の形態１および実施の形態２と異なる事項について主に説明し、説明を省略した事項については実施の形態１または実施の形態２と同様であるものとする。
【００９１】
図１１は、実施の形態３における文書管理システム１００の機能構成図である。
実施の形態３における文書管理システム１００の機能構成について、図１１に基づいて以下に説明する。
【００９２】
Ｎ文字索引生成部１２１は、登録文書１８１に対して、ｎ文字索引１０９を所定のデータサイズ単位でＣＰＵを用いて生成し、生成した所定のデータサイズ単位の各ｎ文字索引１０９を一時ブロック化Ｎ文字索引情報２０２（一時ブロック化索引）としてＮ文字索引記憶部１９０に記憶する。
【００９３】
また、文書登録部１１０は、Ｎ文字索引生成部１２１が生成した一時ブロック化Ｎ文字索引情報２０２をその所定のデータサイズ単位より大きなデータサイズ単位で固定ブロック化Ｎ文字索引情報２０１（固定ブロック化索引）としてＣＰＵを用いて生成し直す索引ブロック化部１５０を備える。
【００９４】
文書検索部１４０は、索引ブロック化部１５０が生成した固定ブロック化Ｎ文字索引情報２０１とＮ文字索引生成部１２１が新たに生成した一時ブロック化Ｎ文字索引情報２０２とに基づいて検索キーワード１０２が含まれている登録文書１８１をＣＰＵを用いて特定する。
【００９５】
その他の構成は、実施の形態１または実施の形態２と同じである。
【００９６】
図１２は、実施の形態３におけるＮ文字索引情報１９１を示す図である。
実施の形態３におけるＮ文字索引情報１９１について、図１２に基づいて以下に説明する。
【００９７】
Ｎ文字索引情報１９１はそれぞれに管理情報２１０（図７参照）と位置情報２２０（図７参照）とを有する固定ブロック化Ｎ文字索引情報２０１と一時ブロック化Ｎ文字索引情報２０２とを含んでいる。固定ブロック化Ｎ文字索引情報２０１の位置情報ブロック２２１は一時ブロック化Ｎ文字索引情報２０２の位置情報ブロック２２１より大きなデータサイズ単位でブロック化されている。
ブロック化とは、連続する又は関係する各データを連続する記憶領域に格納することである。
連続する又は関係する各データとは、特定の登録文書１８１に対するｎ文字索引１０９、ｎ文字索引１０９の各Ｎ−ｇｒａｍ、ｎ文字索引１０９の特定文字種の各Ｎ−ｇｒａｍなどのことである。
以下、固定ブロック化Ｎ文字索引情報２０１の位置情報ブロック２２１のブロックサイズ、一時ブロック化Ｎ文字索引情報２０２の位置情報ブロック２２１のブロックサイズをそれぞれ固定ブロック化Ｎ文字索引情報２０１のブロックサイズ、一時ブロック化Ｎ文字索引情報２０２のブロックサイズとする。
【００９８】
固定ブロック化Ｎ文字索引情報２０１はＮ文字索引生成定義情報テーブル１９２に「（生成）対象」と設定されている各ｎ文字索引１０９を有し、一時ブロック化Ｎ文字索引情報２０２は１文字索引１０９ａ〜Ｎ文字索引１０９ｅまでの各ｎ文字索引１０９を有する。例えば、Ｎ文字索引生成定義情報テーブル１９２が図２の設定値を示す場合（但し、ｎ＝１〜４とする）、固定ブロック化Ｎ文字索引情報２０１は１文字索引１０９ａ、３文字索引１０９ｃおよび４文字索引１０９ｄを有し、一時ブロック化Ｎ文字索引情報２０２は１文字索引１０９ａ、３文字索引１０９ｃ、４文字索引１０９ｄの他に２文字索引１０９ｂも有する。
つまり、Ｎ文字索引生成定義情報テーブル１９２の設定値は固定ブロック化Ｎ文字索引情報２０１に対するものであり、一時ブロック化Ｎ文字索引情報２０２には関係しない。一時ブロック化Ｎ文字索引情報２０２が全ｎ文字索引１０９を生成対象にすることで、より多くの索引を用いて検索を行うことができる。
【００９９】
一時ブロック化Ｎ文字索引情報２０２は新たな登録文書１８１の各ｎ文字索引１０９を登録するのに用いられる。また、一時ブロック化Ｎ文字索引情報２０２は、登録予定の各登録対象文書１０１を処理する前や登録予定の各登録対象文書１０１を処理した後や特定の時刻など、適当なタイミングで、固定ブロック化Ｎ文字索引情報２０１のブロックサイズに纏められて固定ブロック化Ｎ文字索引情報２０１に移行される。
例えば、新たな登録文書１８１の各ｎ文字索引１０９の登録は一時ブロック化Ｎ文字索引情報２０２に対してオンライン処理で行われ、一時ブロック化Ｎ文字索引情報２０２から固定ブロック化Ｎ文字索引情報２０１へのＮ文字索引情報１９１の移行はオフライン処理で行われる。
固定ブロック化Ｎ文字索引情報２０１への移行の際、一時ブロック化Ｎ文字索引情報２０２中の生成非対象のｎ文字索引１０９は削除される。
文書管理システム１００は一時ブロック化Ｎ文字索引情報２０２を固定ブロック化Ｎ文字索引情報２０１に移行してＮ文字索引情報１９１を再編成する。
【０１００】
固定ブロック化Ｎ文字索引情報２０１のブロックサイズは検索処理時にＮ文字索引情報１９１を読み込むバッファのサイズ（例えば、５１２ＫＢ［キロバイト］、１０２４ＫＢ［＝１ＭＢ］）に合わせて定められている。固定ブロック化Ｎ文字索引情報２０１が読み込み用バッファサイズに対応してブロック化されていることにより、連続する又は関係する各データを１回のシーク（読み込み用ヘッドの移動）で磁気ディスク装置９２０から読み込むことができ、磁気ディスク装置９２０に対するアクセス回数が減り、検索時間を短縮することができる。
また、一時ブロック化Ｎ文字索引情報２０２が固定ブロック化Ｎ文字索引情報２０１より小さいデータサイズ（例えば、１６ＫＢ、３２ＫＢ）でブロック化されていることにより、例えば、１ブロックあたりの登録文書１８１数を「１」としても、１ブロックに生じる無駄な空き領域は少ないため、ブロック化処理を単純化することができる。これにより、新たな登録文書１８１に対するＮ文字索引情報１９１の登録処理にかかる時間を短縮することができる。
【０１０１】
図１３は、実施の形態３における文書管理システム１００の文書登録処理を示すフローチャートである。
Ｎ文字索引生成変更部１２０が新たな登録文書１８１の各ｎ文字索引１０９を一時ブロック化Ｎ文字索引情報２０２に登録する文書登録処理について、図１３に基づいて以下に説明する。
図１３に示す文書登録処理（Ｓ３１０〜Ｓ３６０）は登録対象文書１０１毎に実行される。
【０１０２】
＜Ｓ３１０：文書入力処理＞
まず、文書入力部１１１は、実施の形態１と同様に、登録対象文書１０１を入力し、入力した登録対象文書１０１を登録文書１８１として登録対象文書記憶部１８０に記憶する。
【０１０３】
＜Ｓ３２０：索引容量推定処理＞
次に、索引容量記録部１３０はＳ３１０で新たに記憶された登録文書１８１について生成対象である各ｎ文字索引１０９のデータサイズを推定する。索引容量管理テーブル１９３は更新しなくてよい。
このとき、索引容量記録部１３０は、実施の形態１と異なり、１から所定のＮまでの全てのｎ文字索引１０９についてデータサイズを推定する。
【０１０４】
＜Ｓ３３０：空き容量取得処理＞
次に、ディスク空き容量取得部１３１は、実施の形態１と同様に、Ｎ文字索引記憶部１９０の空き容量を参照する。
【０１０５】
＜Ｓ３４０：索引生成定義設定処理＞
次に、Ｎ文字索引変更部１２３は各ｎ文字索引１０９の推定サイズの合計値とＮ文字索引記憶部１９０の空き容量とを比較し（Ｓ３４１）、各ｎ文字索引１０９の推定サイズの合計値がＮ文字索引記憶部１９０の空き容量より大きい場合、生成非対象とするｎ文字索引１０９を選択する（Ｓ３４２）。
【０１０６】
Ｓ３４２において、Ｎ文字索引変更部１２３は、実施の形態１や実施の形態２と同様に、１文字索引（または、各文字種の１文字索引）以外のｎ文字索引１０９を生成非対象に選択したり、各ｎ文字索引１０９（または、各文字種の各ｎ文字索引１０９）の推定サイズや「ｎ」の大小順に生成非対象にするｎ文字索引１０９を選択したりする。
【０１０７】
＜Ｓ３６０：Ｎ文字索引生成処理＞
そして、Ｎ文字索引変更部１２３は、実施の形態１と同様に、新たな登録文書１８１について生成対象の各ｎ文字索引１０９を生成し、生成した各ｎ文字索引１０９を一時ブロック化Ｎ文字索引情報２０２に記憶する。
【０１０８】
図１４は、実施の形態３における索引ブロック化処理を示すフローチャートである。
索引ブロック化部１５０が一時ブロック化Ｎ文字索引情報２０２の複数のブロックを１つのブロックに纏めて（ブロック化して）固定ブロック化Ｎ文字索引情報２０１に移行する索引ブロック化処理（移行処理）について、図１４に基づいて以下に説明する。
索引ブロック化部１５０は以下に説明する各処理をＣＰＵを用いて実行する。
【０１０９】
まず、索引ブロック化部１５０は変数ｘに１を設定する（Ｓ４１０）。
【０１１０】
次に、索引ブロック化部１５０は、Ｎ文字索引生成定義情報テーブル１９２を参照し、変数ｘが示すｘ文字索引が索引生成対象か否かを判定する（Ｓ４２０）。
【０１１１】
Ｓ４２０においてｘ文字索引が索引生成対象であると判定した場合、索引ブロック化部１５０は一時ブロック化Ｎ文字索引情報２０２のｘ文字索引の各位置情報ブロック２２１を固定ブロック化Ｎ文字索引情報２０１のｘ文字索引の最後の位置情報ブロック２２１に追加する。また、索引ブロック化部１５０は一時ブロック化Ｎ文字索引情報２０２のｘ文字索引の各位置情報ブロック格納位置２１１を固定ブロック化Ｎ文字索引情報２０１のｘ文字索引の最後の位置情報ブロック格納位置２１１に追加し、ブロック内文書数２１２を更新する。追加中にブロック内文書数２１２の設定値が所定の文書数を超えた場合、索引ブロック化部１５０は固定ブロック化Ｎ文字索引情報２０１の管理情報２１０と位置情報２２０にそれぞれ新たに位置情報ブロック格納位置２１１と位置情報ブロック２２１を生成する。そして、索引ブロック化部１５０は、新たに生成した位置情報ブロック格納位置２１１と位置情報ブロック２２１とに一時ブロック化Ｎ文字索引情報２０２の位置情報ブロック格納位置２１１と位置情報ブロック２２１とを追加する。これにより、一時ブロック化Ｎ文字索引情報２０２は固定ブロック化Ｎ文字索引情報２０１のブロックサイズに纏められると共に固定ブロック化Ｎ文字索引情報２０１に移行され、Ｎ文字索引情報１９１は再編成される（Ｓ４３０）。
【０１１２】
Ｓ４２０においてｘ文字索引が索引生成対象でないと判定した場合、または、Ｓ４３０で一時ブロック化Ｎ文字索引情報２０２のｘ文字索引をブロック化して固定ブロック化Ｎ文字索引情報２０１に移行した後、索引ブロック化部１５０は、変数ｘが所定のＮ以上か否か、つまり、一時ブロック化Ｎ文字索引情報２０２の全てのｎ文字索引１０９について固定ブロック化Ｎ文字索引情報２０１への移行処理を行ったか否かを判定する（Ｓ４４０）。
【０１１３】
Ｓ４４０で変数ｘが所定のＮ以上でないと判定した場合、つまり、固定ブロック化Ｎ文字索引情報２０１への移行処理を行っていない一時ブロック化Ｎ文字索引情報２０２のｎ文字索引１０９があると判定した場合、索引ブロック化部１５０は変数ｘに１加算する（Ｓ４５０）。
【０１１４】
索引ブロック化部１５０は、Ｓ４４０で変数ｘが所定のＮ以上であると判定するまで、つまり、一時ブロック化Ｎ文字索引情報２０２の全てのｎ文字索引１０９について固定ブロック化Ｎ文字索引情報２０１への移行処理を行うまで、Ｓ４２０〜Ｓ４５０を繰り返す。
【０１１５】
Ｓ４４０で変数ｘが所定のＮ以上であると判定した場合、つまり、一時ブロック化Ｎ文字索引情報２０２の全てのｎ文字索引１０９について固定ブロック化Ｎ文字索引情報２０１への移行処理を行ったと判定した場合、索引ブロック化部１５０は一時ブロック化Ｎ文字索引情報２０２の全ｎ文字索引１０９を削除して一時ブロック化Ｎ文字索引情報２０２を空にする（Ｓ４６０）。
【０１１６】
上記説明では、Ｎ文字索引生成変更部１２０は一時ブロック化Ｎ文字索引情報２０２として１からＮまでの全てのｎ文字索引１０９を（Ｎ文字索引記憶部１９０の空き容量の範囲内で）生成対象としたが、実施の形態１の文書登録処理（Ｓ１１０〜Ｓ１６０）と同様に、一時ブロック化Ｎ文字索引情報２０２としてＮ文字索引生成定義情報テーブル１９２に生成対象と設定されているｎ文字索引１０９のみを生成してもよい。
【０１１７】
文書検索部１４０は固定ブロック化Ｎ文字索引情報２０１と一時ブロック化Ｎ文字索引情報２０２とを用いて、実施の形態１と同様に、検索キーワード１０２に対する検索を行い、検索結果１０３を出力する。
【０１１８】
実施の形態３では、以下のような文書管理システム１００について説明した。
文書管理システム１００は、追加登録された登録対象文書１０１の一時管理情報および一時位置情報が作成された一時ブロック化Ｎ文字索引（一時ブロック化Ｎ文字索引情報２０２）と、登録済みの登録文書１８１の固定管理情報および固定位置情報が作成された固定ブロック化Ｎ文字索引（固定ブロック化Ｎ文字索引情報２０１）とに分割されたＮ文字索引（Ｎ文字索引情報１９１）について、一時ブロック化Ｎ文字索引の方が固定ブロック化Ｎ文字索引よりも、Ｎ−ｇｒａｍに関する位置情報および管理情報を多く有することを特徴とする。
【０１１９】
文書管理システム１００は、一時ブロック化Ｎ文字索引を構成する一部のＮ−ｇｒａｍに関する位置情報および管理情報を削除した上で、一時ブロック化Ｎ文字索引の一時位置情報および一時管理情報をそれぞれ複数個結合し、結合した一時位置情報および一時管理情報を固定ブロック化Ｎ文字索引の固定位置情報および固定管理情報へ追加することを特徴とする。
【０１２０】
この文書管理システム１００によれば、固定ブロック化Ｎ文字索引よりも多い一時ブロック化Ｎ文字索引のブロック化Ｎ文字索引を利用して検索できるようにしたので、検索速度を向上することができるという効果を得られる。
【図面の簡単な説明】
【０１２１】
【図１】実施の形態１における文書管理システム１００の機能構成図。
【図２】実施の形態１におけるＮ文字索引生成定義情報テーブル１９２の一例を示す図。
【図３】実施の形態１における索引容量管理テーブル１９３の一例を示す図。
【図４】実施の形態１における文書管理システム１００の外観の一例を示す図。
【図５】実施の形態１における文書管理システム１００のハードウェア資源の一例を示す図。
【図６】実施の形態１における文書管理システム１００の文書登録処理を示すフローチャート。
【図７】実施の形態１における１文字索引１０９ａのデータ構造の一例を示す図。
【図８】実施の形態１におけるＮ文字索引生成処理（Ｓ１６０）を示すフローチャートの一例。
【図９】実施の形態２におけるＮ文字索引生成定義情報テーブル１９２の一例を示す図。
【図１０】実施の形態２における索引容量管理テーブル１９３の一例を示す図。
【図１１】実施の形態３における文書管理システム１００の機能構成図。
【図１２】実施の形態３におけるＮ文字索引情報１９１を示す図。
【図１３】実施の形態３における文書管理システム１００の文書登録処理を示すフローチャート。
【図１４】実施の形態３における索引ブロック化処理を示すフローチャート。
【符号の説明】
【０１２２】
１００  文書管理システム、１０１  登録対象文書、１０２  検索キーワード、１０３  検索結果、１０９  ｎ文字索引、１０９ａ  １文字索引、１０９ｂ  ２文字索引、１０９ｃ  ３文字索引、１０９ｄ  ４文字索引、１０９ｅ  Ｎ文字索引、１１０  文書登録部、１１１  文書入力部、１２０  Ｎ文字索引生成変更部、１２１  Ｎ文字索引生成部、１２２  Ｎ文字索引削除部、１２３  Ｎ文字索引変更部、１３０  索引容量記録部、１３１  ディスク空き容量取得部、１４０  文書検索部、１５０  索引ブロック化部、１８０  登録対象文書記憶部、１８１  登録文書、１９０  Ｎ文字索引記憶部、１９１  Ｎ文字索引情報、１９２  Ｎ文字索引生成定義情報テーブル、１９３  索引容量管理テーブル、２０１  固定ブロック化Ｎ文字索引情報、２０２  一時ブロック化Ｎ文字索引情報、２１０，２１０ａ，２１０ｂ  管理情報、２１１，２１１ａ〜２１１ｃ  位置情報ブロック格納位置、２１２  ブロック内文書数、２１３，２１３ａ，２１３ｂ  Ｎ−ｇｒａｍブロック内格納位置、２２０，２２０ａ，２２０ｂ  位置情報、２２１，２２１ａ〜２２１ｇ  位置情報ブロック、２２２，２２２ａ〜２２２ｃ  Ｎ−ｇｒａｍ情報、２２３，２２３ａ，２２３ｂ  文書番号、２２４，２２４ａ，２２４ｂ  出現回数、２２５，２２５ａ〜２２５ｃ  出現位置、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ。
【図１】
0005159277.tif 000002
【図２】
0005159277.tif 000003
【図３】
0005159277.tif 000004
【図４】
0005159277.tif 000005
【図５】
0005159277.tif 000006
【図６】
0005159277.tif 000007
【図７】
0005159277.tif 000008
【図８】
0005159277.tif 000009
【図９】
0005159277.tif 000010
【図１０】
0005159277.tif 000011
【図１１】
0005159277.tif 000012
【図１２】
0005159277.tif 000013
【図１３】
0005159277.tif 000014
【図１４】
0005159277.tif 000015