トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 文書管理装置および文書管理プログラムが格納された記憶媒体
【発明者】 【氏名】山下 晃弘

【要約】 【課題】全文インデックス情報を持たないで、全文検索を行うことができる文書管理装置および文書管理プログラムが格納された記憶媒体を提供すること。

【解決手段】制御部11は、フラットテキストデータの処理サイズNとセクションシリアル番号jを初期化し、文書ID51、セクションインデックス52、セクションシリアル番号jを、処理サイズNからN+Sfの分まで全文情報記憶部18の空きエントリに設定する(S900〜906)。セクションシリアル番号jが1でない場合(S908;N)、2重化テキスト長54をSdとして全文情報記憶部18に設定する(S910)。フラットテキストデータサイズが処理サイズN+Sfよりも大きい場合(S914;N)、NにSf−Sdを、jに1を足して(S916〜918)、フラットテキストデータ登録処理(S902〜912)を全てのフラットテキストデータを登録するまで繰り返す。
【特許請求の範囲】
【請求項1】 画像、文書などのファイルや検索したいデータを入力する入力手段と、前記入力手段によって入力されたファイル内のデータを所定のブロックに分割し、分割したブロックごとに文書名、入力日、画像、文書内容などの各データを登録して記憶するデータ記憶手段と、前記データ記憶手段に記憶されている各データを前記入力手段からの入力に基づいて検索するデータ検索手段と、前記データ検索手段による検索結果を表示する表示手段と、を備えたことを特徴とする文書管理装置。
【請求項2】 前記データ記憶手段が前記ファイル内の連続したデータを複数のブロックによって分割した場合、分割された他のブロックに同じ文書名、入力日、画像、文書内容などの各データを登録するデータ登録手段をさらに備えたことを特徴とする請求項1記載の文書管理装置。
【請求項3】 前記データ記憶手段が前記入力手段によって入力されたファイル内のデータを分割する際、句読点などの特定文字がファイル内に含まれる場合にはこの特殊文字の箇所でファイル内のデータを分割することを特徴とする請求項1または請求項2記載の文書管理装置。
【請求項4】 前記入力手段によって入力されたファイル内のデータの数字、全角、半角、ハイフン、長音などの文字コードを認識する認識手段をさらに備えたことを特徴とする請求項1、請求項2、請求項3のうちいずれか1に記載の文書管理装置。
【請求項5】 前記データ記憶手段は、前記認識手段によって認識された各ファイル内のデータを所定のブロックに分割することを特徴とする請求項4記載の文書管理装置。
【請求項6】 画像、文書などのファイルや検索したいデータを入力する入力機能と、前記入力機能によって入力されたファイル内のデータを所定のブロックに分割し、分割したブロックごとに文書名、入力日、画像、文書内容などの各データを登録して記憶する記憶機能と、前記記憶機能に記憶されている各データを前記入力手段からの入力に基づいて検索する検索機能と、前記検索機能による検索結果を表示する表示機能と、をコンピュータに実現させるためのコンピュータ読み取り可能な文書管理プログラムが格納された記憶媒体。
【請求項7】 前記記憶機能によって前記ファイル内の連続したデータが複数のブロックによって分割された場合、分割された他のブロックに同じ文書名、入力日、画像、文書内容などの各データを登録する登録機能をさらに備えたことを特徴とする請求項6記載の文書管理プログラムが格納された記憶媒体。
【請求項8】 前記記憶機能によって前記入力機能で入力されたファイル内のデータが分割される場合、句読点などの特定文字がファイル内に含まれるときにはこの特殊文字の箇所でファイル内のデータを分割することを特徴とする請求項6または請求項7記載の文書管理プログラムが格納された記憶媒体。
【請求項9】 前記記憶機能によって入力されたファイル内のデータの数字、全角、半角、ハイフン、長音などの文字コードを認識する認識機能をさらに備えたことを特徴とする請求項6、請求項7、請求項8のうちいずれか1に記載の文書管理プログラムが格納された記憶媒体。
【請求項10】 前記記憶機能は、前記認識機能によって認識された各ファイル内のデータを所定のブロックに分割することを特徴とする請求項9記載の文書管理プログラムが格納された記憶媒体。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、文書管理装置および文書管理プログラムが格納された記憶媒体に係り、例えば、画像やアプリケーションファイルを文書として登録し、閲覧、検索をすることができる文書管理装置および文書管理プログラムが格納された記憶媒体に関する。
【0002】
【従来の技術】近年、パーソナルコンピュータの普及により、家庭、オフィスにおいて一人一台のパーソナルコンピュータを使用するようになっている。これによりオフィスでは、これら各自のパーソナルコンピュータがネットワークで接続され、各自が自分のパーソナルコンピュータからネットワーク接続された複数のパーソナルコンピュータのファイルを参照したり、様々な文書データをアクセスすることができるようになっている。このように各自のパーソナルコンピュータから様々な文書データやファイルをアクセスすることができるように、ネットワーク内の各パーソナルコンピュータのファイルやデータを一つの箇所で場所で管理するようになっている。
【0003】例えば、文書管理装置という専用のサーバをネットワーク内に設置し、ユーザは自分のパーソナルコンピュータからそのサーバにアクセスして文書の検索、閲覧などを行なうことができる。このようにパーソナルコンピュータの普及により、パーソナルコンピュータ上で手軽に文書管理を行うことができるアプリケーションなどが利用されている。このような文書管理装置では、文書を閲覧する際の補助として検索機能を保持している。一般的に、ユーザが検索、閲覧したい文書を検索する際、検索条件として文書名やキーワードなどの書誌情報を対象にする場合と、書誌情報を必要とせずに文書内の全文を対象にする場合の2つの場合がある。ところで、特開平5−101102号公報や特開平5−204993号公報には、全文検索を行う検索装置において、検索用に2次インデックス情報を保持し、そのインデックス情報を検索して、目的の文書を探し出す検索装置が記載されている。
【0004】
【発明が解決しようとする課題】しかしながら、上述のような全文検索可能な装置を機能としてパーソナルコンピュータなどに組み込むことは、以下のような理由から難しいものであった。例えば、ユーザが書誌情報を検索対象とする場合には、莫大なデータを必要とせず、内部の処理がそれほど複雑でないためパーソナルコンピュータ上でも文書管理装置を稼動させることも可能であるが、多くの文書情報が格納された文書検索装置上での動作を意識した従来技術の検索装置では、文書数が少ない場合にも検索に時間を要することがある。また、全文データ(以下、フラットテキストデータという)のほかにも全文検索用インデックス情報をさらに別に持つ必要があり、余分な情報も持たなければならがなかった。このようにフラットテキストデータを2重化して格納しているために、余分なデータを保持することになってしまう。
【0005】さらには、文書に複数の画像が存在する場合、文書に複数セクションのファイルが存在することになる。OCR(Optical Character Reader)技術などを利用することにより各画像からフラットテキストデータを抽出すると、それぞれの画像からデータを抽出して格納することになる。例えば、1頁の最後が「に関する技術」となっており、2頁の最初が「報告書が」とつながっていて複数の画像が一つの報告書になっており、文章は次のページ(画像)に続いているというような場合がある。このような場合に文書データが登録されると、登録ブロック内で「に関する技術」と「報告書が」がつながっていないために、ユーザがキーワードとして「技術報告書」を指定した場合、目的の文章が検索できないということがある。
【0006】一方、全文検索で使用するフラットテキストデータは自動的に抽出されるため、フラットテキストの文字列内の数字やアルファベットなどは、大文字/小文字や半角/全角の文字が混在する可能性が高く、特に、長音やハイフンはOCR技術でも認識率を向上させることが難しいものである。また、数字やアルファベット、大文字/小文字や半角/全角の文字などはそれぞれ文字コードが異なるため、従来の検索装置では一文字だけ大文字が小文字になっていたりするだけで違う文字と判断され、文書が検索できないことがある。そこで、フラットテキストデータ内の大文字/小文字や半角/全角、長音/ハイフンのあいまい性を考慮した全文検索のために、文字データの最適化をするフィルタをかけるようにすると、フィルタを通す処理が全文検索用ファイル内のフラットテキストデータ全てに対して行わなければならず、検索時間を要することになり、結果として検索時の性能が落ちてしまうことがある。また、全文検索時に指定するキーワードとしては句読点などの文字を使用しないため、そのような文字がある箇所でブロック間を分割すれば、フラットテキストを2重化する必要性がなくなる。
【0007】そこで、本発明の第1の目的は、全文インデックス情報を持たないで、処理能力が低いパーソナルコンピュータ上でも全文検索を行うことができる文書管理装置および文書管理プログラムが格納された記憶媒体を提供することである。本発明の第2の目的は、セクション(ファイル)間で文が分割されている場合にも全文検索が可能な文書管理装置および文書管理プログラムが格納された記憶媒体を提供することである。本発明の第3の目的は、セクション内ではフラットテキストデータを2重化せずに、全文検索用管理ファイルに登録可能な文書管理装置および文書管理プログラムが格納された記憶媒体を提供することである。本発明の第4の目的は、フラットテキストデータが大文字/小文字や半角/全角、長音/ハイフンの文字を区別することなく全文検索できる文書管理装置および文書管理プログラムが格納された記憶媒体を提供することである。本発明の第5の目的は、フラットテキストデータが大文字/小文字や半角/全角、長音/ハイフンの文字を区別することなく全文検索の性能を向上することができる文書管理装置および文書管理プログラムが格納された記憶媒体を提供することである。本発明の第6の目的は、文書管理プログラムを記録した記録媒体としても利用することができる文書管理装置および文書管理プログラムが記憶された記憶媒体を提供することである。
【0008】
【課題を解決するための手段】請求項1記載の発明では、画像、文書などのファイルや検索したいデータを入力する入力手段と、前記入力手段によって入力されたファイル内のデータを所定のブロックに分割し、分割したブロックごとに文書名、入力日、画像、文書内容などの各データを登録して記憶するデータ記憶手段と、前記データ記憶手段に記憶されている各データを前記入力手段からの入力に基づいて検索するデータ検索手段と、前記データ検索手段による検索結果を表示する表示手段と、を備えたことにより、前記第1の目的を達成する。
【0009】請求項2記載の発明では、請求項1記載の発明において、前記データ記憶手段が前記ファイル内の連続したデータを複数のブロックによって分割した場合、分割された他のブロックに同じ文書名、入力日、画像、文書内容などの各データを登録するデータ登録手段をさらに備えたことにより、前記第2の目的を達成する。
【0010】請求項3記載の発明では、請求項1または請求項2記載の発明において、前記データ記憶手段が前記入力手段によって入力されたファイル内のデータを分割する際、句読点などの特定文字がファイル内に含まれる場合にはこの特殊文字の箇所でファイル内のデータを分割することにより、前記第3の目的を達成する。
【0011】請求項4記載の発明では、請求項1、請求項2、請求項3のうちいずれか1に記載の発明において、前記入力手段によって入力されたファイル内のデータの数字、全角、半角、ハイフン、長音などの文字コードを認識する認識手段をさらに備えたことにより、前記第4の目的を達成する。
【0012】請求項5記載の発明では、請求項4記載の発明において、前記データ記憶手段は、前記認識手段によって認識された各ファイル内のデータを所定のブロックに分割することにより、前記第5の目的を達成する。
【0013】請求項6記載の発明では、画像、文書などのファイルや検索したいデータを入力する入力機能と、前記入力機能によって入力されたファイル内のデータを所定のブロックに分割し、分割したブロックごとに文書名、入力日、画像、文書内容などの各データを登録して記憶する記憶機能と、前記記憶機能に記憶されている各データを前記入力手段からの入力に基づいて検索する検索機能と、前記検索機能による検索結果を表示する表示機能と、を備えたことにより、前記第1および前記第6の目的を達成する。
【0014】請求項7記載の発明では、請求項6記載の発明において、前記記憶機能によって前記ファイル内の連続したデータが複数のブロックによって分割された場合、分割された他のブロックに同じ文書名、入力日、画像、文書内容などの各データを登録する登録機能をさらに備えたことにより、前記第2および前記第6の目的を達成する。
【0015】請求項8記載の発明では、請求項6または請求項7記載の発明において、前記記憶機能によって前記入力機能で入力されたファイル内のデータが分割される場合、句読点などの特定文字がファイル内に含まれるときにはこの特殊文字の箇所でファイル内のデータを分割することにより、前記第3および第6の目的を達成する。
【0016】請求項9記載の発明では、請求項6、請求項7、請求項8のうちいずれか1に記載の発明において、前記記憶機能によって入力されたファイル内のデータの数字、全角、半角、ハイフン、長音などの文字コードを認識する認識機能をさらに備えたことにより、前記第4および前記第6の目的を達成する。
【0017】請求項10記載の発明では、請求項9記載の発明において、前記記憶機能は、前記認識機能によって認識された各ファイル内のデータを所定のブロックに分割することにより、前記第5および前記第6の目的を達成する。
【0018】
【発明の実施の形態】以下、本発明の好適な実施の形態について、図1ないし図16を参照して詳細に説明する。図1は、本実施の形態に係る文書管理装置の構成を示したブロック図である。文書管理装置は、制御部11、表示部12、コマンド入力部13、システム情報記憶部14、文書情報記憶部15、セクションデータ記憶部16、セクション情報記憶部17、全文情報記憶部18を備えている。制御部11は、図示しないCPU(中央処理装置)、ROM(リード・オンリ・メモリ)、RAM(ランダム・アクセス・メモリ)などから構成されるマイクロコンピュータを内蔵し、文書管理装置の全体の制御を行う。表示部12は、検索結果文書一覧画面の表示、文書表示画面の表示などを行うCRT(Cathode Ray Tube display)、TFT(Thin Film Transistor)などのディスプレイ装置である。コマンド入力部13は、各種作業のコマンド入力およびデータ入力を行うキーボードまたはマウスなどの入力装置である。
【0019】システム情報記憶部14は、文書管理装置内で共通で使用するパラメータを保持している記憶装置である。文書情報記憶部15は、文書の書誌情報(文書名など)を記録する記憶装置である。セクションデータ記憶部16は、文書のセクションデータである画像やアプリケーションファイルなどのデータを記録する記憶装置である。セクション情報記憶部17は、セクション(ファイル)に関する詳細情報であるセクション名などを記録する記憶装置である。全文情報記憶部18は、文書の各セクションに対応するフラットテキストデータを記録する記憶装置である。
【0020】図2は、システム情報記憶部14におけるデータフォーマットの一例を示した図である。システム情報記憶部14は、フラットテキストデータサイズ(Sf)21と2重化データサイズ(Sd)22を格納している。これらの各データ値は、全文データの作成時に使用する値であり、文書管理装置内において共通のものとなっている。図3は、文書情報記憶部15におけるデータフォーマットの一例を示した図である。文書情報記憶部15は、文書ID31、文書名32、登録日33、セクション数34を格納している。
【0021】図4は、セクション情報記憶部17におけるデータフォーマットの一例を示した図である。セクション情報記憶部17は、文書ID41、セクションインデックス42、セクションデータへのポインタ43を格納している。また、文書ID41とリンクして、その文書ID41内のセクションと関連付けられている。さらには、セクションデータへのポインタ43とリンクしてセクションデータ記憶部16の中のデータと関連付けられている。図5は、全文情報記憶部18におけるデータフォーマットの一例を示した図である。全文情報記憶部18は、文書ID51、セクションインデックス52、セクションシリアル番号53、2重化テキスト長54、フラットテキストデータ55を格納している。また、文書ID51とセクションインデックス52とリンクして、その文書ID51における文書内のセクション内のフラットテキストデータ55と関連付けられている。セクションシリアル番号53は、セクション内のフラットテキストデータ55を複数レコードに分割して格納する際に、シーケンシャルに(順番に)振られた番号が格納されている。フラットテキストデータ55内には実際のテキストデータが格納されている。
【0022】以下、本実施の形態の文書管理装置の動作について説明する。図6は、文書登録を行う際の処理手順を示したフローチャートである。文書を登録する場合、ユーザが画像やアプリケーションのファイル名をコマンド入力部13において入力すると(ステップ600)、制御部11は、文書情報記憶部15に入力されたファイル名を記憶させる(ステップ602)。ここで、ユーザは複数個のファイルを登録することができ、全てのファイル登録が終わると(ステップ604;Y)、制御部11は、指定されたファイルをセクションとして登録するセクション登録処理が実行される(ステップ606)。次に、ユーザが文書名などの書誌情報を入力すると(ステップ608)、制御部11は、文書情報記憶部15に新規のエントリを追加し、ユーザが入力した文書名32や現在の日時を登録日33としてそのエントリに登録する(ステップ610)。また、ファイル数は文書情報記憶部15のセクション数34としてエントリに登録され(ステップ612)、制御部11によって全文検索で使用するデータである全文データ作成処理が実行される(ステップ614)。
【0023】次に、セクション登録処理および全文データ作成処理の詳細について、図7および図8のフローチャートを参照して説明する。図7は、セクション登録処理の処理手順を示したフローチャートである。まず、制御部11は、iに1をセットして(ステップ700)、i番目(1番目)の登録ファイル名を取得する(ステップ702)。そして、取得したファイル名の中のデータを取得後、セクションデータ記憶部16へセクションデータである画像やアプリケーションファイルなどのデータを登録する(ステップ704)。次に、セクション情報記憶部17にエントリを追加し、その前に格納したデータのセクションデータ記憶部16のセクションデータへのポインタ43とセクションインデックス42を登録する(ステップ706)。制御部11は、iに1を足して(ステップ708)、この1が足されたiと登録されているファイル数を比較する(ステップ710)。登録ファイル数よりもiが小さい場合(ステップ710;N)、制御部11はこのi番目のファイル名を取得し、セクション登録処理(ステップ702〜708)を登録されたファイル数分、すなわち登録ファイル数がiよりも大きくなるまで(ステップ710;Y)繰り返す。登録ファイル数よりもiが大きい場合(ステップ710;Y)、登録された全ての登録ファイルについてのセクション登録処理が終了したことになる。
【0024】図8は、全文データ作成処理の処理手順を示したフローチャートである。まず、制御部11は、システム情報記憶部14よりフラットテキストデータサイズ(Sf)21と2重化データサイズ(Sd)22を取得する(ステップ800)。次に、制御部11は、iに1をセットして(ステップ802)、セクション情報記憶部17のi番目(1番目)のセクションデータポインタ43に該当するセクションデータ記憶部16のセクションデータを取得する(ステップ804)。この取得したセクションデータからフラットテキストデータを抽出するOCR処理などの処理行う(ステップ806)。このフラットテキストデータの抽出処理は、セクション情報記憶部17の内部で行われ、例えば、セクションが画像の場合にはOCRなどの処理が行われてテキストデータが抽出されたり、アプリケーションファイルの場合にはアプリケーションに対してテキストだけ抽出したりする処理が行われる。そして、抽出されたフラットテキストデータの登録処理が実行される(ステップ808)。
【0025】次に、制御部11は、iに1を足して(ステップ810)、この1が足されたiとセクション数を比較する(ステップ812)。セクション数よりもiが大きい場合(ステップ812;N)、制御部11は、このi番目のセクションデータポインタに該当するセクションデータを取得し、フラットテキストデータ登録処理(ステップ804〜810)をセクション数分、すなわちiがセクション数よりも大きくなるまで(ステップ812;Y)繰り返す。セクション数よりもiが小さい場合(ステップ812;Y)、全てのセクション数についてのフラットテキストデータ登録処理が終了したことになる。
【0026】次に、フラットテキストデータ登録処理について図9のフローチャートを参照して説明する。図9は、フラットテキストデータ登録処理の第1の実施形態の処理手順を示したフローチャートである。まず、制御部11は、フラットテキストデータの処理サイズNとセクションシリアル番号53であるj(以下、セクションシリアル番号53をjとする)のそれぞれに1をセットして初期化する(ステップ900)。次に、全文情報記憶部18内の空きエントリを確保し(ステップ902)、文書ID51と、セクションインデックス52であるi(以下、セクションインデックス52をiとする)と、セクションシリアル番号jとを、処理サイズNからN+Sfの分まで全文情報記憶部18の空きエントリに設定する(ステップ904〜906)。
【0027】次に、制御部11は、セクションシリアル番号jが1であるかどうかを判断し(ステップ908)、セクションシリアル番号jが1の場合(ステップ908;Y)、フラットテキストデータが2重化されていないことになるため(図5参照)、2重化テキスト長54を0として全文情報記憶部18に設定する(ステップ912)。セクションシリアル番号jが1でない場合(ステップ908;N)、フラットテキストデータがSd分だけ2重化されていることになるため、2重化テキスト長54をSd、すなわち100として全文情報記憶部18に設定する(ステップ910)。そして、全てのフラットテキストを登録したかどうかの判断、すなわちフラットテキストデータサイズと処理サイズN+Sfを比較する(ステップ914)。
【0028】フラットテキストデータサイズが処理サイズN+Sfよりも大きい場合(ステップ914;N)、全てのフラットテキストを登録していないことになり、NにSf−Sdを加え(ステップ916)、jに1を足して(ステップ918)、フラットテキストデータを登録する処理(ステップ902〜912)を全てのフラットテキストデータを登録するまで(ステップ914;Y)、繰り返す。フラットテキストデータサイズが処理サイズN+Sfよりも小さい場合(ステップ914;Y)、全てのフラットテキストの登録が終了したことになり、処理を終了する。
【0029】図10は、全文検索を行う際の処理手順を示したフローチャートである。まず、ユーザがコマンド入力部13からキーワードを入力すると(ステップ1000)、制御部11は、入力されたキーワードに基づいて全文検索メイン処理を行う(ステップ1001)。そして、検索後に検索結果が表示部12に表示され(ステップ1002)、ユーザによって検索結果の一覧の中から文書が指定されると(ステップ1003;Y)、制御部11は、ユーザが閲覧することができるよう文書の内容を表示部12に表示する(ステップ1004)。検索結果や文書内容を閲覧したユーザが終了を指定すると(ステップ1005;Y)、全文検索処理が終了となる。
【0030】図11は、全文検索メイン処理の第2の実施形態の処理手順を示したフローチャートである。この全文検索メイン処理では、全文情報記憶部18内のフラットテキストデータを先頭より順次検索を行う。まず、全文情報記憶部18の先頭レコードにポインタを設定し(ステップ1100)、現在のレコードが空きレコードかどうかをチェックする(ステップ1102)。空きレコードかどうかを判断するには、例えば文書IDが特殊な空きレコード番号になっているかどうかをチェックすればわかるようになっている。空きレコードであった場合(ステップ1102;Y)、ユーザにその旨を表示して知らせる。
【0031】空きレコードでない場合(ステップ1102;N)、そのレコード内のフラットテキストデータを取得し、フラットテキストデータ内にユーザが指定したキーワードが含まれているかどうかを検索する(ステップ1104〜1106)。この検索では部分文字列一致関数などを用いることにより検索処理を行っており、既存の関数などで処理可能である。検索にヒットした場合、すなわち該当する文書があった場合(ステップ1108;Y)に、レコード内に記述されている文書IDがないときには、文書IDを検索結果に追加する(ステップ1110)。文書IDが検索結果にあるときは特に追加する必要はない。ユーザが終了を指定すると(ステップ1112;Y)、全文検索メイン処理が終了となる。ここで、ユーザが検索結果に満足せず、さらなる検索を指定すると(ステップ1112;N)、次のレコードにポインタを移動して全文検索メイン処理(ステップ1102〜1110)を全てのレコードについて実行するまで繰り返す。
【0032】図12は、フラットテキストデータ登録処理の第3の実施形態の処理手順を示したフローチャートである。まず、制御部11は、フラットテキストの処理サイズNとセクションシリアル番号jのそれぞれに1をセットして初期化する(ステップ1200)。次に、全文情報記憶部18内の空きエントリを確保し(ステップ1202)、文書IDとセクションインデックスiとセクションシリアル番号jとを、全文情報記憶部18の空きエントリに設定する(ステップ1204)。次に、セクションシリアル番号jが1より小さく、かつセクションシリアル番号jが1の場合(ステップ1206;N)、NからN+Sf−1までのフラットテキストデータを全文情報記憶部18のエントリに設定する(ステップ1208)。また、登録したフラットテキストの最後Sd個のデータをバッファBに格納する(ステップ1210)。そして、セクションシリアル番号iが1である場合(ステップ1212;Y)、フラットテキストは2重化されていないため、全文情報記憶部18の2重化テキスト長には0を設定し(ステップ1214)、そして、全てのフラットテキストを登録したかどうかを判断、すなわちフラットテキストデータサイズと処理サイズN+Sfを比較する(ステップ1218)。また、セクションシリアル番号iが1でない場合(ステップ1212;N)、フラットテキストは2重化されているので、全文情報記憶部18の2重化テキスト長をSdに設定し、全てのフラットテキストを登録したかどうかの判断に移行する(ステップ1218)。
【0033】フラットテキストデータサイズが処理サイズN+Sfよりも大きい場合(ステップ1218;N)、全てのフラットテキストを登録していないことになり、NにSf−Sdを加え(ステップ1220)、jに1を足して(ステップ1222)、フラットテキストデータを登録する処理(ステップ1202〜1216)を全てのフラットテキストデータを登録するまで(ステップ1218;Y)、繰り返す。フラットテキストデータサイズが処理サイズN+Sfよりも小さい場合(ステップ1218;Y)、全てのフラットテキストの登録が終了したことになり、処理を終了する。
【0034】一方、セクションシリアル番号iが1でなく、かつセクションシリアル番号jが1の場合(ステップ1206;Y)、最初にバッファBをエントリの先頭のSd個に右詰で設定する(ステップ1230)。ここで、右詰にバッファBを設定するのは、その前のセクションのフラットテキストデータがSd個に満たない場合があるためである。そして、Sd+1以降のNからN+Sf−Sd−1までのフラットテキストデータを全文情報記憶部18に設定する(ステップ1232)。そして、登録したフラットテキストの最後Sd個のデータをバッファBへ設定し(ステップ1234)、Sd分だけ2重化されていることになるので、全文情報記憶部18の2重化テキスト長をSdに設定し、先頭Sd個にはすでにデータが入っているため、フラットテキストデータがN+Sf−Sd−1よりも小さいか否かを、すなわち全てのフラットテキストを登録し終えたかどうかを判断する(ステップ1236)。
【0035】フラットテキストデータサイズがN+Sf−Sd−1よりも大きい場合(ステップ1234;N)、全てのフラットテキストを登録していないことになり、NにSf−2Sdを加え(ステップ1238)、jに1を足して(ステップ1240)、フラットテキストデータを登録する処理(ステップ1202〜1238)を全てのフラットテキストデータを登録するまで(ステップ1236;Y)、繰り返す。フラットテキストデータサイズがN+Sf−Sd−1よりも小さい場合(ステップ1236;Y)、全てのフラットテキストの登録が終了したことになり、処理を終了する。
【0036】図13は、フラットテキストデータ登録処理の第4の実施形態の処理手順を示したフローチャートである。まず、フラットテキストの処理サイズNとセクションシリアル番号jのそれぞれに1をセットし、2重化テキスト長Lを0にセットして初期化する(ステップ1300)。次に、全文情報記憶部18より空きエントリを確保し(ステップ1302)、文書IDとセクションインデックスiとセクション内シリアル番号jとを、全文情報記憶部18の空きエントリに設定する(ステップ1304)。次に、NからN+Sf−1までのフラットテキストデータをエントリに設定し、2重化テキスト長Lも設定する(ステップ1308)。そして、フラットテキストテキストデータサイズがN+Sfよりも小さいか否かを、すなわち全てのフラットテキストを登録し終えたかどうかを判断する(ステップ1310)。フラットテキストテキストデータサイズがN+Sfよりも大きい、すなわち全てのフラットテキストの登録を終えていない場合(ステップ1310;N)、N+Sf+SdからN+Sf−1までのデータの中に区切り文字(例えば、句読点、カンマ、ピリオドなど)があるかどうかをチェックする(ステップ1312)。ここで、なるべく後ろに区切り文字があるかどうかを考慮する方が、検索検索性能を向上することができ、無駄な2重化を防ぐことができる。
【0037】区切り文字が存在しない場合(ステップ1314;N)、2重化テキスト長LにSdを設定し(ステップ1316)、NにSf−Lを加え(ステップ1320)、jに1を足して(ステップ1322)、フラットテキストデータを登録する処理(ステップ1302〜1312)を全てのフラットテキストデータを登録するまで(ステップ1310;Y)、繰り返す。区切り文字がM番目に存在する場合(ステップ1314;Y)、2重化テキスト長LをSd−Mと設定し(ステップ1318)、NにSf−Lを加え(ステップ1320)、jに1を足して(ステップ1322)、フラットテキストデータを登録する処理(ステップ1302〜1312)を全てのフラットテキストデータを登録するまで(ステップ1310;Y)、繰り返す。このM番目に区切り文字が存在する場合には、Sf−LがSf−Sdよりも大きくなるため、検索検索性能を向上することができ、2重化による記憶領域の無駄を防ぐことができる。フラットテキストテキストデータサイズがN+Sfよりも小さい、(ステップ1310;Y)、全てのフラットテキストの登録が終了したことになり、処理を終了する。
【0038】図14は、全文検索メイン処理の第1の実施形態の処理手順を示したフローチャートである。まず、ユーザによって指定された検索のキーワードの文字コードの最適化処理を行う(ステップ1400)。この最適化処理とは、例えばアルファベットの小文字をaBcD→ABCDというように大文字に変換したり、半角の数字を全角の数字に変換したりするものである。そして、全文情報記憶部18の先頭レコードにポインタを設定し(ステップ1402)、現在のレコードが空きレコードかどうかをチェックする(ステップ1404)。空きレコードかどうかを判断するには、例えば文書IDが特殊な空きレコード番号になっているかどうかをチェックすればわかるようになっている。空きレコードであった場合(ステップ1404;Y)、ユーザにその旨を表示して知らせる。
【0039】空きレコードでない場合(ステップ1404;N)、そのレコードに格納されているフラットテキストデータを取得し(ステップ1406)、同様の文字コードの最適化処理を行う(ステップ1408)。次に、フラットテキスト内にユーザが指定したキーワードが含まれているかどうかを検索する(ステップ1410)。この検索では部分文字列一致関数などを用いることにより検索処理を行っており、既存の関数などで処理可能である。検索にヒットした場合(ステップ1412;Y)、レコード内に記述されている文書IDが検索結果にある場合は特に追加する必要はないが、文書IDがない場合、文書IDを検索結果に追加する(ステップ1414)。ユーザが終了を指定すると(ステップ1416;Y)、全文検索メイン処理が終了となる。ここで、ユーザが検索結果に満足せず、さらなる検索を指定すると(ステップ1416;N)、次のレコードにポインタを移動して全文検索メイン処理(ステップ1404〜1414)を、すべてのレコードについて実行するまで繰り返す。
【0040】図15は、全文データ作成処理の第2の実施形態の処理手順を示したフローチャートである。まず、制御部11は、システム情報記憶部14よりフラットテキストデータサイズ(Sf)21と2重化データサイズ(Sd)22を取得する(ステップ1500)。次に、iに1をセットして(ステップ1502)、セクション情報記憶部17のi番目(1番目)のセクションデータポインタに該当するセクションデータ記憶部16のセクションデータを取得する(ステップ1504)。次に、この取得したセクションデータからフラットテキストデータを抽出するOCR処理などの処理行う(ステップ1506)。そして、抽出されたフラットテキストに対して文字コードの最適化処理を行い(ステップ1508)、抽出されたフラットテキストデータの登録処理が実行される(ステップ1510)。
【0041】制御部11は、iに1を足して(ステップ1512)、この1が足されたiとセクション数を比較する(ステップ1514)。セクション数よりもiが小さい場合(ステップ1514;N)、制御部11は、このi番目のセクションデータポインタに該当するセクションデータを取得し、フラットテキストデータ登録処理(ステップ1504〜1512)をセクション数分、すなわちiがセクション数よりも大きくなるまで(ステップ1514;Y)繰り返す。セクション数よりもi+1が大きい場合(ステップ1514;Y)、全てのセクション数についてのフラットテキストデータ登録処理が終了したことになる。
【0042】図16は、全文検索メイン処理の第2の実施形態の処理手順を示したフローチャートである。まず、ユーザによって指定された検索のキーワードの文字コードの最適化処理を行う(ステップ1600)。次に、全文情報記憶部18の先頭レコードにポインタを設定し(ステップ1602)、現在のレコードが空きレコードかどうかをチェックする(ステップ1604)。空きレコードかどうかを判断するには、例えば文書IDが特殊な空きレコード番号になっているかどうかをチェックすればわかるようになっている。空きレコードであった場合(ステップ1604;Y)、ユーザにその旨を表示して知らせる。
【0043】空きレコードでない場合(ステップ1604;N)、そのレコードに格納されているフラットテキストデータを取得し(ステップ1606)、フラットテキスト内にユーザが指定したキーワードが含まれているかどうかを検索する(ステップ1608)。この検索では部分文字列一致関数などを用いることにより検索処理を行っており、既存の関数などで処理可能である。検索にヒットした場合(ステップ1610;Y)、レコード内に記述されている文書IDが検索結果にある場合は特に追加する必要はないが、文書IDがない場合、文書IDを検索結果に追加する(ステップ1612)。ユーザが終了を指定すると(ステップ1614;Y)、全文検索メイン処理が終了となる。ここで、ユーザが検索結果に満足せず、さらなる検索を指定すると(ステップ1614;N)、次のレコードにポインタを移動して全文検索メイン処理(ステップ1604〜1612)を、すべてのレコードについて実行するまで繰り返す。
【0044】以上のように、本実施の形態によるとデータの追加/更新/削除による処理が最小限度で済み、高価なサーバなどの環境でなくとも全文検索機能を文書管理装置上で稼動することができる。また、インデックス情報が不用であるため、ディスク資源の節約が可能となり、フラットテキストデータの格納先をブロック化することで、データの追加/更新/削除によって生じるフラグメンテーションを最小限度にとどめることができる。
【0045】
【発明の効果】請求項1記載の発明では、入力手段によって入力されたファイル内のデータを所定のブロックに分割し、分割したブロックごとに文書名、入力日、画像、文書内容などの各データを登録して記憶するデータ記憶手段を備えたので、インデックス情報がいらず、ディスク資源の節約をすることができる。
【0046】請求項2記載の発明では、データ記憶手段がファイル内の連続したデータを複数のブロックによって分割した場合、分割された他のブロックに同じ文書名、入力日、画像、文書内容などの各データを登録するデータ登録手段をさらに備えたので、セクション間で文が分割されている場合にも検索ができ、全文検索の検索信頼性をさらに高めることができる。
【0047】請求項3記載の発明では、データ記憶手段が入力手段によって入力されたファイル内のデータを分割する際、句読点などの特定文字がファイル内に含まれる場合にはこの特殊文字の箇所でファイル内のデータを分割するので、フラットテキストを2重化して持つサイズが減少し、記憶装置のリソース資源を有効に活用することができる。
【0048】請求項4記載の発明では、入力手段によって入力されたファイル内のデータの数字、全角、半角、ハイフン、長音などの文字コードを認識する認識手段をさらに備えたので、フラットテキスト内の大文字/小文字や半角/全角、長音/ハイフンのあいまい性を考慮した全文検索が可能となる。
【0049】請求項5記載の発明では、データ記憶手段は、認識手段によって認識された各ファイル内のデータを所定のブロックに分割するので、フラットテキスト内の大文字/小文字や半角/全角、長音/ハイフンのあいまい性を考慮した全文検索が可能となり、かつ検索性能を向上させることができる。
【0050】請求項6記載の発明では、入力機能によって入力されたファイル内のデータを所定のブロックに分割し、分割したブロックごとに文書名、入力日、画像、文書内容などの各データを登録して記憶する記憶機能を備えたので、インデックス情報がいらず、ディスク資源の節約をすることができる。
【0051】請求項7記載の発明では、記憶機能によってファイル内の連続したデータが複数のブロックによって分割された場合、分割された他のブロックに同じ文書名、入力日、画像、文書内容などの各データを登録する登録機能をさらに備えたので、セクション間で文が分割されている場合にも検索ができ、全文検索の検索信頼性をさらに高めることができる。
【0052】請求項8記載の発明では、記憶機能によって入力機能で入力されたファイル内のデータが分割される場合、句読点などの特定文字がファイル内に含まれるときにはこの特殊文字の箇所でファイル内のデータを分割するので、フラットテキストを2重化して持つサイズが減少し、記憶装置のリソース資源を有効に活用することができる。
【0053】請求項9記載の発明では、記憶機能によって入力されたファイル内のデータの数字、全角、半角、ハイフン、長音などの文字コードを認識する認識機能をさらに備えたので、フラットテキスト内の大文字/小文字や半角/全角、長音/ハイフンのあいまい性を考慮した全文検索が可能となる。
【0054】請求項10記載の発明では、記憶機能は、認識機能によって認識された各ファイル内のデータを所定のブロックに分割するので、フラットテキスト内の大文字/小文字や半角/全角、長音/ハイフンのあいまい性を考慮した全文検索が可能となり、かつ検索性能を向上させることができる。
【出願人】 【識別番号】000006747
【氏名又は名称】株式会社リコー
【出願日】 平成12年9月18日(2000.9.18)
【代理人】
【公開番号】 特開2002−91982(P2002−91982A)
【公開日】 平成14年3月29日(2002.3.29)
【出願番号】 特願2000−282576(P2000−282576)