(57)【要約】【課題】登録及び削除を高速に処理すると共に、検索適合率のスコア算出を高速に実行することを可能にする文書検索装置、文書検索方法および文書検索プログラムを提供することを主な目的とする。【解決手段】文書データファイル４１０と、複数の転置ファイル４３０と、文書長ファイル４２０と、前記文書データファイル４１０に記憶された前記文書データ４１０ｂを前記索引単位４３０ａに分割するテキスト分割部３４０と、前記テキスト分割部３４０により分割された前記索引単位４３０ａの前記文書データの文字列上における文字列位置を求め、前記文字列位置を前記索引単位４３０ａの前記文書データ上の出現位置４３０ｂとして、前記文書識別番号４１０ａと、前記索引単位４３０ａと、対応付けて前記複数の転置ファイル４３０のうちいずれか一つに登録する登録処理部３１０と、を有することを特徴とする。【選択図】        図２
2008234204.tif 000002
【特許請求の範囲】
【請求項１】
文書データと、該文書データに固有の文書識別情報と、を対応付けて記憶可能な文書データ記憶手段と、
前記文書識別情報と、前記文書データを検索するための見出しとなる索引単位と、該索引単位の前記文書データ上の出現位置と、を対応付けて記憶可能な複数の転置ファイル記憶手段と、
前記文書識別情報と、前記文書データの文字列長である文書長と、前記複数の転置ファイル記憶手段ごとに固有の第１の転置ファイル識別情報と、を対応付けて記憶可能な文書長記憶手段と、
前記文書データ記憶手段に記憶された前記文書データを前記索引単位に分割するテキスト分割手段と、
前記テキスト分割手段により分割された前記索引単位の前記文書データの文字列上における文字列位置を求め、前記文字列位置を前記索引単位の前記文書データ上の出現位置として、前記文書識別情報と、前記索引単位と、対応付けて前記複数の転置ファイル記憶手段のうちいずれか一つに登録する登録処理手段と、
を有することを特徴とする文書検索装置。
【請求項２】
前記文書データと、該文書データから前記テキスト分割手段により分割された前記索引単位と、前記第１の転置ファイル識別情報と、を対応付けて削除する削除処理手段をさらに有することを特徴とする請求項１に記載の文書検索装置。
【請求項３】
前記文書長記憶手段は、前記登録処理手段による時系列で最後の登録先である前記転置ファイル記憶手段に固有の第２の転置ファイル識別情報と、前記文書データ記憶手段に記憶されている全ての前記文書データの文字列長の総和である全文書長と、前記文書データ記憶手段に記憶されている全ての前記文書データの総数である全文書数と、をさらに記憶可能であることを特徴とする請求項１に記載の文書検索装置。
【請求項４】
前記文書データ記憶手段と、前記文書長記憶手段は、さらに前記文書識別情報によってソートされたＢ木データ構造を有し、
前記複数の転置ファイル記憶手段は、さらに前記文書識別情報によってソートされたＢ木データ構造もしくは前記索引単位をキーとしたハッシュテーブル構造を有することを特徴とする請求項１に記載の文書検索装置。
【請求項５】
前記登録処理手段は、前記登録処理手段による時系列で最後の登録先である前記転置ファイル記憶手段が所定の記憶容量を越えた際に、前記転置ファイル記憶手段に新たな記憶領域を確保し、該記憶領域に前記出現位置を登録することを特徴とする請求項１に記載の文書検索装置。
【請求項６】
前記登録処理手段は、前記複数の転置ファイル記憶手段のうちいずれか一つをラウンドロビン方式で選択し、選択された前記転置ファイル記憶手段に前記出現位置を登録することを特徴とする請求項１に記載の文書検索装置。
【請求項７】
文書検索装置において文書を検索する文書検索方法であって、
文書データと、該文書データに固有の文書識別情報と、を対応付けて記憶可能な文書データ記憶手段と、
前記文書識別情報と、前記文書データを検索するための見出しとなる索引単位と、該索引単位の前記文書データ上の出現位置と、を対応付けて記憶可能な複数の転置ファイル記憶手段と、
前記文書識別情報と、前記文書データの文字列長である文書長と、前記複数の転置ファイル記憶手段ごとに固有の第１の転置ファイル識別情報と、を対応付けて記憶可能な文書長記憶手段と、を備え、
前記文書データ記憶手段に記憶された前記文書データを前記索引単位に分割するテキスト分割ステップと、
前記テキスト分割ステップにより分割された前記索引単位の前記文書データの文字列上における文字列位置を求め、前記文字列位置を前記索引単位の前記文書データ上の出現位置として、前記文書識別情報と、前記索引単位と対応付けて前記複数の転置ファイル記憶手段のうちいずれか一つに登録する登録処理ステップと、
前記文書データと、該文書データから前記テキスト分割手段により分割された前記索引単位と、前記第１の転置ファイル識別情報と、を対応付けて削除する削除処理ステップと、
を有することを特徴とする文書検索方法。
【請求項８】
請求項７に記載の文書検索方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書検索装置、文書検索方法および文書検索プログラムに関するものであり、特に膨大な文書データのデータベースの登録、検索および削除を高速に実行する技術に関するものである。
【背景技術】
【０００２】
近年、情報通信技術の発達により電子化された文書や関連する情報がインターネットを介して大量に流通している。これら電子化文書及び情報の流通に際し、所望の文書を精度よく、更には高速に検索する文書検索装置が提案されている。
【０００３】
そのような文書検索装置においては、キーワード検索手法や全文検索手法が採用されている。全文検索手法を用いた文書検索装置は、任意の検索文字列と検索対象の文書全てとの間で照合を行って、検索文字列を含む文書を漏れなく抽出する検索装置であり、キーワード検索手法のように検索対象となる全ての文書に対してキーワードを予め付与するといった多大な工数を必要としない。現在、様々な方式の全文検索装置が提案されているが、その一手法として転置索引方式を採用した全文検索装置がある。
【０００４】
従来、この転置索引方式を用いた多くの全文検索装置では、検索は高速だが、登録は低速であるという問題があった。転置索引方式は、索引単位ごとに存在する転置リストファイルへ登録を行う必要があり、転置リストファイルの大きさに比例して、登録処理時間が増加していく。そのため、登録を高速化するためには、索引ファイルの大きさを小さく保つ必要がある。特許文献１に開示される技術では、主インデックスと小さな副インデックスを用意し、副インデックスがある程度の大きさになると、主インデックスに合成させることによって、登録処理を高速化している。また、特許文献２、３、４に開示される技術では、登録および削除用の小規模索引と、大規模索引を有し、小規模索引がある程度の大きさになると、主インデックスに合成させることによって、登録処理を高速化している。
【０００５】
【特許文献１】特開平７−１４６８８０号公報
【特許文献２】特開２００３−１２２７９４号公報
【特許文献３】特開２００４−１３７６４号公報
【特許文献４】特開２００３−２４２１８０号公報
【特許文献５】特願２００５−１５４３７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１、２、３及び４に開示される技術では、小規模な転置リストファイルに登録している間は高速に登録処理が行えるが、ファイルが大規模になっていくにつれ、転置リストファイルへのマージ処理の際に、大規模リストファイルの大きさに依存し、登録処理時間が増加してしまう。一方、特許文献５に開示される技術では、登録ファイルを分散しているので、ファイルサイズが大規模になることによる登録時間の増加はある程度避けられるが、複数の登録ファイル内の情報を合成させるために、検索結果一覧を表示する際の検索適合率の算出が複雑になり、検索速度の面で問題がある。
【０００７】
本発明は、上記に鑑みてなされたものであって、データベースの登録、検索及び削除を高速に処理することを可能にする文書検索装置、文書検索方法および文書検索プログラムを提供することを主な目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、文書データと、該文書データに固有の文書識別情報と、を対応付けて記憶可能な文書データ記憶手段と、前記文書識別情報と、前記文書データを検索するための見出しとなる索引単位と、該索引単位の前記文書データ上の出現位置と、を対応付けて記憶可能な複数の転置ファイル記憶手段と、前記文書識別情報と、前記文書データの文字列長である文書長と、前記複数の転置ファイル記憶手段ごとに固有の第１の転置ファイル識別情報と、を対応付けて記憶可能な文書長記憶手段と、前記文書データ記憶手段に記憶された前記文書データを前記索引単位に分割するテキスト分割手段と、前記テキスト分割手段により分割された前記索引単位の前記文書データの文字列上における文字列位置を求め、前記文字列位置を前記索引単位の前記文書データ上の出現位置として、前記文書識別情報と、前記索引単位と、対応付けて前記複数の転置ファイル記憶手段のうちいずれか一つに登録する登録処理手段と、を有することを特徴とする。
【０００９】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記文書データと、該文書データから前記テキスト分割手段により分割された前記索引単位と、前記第１の転置ファイル識別情報と、を対応付けて削除する削除処理手段を有することを特徴とする。
【００１０】
また、請求項３にかかる発明は、請求項１にかかる発明において、前記文書長記憶手段は、前記登録処理手段による時系列で最後の登録先である前記転置ファイル記憶手段に固有の第２の転置ファイル識別情報と、前記文書データ記憶手段に記憶されている全ての前記文書データの文字列長の総和である全文書長と、前記文書データ記憶手段に記憶されている全ての前記文書データの総数である全文書数と、をさらに記憶可能であること、を特徴とする。
【００１１】
また、請求項４にかかる発明は、請求項１にかかる発明において、前記文書データ記憶手段と、前記文書長記憶手段は、さらに前記文書識別情報によってソートされたＢ木データ構造を有し、前記複数の転置ファイル記憶手段は、さらに前記文書識別情報によってソートされたＢ木データ構造もしくは前記索引単位をキーとしたハッシュテーブル構造を有すること、を特徴とする。
【００１２】
また、請求項５にかかる発明は、請求項１にかかる発明において、前記登録処理手段は、前記登録処理手段による時系列で最後の登録先である前記転置ファイル記憶手段が所定の記憶容量を越えた際に、前記転置ファイル記憶手段に新たな記憶領域を確保し、該記憶領域に前記出現位置を登録すること、を特徴とする。
【００１３】
また、請求項６にかかる発明は、請求項１にかかる発明において、前記登録処理手段は、前記複数の転置ファイル記憶手段のうちいずれか一つをラウンドロビン方式で選択し、選択された前記転置ファイル記憶手段に前記出現位置を登録すること、を特徴とする。
【００１４】
また、請求項７にかかる発明は、文書検索装置において文書を検索する文書検索方法であって、文書データと、該文書データに固有の文書識別情報と、を対応付けて記憶可能な文書データ記憶手段と、前記文書識別情報と、前記文書データを検索するための見出しとなる索引単位と、該索引単位の前記文書データ上の出現位置と、を対応付けて記憶可能な複数の転置ファイル記憶手段と、前記文書識別情報と、前記文書データの文字列長である文書長と、前記複数の転置ファイル記憶手段ごとに固有の第１の転置ファイル識別情報と、を対応付けて記憶可能な文書長記憶手段と、を備え、前記文書データ記憶手段に記憶された前記文書データを前記索引単位に分割するテキスト分割ステップと、前記テキスト分割ステップにより分割された前記索引単位の前記文書データの文字列上における文字列位置を求め、前記文字列位置を前記索引単位の前記文書データ上の出現位置として、前記文書識別情報と、前記索引単位と対応付けて前記複数の転置ファイル記憶手段のうちいずれか一つに登録する登録処理ステップと、前記文書データと、該文書データから前記テキスト分割手段により分割された前記索引単位と、前記第１の転置ファイル識別情報と、を対応付けて削除する削除処理ステップと、を有することを特徴とする。
【００１５】
また、請求項８にかかる発明は、文書検索装置において文書を検索する文書検索方法であって、文書データと、該文書データに固有の文書識別情報と、を対応付けて記憶可能な文書データ記憶手段と、前記文書識別情報と、前記文書データを検索するための見出しとなる索引単位と、該索引単位の前記文書データ上の出現位置と、を対応付けて記憶可能な複数の転置ファイル記憶手段と、前記文書識別情報と、前記文書データの文字列長である文書長と、前記複数の転置ファイル記憶手段ごとに固有の第１の転置ファイル識別情報と、を対応付けて記憶可能な文書長記憶手段と、を備え、前記文書データ記憶手段に記憶された前記文書データを前記索引単位に分割するテキスト分割ステップと、前記テキスト分割ステップにより分割された前記索引単位の前記文書データの文字列上における文字列位置を求め、前記文字列位置を前記索引単位の前記文書データ上の出現位置として、前記文書識別情報と、前記索引単位と対応付けて前記複数の転置ファイル記憶手段のうちいずれか一つに登録する登録処理ステップと、前記文書データと、該文書データから前記テキスト分割手段により分割された前記索引単位と、前記第１の転置ファイル識別情報と、を対応付けて削除する削除処理ステップと、としてコンピュータに機能させることを特徴とする。
【発明の効果】
【００１６】
請求項１にかかる発明によれば、文書データと、文書データから分割された索引単位と、索引単位の文書データ上の出現位置と、を対応付けて文書データファイルと、文書長ファイルと、複数の転置ファイルと、に対応付けて登録することにより、登録される文書データが増加しても、登録および検索の処理時間を所定時間以下に維持する文書検索を実現することができるという効果を奏する。
【００１７】
また、請求項２にかかる発明によれば、文書データファイルと、文書長ファイルと、複数の転置ファイルと、に対応付けて登録した文書データと、文書データから分割された索引単位と、索引単位の文書データ上の出現位置と、を対応付けて削除することにより、文書検索を実行する上での必要な文書データが無駄に増大することを避け、登録及び検索の処理時間を所定時間以下に維持する文書検索を実現することができるという効果を奏する。
【００１８】
また、請求項３にかかる発明によれば、最も直近に登録処理が実行された転置ファイルの識別番号、既に登録されている文書データの文字列長の総和と総文書データ数を記憶し、新規文書データの追加または既存文書データの削除の際には常に更新することにより、次に登録する転置ファイルの決定、および検索時の検索適合率スコアの算出を最短時間で実行することができるという効果を奏する。
【００１９】
また、請求項４にかかる発明によれば、文書データ記憶手段と、文書長記憶手段はＢ木データ構造を有し、転置ファイル記憶手段はＢ木データ構造もしくはハッシュテーブル構造を有することにより、文書データの登録、検索及び削除を実行する際の既存データ探索を最短時間で実行することができるという効果を奏する。
【００２０】
また、請求項５にかかる発明によれば、文書データから分割された索引単位と、索引単位の文書データ上の出現位置と、を対応付けて登録する転置ファイルを所定サイズ以下に制限することにより、登録データが増加しても、登録及び検索の処理時間を所定時間以下に維持する文書検索を実現することができるという効果を奏する。
【００２１】
また、請求項６にかかる発明によれば、文書データから分割された索引単位と、索引単位の文書データ上の出現位置と、を対応付けて登録する転置ファイルを所定数に制限し、ファイルアクセス時間を平均化することにより、登録データが増加しても、登録及び検索の処理時間を所定時間以下に維持する文書検索を実現することができるという効果を奏する。
【００２２】
また、請求項７にかかる発明によれば、文書データと、文書データから派生した索引単位と、索引単位の文書データ上の出現位置と、を対応付けて、文書データファイルと、文書長ファイルと、複数の転置ファイルと、に分割して登録することにより、登録データが増加しても、登録および検索の処理時間を所定時間以下に維持する文書検索方法を実現することができるという効果を奏する。
【００２３】
また、請求項８にかかる発明によれば、文書データと、文書データから分割された索引単位と、索引単位の文書データ上の出現位置と、を対応付けて文書データファイルと、文書長ファイルと、複数の転置ファイルと、に対応付けて登録することにより、登録される文書データが増加しても、登録および検索の処理時間を所定時間以下に維持する文書検索を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２４】
以下に添付図面を参照して、本発明の実施の形態にかかる文書検索装置、文書検索方法および文書検索プログラムの最良な実施の形態を詳細に説明する。
【００２５】
（第１の実施の形態）
図１は、第１の実施の形態にかかる文書検索装置２００がネットワーク５００上に接続された状態を示す模式図である。クライアントＰＣ１００と、文書検索装置２００がネットワーク５００上に接続されている。このような構成により、文書検索装置２００は、クライアントＰＣ１００から送信された文書データの登録、検索及び削除の処理を可能とする。なお、クライアントＰＣ１００から文書検索装置２００へのデータ通信に用いられるネットワーク５００は、無線もしくは有線、またＬＡＮや公衆通信回線を問わず、どのようなネットワークでもよい。
【００２６】
第１の実施の形態にかかる文書検索装置２００は、文書処理部３００と、文書記憶部４００と、を備えている。ユーザは、クライアントＰＣ１００からネットワーク５００を介して文書検索装置２００内部の文書処理部３００にアクセスして、検索を実行する。文書処理部３００は、検索を指示される際に入力された文書データと検索条件に基づいて、文書記憶部４００の文書データのデータベースの登録、検索及び削除を指示する。
【００２７】
図２は、第１の実施の形態にかかる文書検索装置２００の概略構成を示すブロック図である。文書検索装置２００は、文書処理部３００と、文書記憶部４００と、を備えている。なお、図２には、クライアントＰＣ１００側の構成である入力部１１０および出力部１２０も示している。
【００２８】
ユーザは、クライアントＰＣ１００側の入力部１１０に文書データ４１０ｂと検索条件１３０を入力し、当該文書データ４１０ｂの登録、検索及び削除の処理を実行する。ユーザがクライアントＰＣ１００側の入力部１１０に文書データ４１０ｂと検索条件１３０を入力し検索を実行すると、文書処理部３００は文書記憶部４００内部への文書データの登録及び削除を実行し、文書データのデータベースを更新する。更に、文書処理部３００は検索処理を実行し、クライアントＰＣ１００側の出力部１２０に検索結果１４０を表示してユーザに検索結果を知らせる。
【００２９】
文書記憶部４００は、ユーザから入力を受け付けた文書データのデータベースを構築しており、文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０と、からなる記憶構造を備えている。文書記憶部４００は、ＨＤＤ（ハードディスクドライブ装置）等の記憶媒体である。
【００３０】
文書データファイル４１０は、入力部１１０に入力された文書データ４１０ｂを登録するものである。図３は、第１の実施の形態にかかる文書検索装置２００の文書データファイル４１０の記憶構造を示す概要図である。文書データファイル４１０は、入力部１１０に入力された文書データ４１０ｂと、各文書データ４１０ｂに固有の文書識別番号４１０ａと、を対応付けて記憶する構成となっている。文書識別番号４１０ａは、各文書データ４１０ｂが入力された時点で、各文書データ固有に付けられた識別番号であり、各文書データ４１０ｂが識別できるようになっている。
【００３１】
文書長ファイル４２０は、文書データファイル４１０に登録された文書データ４１０ｂと後述する転置ファイル４３０との対応付けを登録するものである。図４は、第１の実施の形態にかかる文書検索装置２００の文書長ファイル４２０の記憶構造を示す概要図である。文書長ファイル４２０は、ヘッダー領域４２０ａとリスト領域４２０ｂと、から構成されている。
【００３２】
リスト領域４２０ｂは、文書データファイル４１０に登録した文書識別番号４１０ａと、文書長４２０ｆと、転置ファイル４３０の転置ファイル識別番号４２０ｇと、を対応付けて記憶する構成となっている。文書長４２０ｆは、文書識別番号４１０ａに該当する文書データ４１０ｂの文字列数である。転置ファイル識別番号４２０ｇは、複数の転置ファイル４３０のうちから個別のファイルを識別するものである。転置ファイル４３０の詳細については後述する。
【００３３】
ヘッダー領域４２０ａは、検索を高速に実行するために累積的にデータが記録される領域であり、新規文書データの追加、または登録文書データの削除が行われるごとにデータが更新される。図４において、ヘッダー領域４２０ａは、最も直近に登録された転置ファイル４３０の転置ファイル識別番号４２０ｃと、全文書長４２０ｄと、全文書数４２０ｅと、を記憶する構成となっている。全文書長４２０ｄは、リスト領域４２０ｂに記憶されている全ての文書データ４１０ｂの文字列数の総和である。また、全文書数４２０ｅは、リスト領域４２０ｂに記憶されている全ての文書データ４１０ｂの総数である。
【００３４】
文書処理部３００は、文書記憶部４００への文書データの登録、検索及び削除と、文書データのテキスト分割を処理しており、登録処理部３１０と、削除処理部３２０と、検索処理部３３０と、テキスト分割部３４０と、を備えている。
【００３５】
登録処理部３１０は、ユーザから入力を受け付けた文書データを文書記憶部４００に登録する処理を実行する。これにより、文書記憶部４００は、文書データのデータベースとしての機能を有する。
【００３６】
検索処理部３３０は、文書記憶部４００に登録された文書データのデータベースを活用して、検索処理を実行する。これにより、文書データのデータベースを活用した検索結果を出力部１２０に表示することができる。
【００３７】
削除処理部３２０は、文書記憶部４００に登録された文書データのデータベースの中で検索適合性の低いデータを削除する処理を実行する。これにより、文書データのデータベースは、検索適合性の比較的高いデータに絞って登録されることになり、文書記憶部４００の記憶容量が無駄に増大することを防ぐことができる。
【００３８】
テキスト分割部３４０は、ユーザから入力された文書データを検索する際の見出しとなる索引単位に分割する処理を実行する。これにより、文書データは分割された索引単位と対応付けて登録されることとなる。
【００３９】
以下、テキスト分割部３４０による文書データ４１０ｂのテキスト分割について詳細を説明する。図５は、第１の実施の形態にかかる文書検索装置２００に入力された文書データ４１０ｂを索引単位４３０ａに分割する手順を示す概要図である。図５に示すように、テキスト分割部３４０は、入力された文書データ４１０ｂを名詞、助詞、動詞、接続詞、句読点など索引単位４３０ａに分割する。例文として、「私はねこが好きだけど、彼はいぬが好きだ。」を入力したとする。テキスト分割部３４０は、「私」「は」「ねこ」「が」「好き」などの索引単位４３０ａに分割する。
【００４０】
上述のように、文書データ４１０ｂを索引単位４３０ａに分割する一方で、それぞれの索引単位４３０ａの文書データ４１０ｂ上における出現位置を求める。すなわち、該当する索引単位４３０ａが、索引単位４３０ａを含む文書データ４１０ｂ上で何文字目に出現するかを数値化する。図５に示すように、上記の「私」「は」「ねこ」「が」「好き」は、それぞれ１文字目、２文字目と１３文字目、３文字目、５文字目と１６文字目、６文字目と１７文字目となる。従って、これらの数値が出現位置４３０ｂとなる。
【００４１】
以下に、転置ファイル４３０について、詳細を説明する。転置ファイル４３０は、上記のように求められた索引単位４３０ａと、索引単位４３０ａの文書データ４１０ｂ上の出現位置４３０ｂと、を対応付けて登録するものである。転置ファイル４３０は、登録、検索及び削除の処理時間を所定時間以下に維持するため複数のファイルで構成され、各転置ファイル４３０に転置ファイル識別番号４２０ｇが付されている。
【００４２】
図６は、第１の実施の形態にかかる文書検索装置２００の転置ファイル４３０の記憶構造を示す概要図である。転置ファイル４３０は、索引単位４３０ａと、文書識別番号４１０ａと、出現位置４３０ｂと、を対応付けて登録する構成となっている。
【００４３】
これまで述べたように、第１の実施の形態にかかる文書検索装置２００は、文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０と、からなる記憶構造を備えている。更に、転置ファイル４３０は、複数のファイルに分割された記憶構造を備えており、各ファイルに固有の転置ファイル識別番号４２０ｇを有する。
【００４４】
上記のような記録構造を備えたことにより、登録されるデータが増えていっても、登録対象のファイルサイズが膨大になることを防ぐことができる。前述の文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０と、からなる記憶構造を備えたことにより、文書データ４１０ｂおよび文書データ４１０ｂをテキスト分割した索引単位４３０ａと、索引単位の出現位置４３０ｂの登録、検索及び削除の処理時間が増大していくことを防ぐことができる。
【００４５】
なお、文書データファイル４１０と、文書長ファイル４２０は、文書識別番号４１０ａによってソートされたＢ木データ構造を有し、転置ファイル４３０は、文書識別番号４１０ａによってソートされたＢ木データ構造もしくは索引単位４３０ａをキーとしたハッシュテーブル構造を有することが検索性能の上で望ましい。
【００４６】
Ｂ木データ構造は、「多進木データ構造」とも言われ、記憶するデータ間の各ノードのつながりに、一定の大小関係を持って構成する。ノード間に一定の大小関係があるおかげで、データ探索時に余計なノードにアクセスすることなく、データ探索時にアクセス回数を大幅に減らせ、本実施の形態にかかるデータの登録、検索及び削除の処理時間削減の効果をより高めることができる。
【００４７】
また、ハッシュテーブル構造は、記憶したデータの中でキーとなる項目を選択し、キーに対応するデータを迅速に検索するためのデータ構造である。前述のように、転置ファイル４３０は索引単位４３０ａを記憶しており、索引単位４３０ａをキーとしたハッシュテーブル構造を採用すれば、索引単位４３０ａを迅速に探索することが可能となり、本実施の形態にかかるデータの登録、検索及び削除の処理時間削減の効果をより高めることができる。
【００４８】
このように、各ファイル内部のデータ構造については、第１の実施の形態にかかる文書検索装置２００の登録、検索及び削除の処理時間削減の使用目的にあわせ、最適の方式を選択することが可能である。もちろん、本実施の形態にかかる文書検索装置の技術の可否は、このデータ構造の選択に依存するものではない。
【００４９】
図２に戻り、登録処理部３１０は、文書記憶部４００への文書データ４１０ｂと、索引単位４３０ａと、索引単位４３０ａの出現位置４３０ｂと、の登録処理を指示するものである。第１の実施の形態にかかる文書検索装置２００では、登録処理部３１０があらかじめ定められた転置ファイル４３０へのファイルアクセス順で、索引単位４３０ａと、文書識別番号４１０ａと、出現位置４３０ｂを所定の転置ファイル４３０に登録する処理を実行する。
【００５０】
登録処理部３１０は、索引単位４３０ａの文書データ４１０ｂにおける出現位置４３０ｂを求める処理、求められたデータ全てを文書識別番号４１０ａ、及び転置ファイル識別番号４２０ｇによって対応付けることにより、文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０にそれぞれ対応付けて登録する処理の全てを実行する。
【００５１】
転置ファイル４３０が前述のごとく、Ｂ木データ構造またはハッシュテーブル構造を有している場合、登録処理部３１０は、次回の登録、検索及び削除の処理時間を短縮するために、転置ファイル４３０内部の既存データを検索し、記憶する位置を探索する処理も実行する。
【００５２】
このような登録処理の結果、転置ファイル４３０は、索引単位４３０ａを登録したデータベースとして構築されていくこととなる。通常、登録されるデータが増えていけばいくほど、転置ファイル４３０のファイルサイズが大きくなっていき、転置ファイル４３０に記憶する処理時間が増大していくが、前述のごとく、転置ファイル４３０は複数に分割した記憶構造を有しているため、記憶処理時間の増大を所定時間以下に抑えることができる。
【００５３】
図２において、検索処理部３３０は、文書記憶部４００に登録されている文書データ４１０ｂおよび分割された索引単位４３０ａに基づいて、文書データ４１０ｂおよび検索条件１３０で指定された検索実行を指示するものである。検索処理部３３０は、ユーザが入力した文書データ４１０ｂと検索条件１３０に対して、登録処理部３１０によって文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０に登録されたデータの検索を実行する。
【００５４】
検索条件１３０は、「単語一致」「文節一致」「文章一致」など検索時に指定される条件である。実際は、検索処理は検索条件に合わせて実行され、検索条件の変更は、索引単位４３０ａの単独、もしくは複数の索引単位４３０ａの合成のいずれかを選択されることとなる。第１の実施の形態にかかる文書検索装置２００においては、テキスト分割された最小単位の索引単位４３０ａに対して検索を実行されるものとして詳細を説明する。
【００５５】
検索処理を実行する場合、ユーザが入力したデータと照合した検索結果の重要度が非常に重要である。重要度は、どれだけ検索対象に適合したデータであるかを示しており、検索結果の重要度を示す指標として、検索適合率が算出される。検索結果を表示する際に、検索適合率の高いデータを先頭に、検索適合率の降順に表示することによって、最も重要度の高いデータから、重要度の序列で表示することができる。
【００５６】
従って、検索処理を実行した場合、検索適合率のスコアを算出し、スコアの高いデータを先頭に降順で検索結果を表示する。検索適合率のスコアは、検索される索引単位４３０ａの重要度を表し、以下の（１）式に従って算出される。
【００５７】
【数１】
2008234204.tif 000003
【００５８】
（１）式は、検索適合率のスコア算出式であり、全ての数値を代入することで検索対象の索引単位４３０ａの検索適合率を算出する。（１）式に含まれる文書内出現頻度tfijと、文書数dfiは、転置ファイル４３０に登録された索引単位４３０ａと、出現位置４３０ｂとの対応付けから求められる。また、文書長ｌjは、文書長ファイル４２０に登録した文書長４２０ｆである。転置ファイル４３０内の該当する索引単位４３０ａに対応付けられた文書識別番号４１０ａを文書長ファイル４２０内で探索することによって、該当する文書長ｌjを求める。
【００５９】
更に、全文書数Ｎは、文書長ファイル４２０のヘッダー領域４２０ａに記憶した全文書数４２０ｅである。平均文書長Ｌは、全文書長４２０ｄを全文書数４２０ｅで除算することによって求められるので、文書長ファイル４２０のヘッダー領域４２０ａに記憶した全文書長４２０ｄと、全文書数４２０ｅと、から算出する。（１）式にこれらの数値を代入することによって、検索適合率スコアは算出される。
【００６０】
前述のように、文書長ファイル４２０のヘッダー領域４２０ａに全文書長４２０ｄ、全文書数４２０ｅを記憶し、常に更新することにより、検索適合率スコアを迅速に算出することが可能となる。検索適合率のスコア算出の処理時間が短縮されれば、同時に検索処理時間も短縮されることとなる。
【００６１】
このように、検索処理部３３０は、ユーザが入力したデータに対して、登録されたデータの検索を実行し、検索適合した各データに対して検索適合率を算出し、検索適合率の高いデータを先頭に降順で検索結果を表示することができる。ユーザは、その検索結果を見て、検索結果のデータ取り扱いを判断することができる。
【００６２】
図２において、削除処理部３２０は、文書記憶部４００に登録されている文書データ４１０ｂおよび分割された索引単位４３０ａの削除処理を指示するものである。前述のように、登録処理部３１０が文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０にユーザが入力するデータを随時登録していく。登録されたデータが増えていけばいくほど、文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０はファイルサイズが大きくなっていく。
【００６３】
前述のように、転置ファイル４３０は、複数のファイル構成とすることにより、ファイルサイズの増大を防ぎ、登録及び検索の処理時間の増大を防ぐという記憶構造を有している。また、文書データファイル４１０と、文書長ファイル４２０についても同様にファイルサイズの増大を防ぐ必要がある。従って、登録されたデータの中で重要度の低いデータを削除することにより、登録される全体のデータ容量を制限し、文書記憶部４００の文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０全体としてファイルサイズの増大を防ぐことができる。
【００６４】
削除処理部３２０は、文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０に登録された文書データ４１０ｂ、もしくは索引単位４３０ａのうち、前述の検索処理部３３０による検索処理の結果、検索適合率の極めて低い文書データ４１０ｂ、もしくは索引単位４３０ａを抽出し、それらのデータを「検索非適合」と判断して削除対象として抽出し、削除する。この削除処理により、文書データファイル４１０と、文書長ファイル４２０と、転置ファイル４３０と、からなる文書記憶部４００は、検索適合率の極めて低いデータまで登録しておく必要はなく、文書記憶部４００全体のデータ容量を所定容量以下に制限し、結果的に登録及び検索の処理時間を所定時間以下に制限することができる。
【００６５】
以下、第１の実施の形態にかかる文書検索装置２００の登録処理部３１０が主に実行する登録処理フローについて詳細を説明する。図７は、第１の実施の形態にかかる文書検索装置２００の登録処理動作を示すフローチャートである。
【００６６】
最初に、クライアントＰＣ１００の入力部１１０からユーザによる文書データ４１０ｂの入力を受け付けると（ステップＳ１００）、登録処理部３１０が、文書データ４１０ｂに文書識別番号４１０ａを付けて文書データファイル４１０に登録する（ステップＳ１０１）。そして、テキスト分割部３４０が、文書データ４１０ｂを索引単位４３０ａに分割する（ステップＳ１０２）。図５に示したように、次に、登録処理部３１０が、分割された索引単位４３０ａの文書データ４１０ｂ内の出現位置４３０ｂを求める（ステップＳ１０３）。また、登録処理部３１０が、転置ファイル４３０のあらかじめ定められたファイルに文書識別番号４１０ａと、索引単位４３０ａと、各索引単位４３０ａの出現位置４３０ｂと、を対応付けて登録する（ステップＳ１０４）。
【００６７】
なお、登録する転置ファイル４３０のファイル選定については、あらかじめ定めた複数の転置ファイル４３０のアクセス順位に従って行われる。次に、登録処理部３１０が、全ての索引単位４３０ａを登録したかどうかを判定する（ステップＳ１０５）。全ての登録処理が終了していない場合（ステップＳ１０５：ＮＯ）、ステップＳ１０４に戻って、登録処理部３１０が、全ての索引単位４３０ａを登録するまで、ステップＳ１０４の登録処理を継続する。また、全ての登録処理が終了した場合（ステップＳ１０５：ＹＥＳ）、登録処理部３１０が、索引単位４３０ａを登録した転置ファイル４３０の転置ファイル識別番号４２０ｇを取得する（ステップＳ１０６）。
【００６８】
次に、登録処理部３１０が、文書長ファイル４２０のリスト領域４２０ｂに文書識別番号４１０ａと、文書長４２０ｆと、転置ファイル識別番号４２０ｇと、を対応付けて登録する（ステップＳ１０７）。そして、登録処理部３１０が、文書データファイル４１０に登録された全ての文書データ４１０ｂを対象に、全ての文書データ４１０ｂの文書長の総和である全文書長４２０ｄ、全ての文書データ４１０ｂの総文書数である全文書数４２０ｅを算出する（ステップＳ１０８）。最後に、登録処理部３１０が、文書長ファイル４２０のヘッダー領域４２０ａに記憶された最も直近に登録された転置ファイル識別番号４２０ｃ、全文書長４２０ｄ、全文書数４２０ｅのデータを更新し、プログラムを終了する（ステップＳ１０９）。
【００６９】
以下、第１の実施の形態にかかる文書検索装置２００の検索処理部３３０が主に実行する検索処理フローについて詳細を説明する。図８は、第１の実施の形態にかかる文書検索装置２００の検索処理動作を示すフローチャートである。
【００７０】
最初に、クライアントＰＣ１００の入力部１１０からユーザによる文書データ４１０ｂの入力を受け付けると（ステップＳ２００）、テキスト分割部３４０が、検索条件１３０に合わせて、文書データ４１０ｂを索引単位４３０ａに分割する（ステップＳ２０１）。次に、検索処理部３３０が、該当する索引単位４３０ａが含まれる転置ファイル４３０を探索する（ステップＳ２０２）。そして、検索処理部３３０が、検索対象の索引単位４３０ａの文書データ４１０ｂ内における出現位置４３０ｂから、文書内出現頻度tfijと文書数dfiをカウントする（ステップＳ２０３）。さらに、検索処理部３３０が、文書内出現頻度tfijが０かどうかを判定する（ステップＳ２０４）。文書内出現頻度tfijが０でなければ（ステップＳ２０４：ＮＯ）、検索処理部３３０が、（１）式の記号に全ての数値を代入して、検索適合率のスコアを算出する（ステップＳ２０５）。
【００７１】
また、文書内出現頻度tfijが０であれば（ステップＳ２０４：ＹＥＳ）、検索適合率スコアは０となるのでステップＳ２０６へジャンプする。そして、検索処理部３３０が、全ての転置ファイル４３０を検索したか判定する（ステップＳ２０６）。全てを検索していなければ（ステップＳ２０６：ＮＯ）、ステップＳ２０２に戻り、検索処理部３３０が、転置ファイル４３０探索を継続する。全てを検索終了すれば（ステップＳ２０６：ＹＥＳ）、検索処理部３３０が、全ての転置ファイル４３０から求めた検索適合率のスコアを算出する（ステップＳ２０７）。
【００７２】
次に、検索処理部３３０が、全ての転置ファイル４３０から求めた検索結果を検索適合率のスコアでソートする（ステップＳ２０８）。そして、検索処理部３３０が、全ての索引単位４３０ａを検索したか判定する（ステップＳ２０９）。全てを検索していなければ（ステップＳ２０９：ＮＯ）、ステップＳ２０２に戻り、検索処理部３３０が、転置ファイル４３０探索を継続する。全てを検索終了すれば（ステップＳ２０９：ＹＥＳ）、検索処理部３３０が、検索結果を検索適合率スコアでソートして表示出力する（ステップＳ２１０）。
【００７３】
以下、第１の実施の形態にかかる文書検索装置２００の削除処理部３２０が主に実行する削除処理フローについて詳細を説明する。図９は、第１の実施の形態にかかる文書検索装置２００の削除処理動作を示すフローチャートである。
【００７４】
最初に、削除処理部３２０が、文書データファイル４１０から、削除対象の文書データ４１０ｂの文書識別番号４１０ａを取得する（ステップＳ３００）。次に、テキスト分割部３４０が、削除対象の文書データ４１０ｂを索引単位４３０ａに分割する（ステップＳ３０１）。そして、削除処理部３２０が、文書長ファイル４２０のリスト領域４２０ｂを参照して、ステップＳ３００で取得した文書識別番号４１０ａに対応する転置ファイル識別番号４２０ｇを取得する（ステップＳ３０２）。さらに、削除処理部３２０が、ステップＳ３０２で取得した転置ファイル識別番号４２０ｇの転置ファイル４３０を読み出す（ステップＳ３０３）。
【００７５】
次に、削除処理部３２０が、読み出した転置ファイル４３０内に削除対象の文書データ４１０ｂを分割した索引単位４３０ａが含まれるどうかを判定する（ステップＳ３０４）。含まれていなければ（ステップＳ３０４：ＮＯ）、ステップＳ３００に戻って、削除処理部３２０が、削除対象の文書データ４１０ｂに該当する文書識別番号４１０ａの取得を繰り返す。含まれていれば（ステップＳ３０４：ＹＥＳ）、削除処理部３２０が、削除対象の索引単位４３０ａと、該当する文書識別番号４１０ａが共に含まれる行を転置ファイル４３０から削除する（ステップＳ３０５）。
【００７６】
次に、削除処理部３２０が、削除された索引単位４３０ａが含まれていた転置ファイル識別番号４２０ｇを取得する（ステップＳ３０６）。そして、削除処理部３２０が、ステップＳ３００で取得した文書識別番号４１０ａと、ステップＳ３０６で取得した転置ファイル識別番号４２０ｇが共に含まれる行を文書長ファイル４２０のリスト領域４２０ｂから削除する（ステップＳ３０７）。
【００７７】
次に、削除処理部３２０が、文書長ファイル４２０のヘッダー領域４２０ａに記述された最も直近に登録された転置ファイル４３０の転置ファイル識別番号４２０ｃ、登録されている全ての文書長４２０ｆを合計した全文書長４２０ｄ、登録されている全ての文書データ４１０ｂの総数である全文書数４２０ｅを更新する（ステップＳ３０８）。最後に、削除処理部３２０が、ステップＳ３００で取得した文書識別番号４１０ａが含まれる行を文書データファイル４１０から削除する（ステップＳ３０９）。
【００７８】
上述のように、登録処理部３１０と、検索処理部３３０と、削除処理部３２０が、連携して処理を実行することにより、文書検索装置として無駄なデータを省き、ユーザにとって重要度の高いデータのみを記憶しておき、効率の高い検索機能を実現することができる。
【００７９】
以上述べたように、第１の実施の形態にかかる文書検索装置においては、クライアントＰＣ１００の入力部１１０にユーザから入力された文書データ４１０ｂを索引単位４３０ａに分割し、文書記憶部４００の文書データファイル４１０と、文書長ファイル４２０と、複数の転置ファイル４３０と、にそれぞれ対応付けて登録する。ここで、登録処理部３１０が文書記憶部４００へのこれら一連の登録動作を実行し、検索処理部３３０が登録されたデータベースにアクセスして検索処理を実行し、削除処理部３２０がデータベースの不要データ削除を実行する。
【００８０】
このように、文書記憶部４００において分割処理されたデータベースを構築することにより、個々のファイルが大きなファイルサイズにならず、所定サイズ以下に制限されたファイルが作成される。登録、検索及び削除の処理時間はファイルサイズに比例するので、データ量が膨大になっても処理時間は所定時間以下となる。
【００８１】
従って、第１の実施の形態によれば、文書処理部３００の各部が実行する処理は、重要度の高いデータを記憶するように、文書記憶部４００を維持管理する。一方、文書記憶部４００の各部の記憶構造は、ファイル分割記憶を実行し、登録されるデータ量が増加しても登録、検索及び削除の処理時間を所定時間以下に維持する。これらの効果により、非常に効率の高い文書検索機能を実現することができる。
【００８２】
（第２の実施の形態）
以下、第２の実施の形態にかかる文書検索装置について説明する。第２の実施の形態が第１の実施の形態と異なる点は、登録処理部３６０による転置ファイル４３０の作成手順である。第２の実施の形態においては、登録処理部３６０が転置ファイル４３０のファイルサイズを検出し、所定ファイルサイズを超えたら、新規ファイルを作成し、登録する手順を実行する。
【００８３】
図１０は、第２の実施の形態にかかる文書検索装置２１０の概略構成を示すブロック図である。第２の実施の形態にかかる文書検索装置２１０は、文書処理部３５０と、文書記憶部４００と、を備えている。更に、クライアントＰＣ１００側に入力部１１０と、出力部１２０と、を備えている。第２の実施の形態にかかる文書検索装置２１０においては、文書処理部３５０内部の登録処理部３６０が第１の実施の形態と異なる。
【００８４】
文書処理部３５０は、第１の実施の形態にかかる文書処理部３００と同様、文書記憶部４００への文書データの登録、検索及び削除と、文書データのテキスト分割を処理しており、登録処理部３６０と、削除処理部３２０と、検索処理部３３０と、テキスト分割部３４０と、を備えている。以上、登録処理部３６０以外の要素は第１の実施の形態と同様であるため、同じ要素は同じ符号で示し、説明を省略する。
【００８５】
第２の実施の形態にかかる文書検索装置２１０では、登録処理部３６０は、文書記憶部４００への登録処理時に、最も直近に登録した転置ファイル４３０のファイルサイズが所定容量を超えるまでは当該ファイルに索引単位４３０ａと、文書識別番号４１０ａと、出現位置４３０ｂと、を登録する処理を実行する。一方、最も直近に登録した転置ファイル４３０のファイルサイズが所定容量を超えたら、新規ファイルを作成し、当該新規ファイルに索引単位４３０ａと、文書識別番号４１０ａと、出現位置４３０ｂと、を登録する処理を実行する。
【００８６】
前述の登録処理を実行することにより、登録されるデータ数が増えていけばいくほど、転置ファイルの個数は増えていくが、一ファイルのファイルサイズは予め設定した所定ファイルサイズ以下に限定される。その結果、登録、検索及び削除の処理時間をある所定時間以下に制限することができる。
【００８７】
第２の実施の形態にかかる文書検索装置２１０の登録処理部３６０が主に実行する登録処理フローについて詳細を説明する。図１１は、第２の実施の形態にかかる文書検索装置２１０の登録処理動作を示すフローチャートである。
【００８８】
最初に、クライアントＰＣ１００の入力部１１０からユーザによる文書データ４１０ｂの入力を受け付けると（ステップＳ４００）、登録処理部３６０が、入力部１１０に入力された文書データ４１０ｂに文書識別番号４１０ａを付けて文書データファイル４１０に登録する（ステップＳ４０１）。次に、登録処理部３６０が、文書長ファイル４２０のヘッダー領域４２０ａに記述された最も直近に登録された転置ファイル４３０の転置ファイル識別番号４２０ｇを参照して、該当する転置ファイル４３０を読み出す（ステップＳ４０２）。さらに、登録処理部３６０が、最も直近に登録した転置ファイル４３０のファイルサイズが規定サイズより大きいかどうかを判定する（ステップＳ４０３）。
【００８９】
次に、ステップＳ４０３において、転置ファイル４３０が規定ファイルサイズを超えていなければ（ステップＳ４０３：ＮＯ）、登録処理部３６０が、文書長ファイル４２０のリスト領域４２０ｂに文書識別番号４１０ａと、文書長４２０ｆと、転置ファイル識別番号４２０ｇと、を登録する（ステップＳ４０４）。一方、転置ファイル４３０が規定ファイルサイズを超えていれば（ステップＳ４０３：ＹＥＳ）、登録処理部３６０が、新規の転置ファイル４３０を作成する（ステップＳ４０５）。次に、登録処理部３６０が、新規の転置ファイル識別番号４２０ｇを取得する（ステップＳ４０６）。さらに、ステップＳ４０４に行き、登録処理部３６０が、文書長ファイル４２０のリスト領域４２０ｂに文書識別番号４１０ａと、文書長４２０ｆと、転置ファイル識別番号４２０ｇと、を登録する（ステップＳ４０４）。
【００９０】
次に、テキスト分割部３４０が、文書データ４１０ｂを索引単位４３０ａに分割する（ステップＳ４０７）。そして、登録処理部３６０が、分割された索引単位４３０ａの文書データ４１０ｂ上の出現位置４３０ｂを求める（ステップＳ４０８）。さらに、登録処理部３６０が、ステップＳ４０３〜Ｓ４０６で定めた転置ファイル４３０に、ステップＳ４０８で求めた索引単位４３０ａと、出現位置４３０ｂと、を全て登録する（ステップＳ４０９）。さらに、登録処理部３６０が、全ての索引単位４３０ａを登録したか判定する（ステップＳ４１０）。
【００９１】
ステップＳ４１０において、登録未了であれば（ステップＳ４１０：ＮＯ）、ステップＳ４０９に戻り、登録処理部３６０が、転置ファイル４３０への登録処理を継続する。登録終了であれば（ステップＳ４１０：ＹＥＳ）、登録処理部３６０が、文書長ファイル４２０のヘッダー領域４２０ａに記述された最も直近に登録された転置ファイル４３０の転置ファイル識別番号４２０ｃ、登録されている全ての文書長を合計した全文書長４２０ｄ、登録されている全ての文書データ４１０ｂの総数である全文書数４２０ｅを更新する（ステップＳ４１１）。
【００９２】
以上述べたように、第２の実施の形態によれば、登録処理部３６０が、文書記憶部４００内部の転置ファイル４３０のうち最も直近に登録されたファイルが所定のファイルサイズを超えたら、新規の転置ファイル４３０を作成して登録処理を実行する。第２の実施の形態にかかる登録処理部３６０を備えたことにより、転置ファイル４３０を所定ファイルサイズ以下の複数のファイルに分割記憶し、文書検索装置全体として登録データが増加しても登録及び検索の処理時間を所定時間以下に維持する文書検索機能を実現することができる。
【００９３】
（第３の実施の形態）
以下、第３の実施の形態にかかる文書検索装置について説明する。第３の実施の形態が第１の実施の形態と異なる点は、登録処理部３８０による転置ファイル４３０の作成手順である。第３の実施の形態においては、登録処理部３８０が転置ファイル４３０の各ファイルへのファイルアクセス時間が均等になるようにラウンドロビン方式で登録対象ファイルを選択し、登録する手順を実行する。
【００９４】
図１２は、第３の実施の形態にかかる文書検索装置２２０の概略構成を示すブロック図である。第３の実施の形態にかかる文書検索装置２２０は、文書処理部３７０と、文書記憶部４００と、を備えている。更に、クライアントＰＣ１００側に入力部１１０と、出力部１２０と、を備えている。第３の実施の形態にかかる文書検索装置２２０においては、文書処理部３７０内部の登録処理部３８０が第１の実施の形態と異なる。
【００９５】
文書処理部３７０は、第１の実施の形態にかかる文書処理部３００と同様、文書記憶部４００への文書データの登録、検索及び削除と、文書データのテキスト分割を処理しており、登録処理部３８０と、削除処理部３２０と、検索処理部３３０と、テキスト分割部３４０と、を備えている。以上、登録処理部３８０以外の要素は第１の実施の形態と同様であるため、同じ要素は同じ符号で示し、説明を省略する。
【００９６】
第３の実施の形態にかかる文書検索装置２２０では、登録処理部３８０が転置ファイル４３０を予め所定数のファイルで構成するように作成しておき、各ファイルのファイルアクセス時間が均等になるようにラウンドロビン方式で登録対象ファイルを選択し、索引単位４３０ａと、文書識別番号４１０ａと、出現位置４３０ｂと、を登録対象の転置ファイル４３０に登録する処理を実行する。
【００９７】
登録処理部３８０は、上述の登録処理と同時に、文書長ファイル４２０のヘッダー領域４２０ａに記述された最も直近に登録された転置ファイル４３０の転置ファイル識別番号４２０ｃを常時更新することにより、次の登録対象の転置ファイルの選択を容易にしている。
【００９８】
前述の登録処理を実行することにより、登録されるデータ数が増えていけばいくほど、予め所定数に設定した各転置ファイルのファイルサイズは大きくなっていくが、どのファイルに対しても、ファイルアクセス時間は予め設定した均等時間に制限され、長時間で通してみると、どのファイルでもファイルアクセス時間はほぼ同じとなる。その結果、検索対象に関わらず、登録、検索及び削除の処理時間をある所定時間以下に制限することができる。
【００９９】
第３の実施の形態にかかる文書検索装置２２０の登録処理部３８０が主に実行する登録処理フローについて詳細を説明する。図１３は、第３の実施の形態にかかる文書検索装置２２０の登録処理動作を示すフローチャートである。
【０１００】
最初に、クライアントＰＣ１００の入力部１１０からユーザによる文書データ４１０ｂの入力を受け付けると（ステップＳ５００）、登録処理部３８０が、入力部１１０に入力された文書データ４１０ｂに文書識別番号４１０ａを付けて文書データファイル４１０に登録する（ステップＳ５０１）。次に、登録処理部３８０が、文書長ファイル４２０のヘッダー領域４２０ａに記述された最も直近に登録された転置ファイル４３０の転置ファイル識別番号４２０ｇを参照して、該当する転置ファイル４３０を読み出す（ステップＳ５０２）。そして、テキスト分割部３４０が、文書データ４１０ｂを索引単位４３０ａに分割する（ステップＳ５０３）。
【０１０１】
次に、登録処理部３８０が、分割された索引単位４３０ａの文書データ４１０ｂ上の出現位置４３０ｂを求める（ステップＳ５０４）。そして、登録処理部３８０が、ステップＳ５０２で読み出した転置ファイル４３０に、ステップＳ５０４で求めた索引単位４３０ａと出現位置４３０ｂを全て登録する（ステップＳ５０５）。さらに、登録処理部３８０が、全ての索引単位４３０ａを登録したか判定する（ステップＳ５０６）。登録未了であれば（ステップＳ５０６：ＮＯ）、ステップＳ５０５に戻り、登録処理部３８０が登録処理を継続する。
【０１０２】
一方、登録終了であれば（ステップＳ５０６：ＹＥＳ）、登録処理部３８０が、文書長ファイル４２０のリスト領域４２０ｂに文書識別番号４１０ａ、文書長４２０ｆ、転置ファイル識別番号４２０ｇを登録する（ステップＳ５０７）。次に、登録処理部３８０が、文書長ファイル４２０のヘッダー領域４２０ａに記述された最も直近に登録された転置ファイル４３０の転置ファイル識別番号４２０ｃ、登録されている全ての文書長を合計した全文書長４２０ｄ、登録されている全ての文書データ４１０ｂの総数である全文書数４２０ｅを更新する（ステップＳ５０８）。
【０１０３】
以上述べたように、第３の実施の形態によれば、登録処理部３８０が、文書記憶部４００内部の転置ファイル４３０を予め所定数のファイルで構成し、各ファイルに対するアクセス時間が均等化されたラウンドロビン方式で登録対象の転置ファイル４３０を選択し、登録処理を実行する。第３の実施の形態にかかる登録処理部３８０を備えたことにより、転置ファイル４３０の各ファイルへのファイルアクセス時間を均等化することができ、文書検索装置全体として登録データが増加しても登録及び検索の処理時間を所定時間以下に維持する文書検索機能を実現することができる。
【０１０４】
なお、第１の実施の形態〜第３の実施の形態にかかる文書検索装置は、ＣＰＵなどの制御装置と、ＲＯＭ（Read Only Memory）やＲＡＭなどの記憶装置と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１０５】
第１の実施の形態〜第３の実施の形態にかかる文書検索装置で実行される文書検索プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１０６】
さらに、第１の実施の形態〜第３の実施の形態にかかる文書検索装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【０１０７】
第１の実施の形態〜第３の実施の形態にかかる文書検索装置で実行される文書検索プログラムは、上述した各部（登録処理部、検索処理部、削除処理部、テキスト分割部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記ＲＯＭからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、登録処理部、検索処理部、削除処理部およびテキスト分割部が主記憶装置上に生成されるようになっている。また、上述した文書記憶部４００内部の記憶構成をＨＤＤ等に展開する。
【０１０８】
なお、本発明は、上記の第１の実施の形態〜第３の実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【図面の簡単な説明】
【０１０９】
【図１】第１の実施の形態にかかる文書検索装置２００がネットワーク５００上に接続された状態を示す模式図である。
【図２】第１の実施の形態にかかる文書検索装置２００の概略構成を示すブロック図である。
【図３】第１の実施の形態にかかる文書検索装置２００の文書データファイル４１０の記憶構造を示す概要図である。
【図４】第１の実施の形態にかかる文書検索装置２００の文書長ファイル４２０の記憶構造を示す概要図である。
【図５】第１の実施の形態にかかる文書検索装置２００に入力された文書データ４１０ｂを索引単位４３０ａに分割する手順を示す概要図である。
【図６】第１の実施の形態にかかる文書検索装置２００の転置ファイル４３０の記憶構造を示す概要図である。
【図７】第１の実施の形態にかかる文書検索装置２００の登録処理動作を示すフローチャートである。
【図８】第１の実施の形態にかかる文書検索装置２００の検索処理動作を示すフローチャートである。
【図９】第１の実施の形態にかかる文書検索装置２００の削除処理動作を示すフローチャートである。
【図１０】第２の実施の形態にかかる文書検索装置２１０の概略構成を示すブロック図である。
【図１１】第２の実施の形態にかかる文書検索装置２１０の登録処理動作を示すフローチャートである。
【図１２】第３の実施の形態にかかる文書検索装置２２０の概略構成を示すブロック図である。
【図１３】第３の実施の形態にかかる文書検索装置２２０の登録処理動作を示すフローチャートである。
【符号の説明】
【０１１０】
１００  クライアントＰＣ
１１０  入力部
１２０  出力部
１３０  検索条件
１４０  検索結果
２００  文書検索装置
２１０  文書検索装置
２２０  文書検索装置
３００  文書処理部
３１０  登録処理部
３２０  削除処理部
３３０  検索処理部
３４０  テキスト分割部
３５０  文書処理部
３６０  登録処理部
３７０  文書処理部
３８０  登録処理部
４００  文書記憶部
４１０  文書データファイル
４１０ａ  文書識別番号
４１０ｂ  文書データ
４２０  文書長ファイル
４２０ａ  ヘッダー領域
４２０ｂ  リスト領域
４２０ｃ  最も直近に登録された転置ファイルの転置ファイル識別番号
４２０ｄ  全文書長
４２０ｅ  全文書数
４２０ｆ  文書長
４２０ｇ  転置ファイル識別番号
４３０  転置ファイル
４３０ａ  索引単位
４３０ｂ  出現位置
５００  ネットワーク
【図１】
2008234204.tif 000004
【図２】
2008234204.tif 000005
【図３】
2008234204.tif 000006
【図４】
2008234204.tif 000007
【図５】
2008234204.tif 000008
【図６】
2008234204.tif 000009
【図７】
2008234204.tif 000010
【図８】
2008234204.tif 000011
【図９】
2008234204.tif 000012
【図１０】
2008234204.tif 000013
【図１１】
2008234204.tif 000014
【図１２】
2008234204.tif 000015
【図１３】
2008234204.tif 000016