(57)【要約】【課題】シングルスレッド・シングルプロセスで文書インデクスの更新を実行する環境においても、レスポンスの低下を抑制できる文書インデクス更新システムを提供すること【解決手段】インデクス更新システムは、登録対象のデータ及びこのデータに対応する識別子を格納する蓄積用一時領域１１２と、インデクスを格納するインデクス格納領域１１０とを備え、インデクス更新システムの演算部１０２が、入力された登録対象のデータ及びこのデータに対応する識別子を、蓄積用一時領域１１２に格納し、蓄積用一時領域１１２に格納されたデータに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した識別子を含んだ索引情報とを作成し、索引項目単位で、作成した索引項目及びこれに対応した索引情報をインデクスとしてインデクス格納領域１１０に格納するインデクス更新方法。【選択図】図１
2007299021.tif 000002
【特許請求の範囲】
【請求項１】
入力された検索情報を含むデータを、データ群から検索するためのインデクスを格納するインデクス更新システムにおいて、前記インデクスを更新するインデクス更新方法であって、
前記インデクス更新システムは、登録対象のデータ及びこのデータに対応する識別子を格納する蓄積用一時領域と、前記インデクスを格納するインデクス格納領域とを備え、
前記インデクス更新システムの演算部が、
入力された登録対象のデータ及びこのデータに対応する識別子を、前記蓄積用一時領域に格納し、
前記蓄積用一時領域に格納された前記データに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した前記識別子を含んだ索引情報とを作成し、
前記索引項目単位で、前記作成した索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納すること、
を特徴とするインデクス更新方法。
【請求項２】
入力された検索情報を含むデータを、データ群から検索するためのインデクスを格納するインデクス更新システムにおいて、前記インデクスを更新するインデクス更新方法であって、
前記インデクス更新システムは、登録対象のデータに含まれる所定の検索情報からなる索引項目及び前記データに対応した識別子を含んだ索引情報を格納する蓄積用一時領域と、前記インデクスを格納するインデクス格納領域とを備え、
前記インデクス更新システムの演算部が、
入力された登録対象のデータに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した前記識別子を含んだ索引情報とを作成して前記蓄積用一時領域に格納し、
前記索引項目単位で、前記蓄積用一時領域に格納された索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納すること、
を特徴とするインデクス更新方法。
【請求項３】
前記インデクス更新システムは、登録対象のデータ及びこのデータに対応する識別子を格納する反映用一時領域をさらに備え、
前記インデクス更新システムの演算部が、
前記入力された登録対象のデータ及びこのデータに対応する識別子を、前記蓄積用一時領域に格納する容量があるか否かを判定し、前記容量がないと判定した場合に、現在、前記蓄積用一時領域に格納されている前記データ及び前記識別子を前記反映用一時領域に転送して、前記蓄積用一時領域に格納されている前記データ及び前記識別子を消去し、
前記反映用一時領域に格納された前記データを用いて、このデータに含まれる所定の検索情報からなる索引項目と、この索引項目を抽出した前記データに対応する前記識別子を含む索引情報とを作成し、
前記索引項目単位で、前記作成した索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納し、
前記蓄積用一時領域に、前記入力された登録対象のデータ及びこれに対応する前記識別子を格納すること、
を特徴とする請求項１に記載のインデクス更新方法。
【請求項４】
前記インデクス更新システムの演算部が、
入力された検索情報を用いて、前記インデクスを検索して、対応する前記索引情報を取得して、この索引情報に含まれる前記識別子を取得し、
前記入力された検索情報を用いて、前記反映用一時領域から対応する前記データを検索して、対応する前記識別子を取得し、
前記入力された検索情報を用いて、前記蓄積用一時領域から対応する前記データを検索して、対応する前記識別子を取得し、
それぞれ取得した前記識別子を出力すること、
を特徴とする請求項３に記載のインデクス更新方法。
【請求項５】
前記インデクス更新システムの演算部が、
前記反映用一時領域または前記蓄積用一時領域から検索した、前記データに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した識別子を含む索引情報を作成し、前記作成した索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納すること、
を特徴とする請求項４に記載のインデクス更新方法。
【請求項６】
入力された削除対象の前記データに含まれる所定の検索情報からなる削除対象の索引項目と、この索引項目に対応した前記識別子を含んだ削除対象の索引情報とを作成し、
前記インデクスから、前記作成された削除対象の索引項目に対応した前記索引情報を削除し、
削除対象の前記データを前記蓄積用一時領域または前記反映用一時領域から削除すること、
を特徴とする請求項３ないし請求項５のいずれか１項に記載のインデクス更新方法。
【請求項７】
前記インデクス更新システムは、前記蓄積用一時領域を複数備えること、
を特徴する請求項１または請求項２に記載のインデクス更新方法。
【請求項８】
前記インデクス更新システムは、前記蓄積用一時領域及び前記反映用一時領域とのいずれか、または両方を、複数備えること、
を特徴する請求項３ないし請求項６のいずれか１項に記載のインデクス更新方法。
【請求項９】
前記インデクス更新システムの演算部が、
前記索引項目及びこれに対応した索引情報を作成時に、前記蓄積用一時領域に格納されたデータ量に応じて、作成する前記索引項目の数を決定すること、
を特徴する請求項１ないし請求項８のいずれか１項に記載のインデクス更新方法。
【請求項１０】
前記インデクス更新システムの演算部が、
前記索引項目及びこれに対応した索引情報の作成時に、この索引情報を前記インデクスに格納していないことを示す反映情報を作成し、
前記インデクスに前記索引項目及びこれに対応した索引情報を格納する際に、前記反映情報に基づいて、前記インデクスに格納されていない前記索引項目及びこれに対応した索引情報のみを前記インデクスに格納し、格納した前記索引情報に対応する前記反映情報を、前記インデクスに格納されたことを示す情報に書き換えること、
を特徴する請求項１ないし請求項９のいずれか１項に記載のインデクス更新方法。
【請求項１１】
指定された検索情報を含むデータを、データ群から検索するためのインデクスを格納するインデクス更新システムであって、
前記インデクス更新システムは、
登録対象のデータ及びこのデータを識別する識別子を格納する蓄積用一時領域、並びに前記データに含まれる所定の検索情報からなる索引項目及びこの索引項目に対応した前記識別子を含んだ索引情報を前記インデクスとして格納するインデクス格納領域を含む記憶部と、
入力されたデータ及びこれに対応する識別子を、前記蓄積用一時領域に格納し、
前記入力されたデータに含まれる所定の検索情報からなる前記索引項目と、この索引項目に対応した前記索引情報とを作成し、前記索引項目単位で、前記索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納する演算部と、
を備えることを特徴とするインデクス更新システム。
【請求項１２】
指定された検索情報を含むデータを、データ群から検索するためのインデクスを格納するインデクス更新システムであって、
前記インデクス更新システムは、
登録対象のデータに含まれる所定の検索情報からなる索引項目及び前記データに対応した識別子を含んだ索引情報を格納する蓄積用一時領域と、前記インデクスを格納するインデクス格納領域とを含む記憶部と、
入力された登録対象のデータに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した前記識別子を含んだ索引情報とを作成して前記蓄積用一時領域に格納し、
前記索引項目単位で、前記蓄積用一時領域に格納された索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納する演算部と、
を備えることを特徴とするインデクス更新システム。
【請求項１３】
前記記憶部は、
前記データ及びこれに対応する前記識別子を格納する反映用一時領域をさらに含み、
前記演算部は、
前記蓄積用一時領域に、前記入力されたデータ及びこれに対応する識別子を格納する容量があるか否かを判定し、前記容量がないと判定すると、現在、前記蓄積用一時領域に格納されている前記データ及び前記識別子を前記反映用一時領域に転送して、前記蓄積用一時領域に格納されている前記データ及び前記識別子を消去し、
前記反映用一時領域に格納された前記データに含まれる所定の検索情報からなる索引項目と、この索引項目を抽出した前記データに対応する前記識別子を含んだ索引情報とを作成し、
前記索引項目単位で、前記索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納し、
前記蓄積用一時領域に、前記入力されたデータ及びこれに対応する識別子を格納すること、
を特徴とする請求項１１に記載のインデクス更新システム。
【請求項１４】
前記演算部は、
入力された検索情報を用いて、前記インデクスを検索して、対応する前記索引情報を取得して、この索引情報に含まれる前記識別子を取得し、
前記入力された検索情報を用いて、前記反映用一時領域から対応する前記データを検索して、対応する前記識別子を取得し、
前記入力された検索情報を用いて、前記蓄積用一時領域から対応する前記データを検索して、対応する前記識別子を取得し、
それぞれ取得した前記識別子を出力すること、
を特徴とする請求項１３に記載のインデクス更新システム。
【請求項１５】
前記演算部は、
前記反映用一時領域または前記蓄積用一時領域から検索した、前記データに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した識別子を含む索引情報を作成し、前記作成した索引項目及びこれに対応した索引情報を前記インデクスとして前記インデクス格納領域に格納すること、
を特徴とする請求項１４に記載のインデクス更新システム。
【請求項１６】
前記演算部が、
入力された削除対象の前記データに含まれる所定の検索情報からなる削除対象の索引項目と、この索引項目に対応した前記識別子を含んだ削除対象の索引情報とを作成し、前記インデクスから、前記作成された削除対象の前記索引項目に対応した前記索引情報を削除し、削除対象の前記データを、前記蓄積用一時領域または前記反映用一時領域から削除すること、
を特徴とする請求項１３ないし請求項１５のいずれか１項に記載のインデクス更新システム。
【請求項１７】
前記インデクス更新システムは、前記蓄積用一時領域を複数備えること、
を特徴する請求項１１または請求項１２に記載のインデクス更新システム。
【請求項１８】
前記インデクス更新システムは、前記蓄積用一時領域及び前記反映用一時領域とのいずれか、または両方を、複数備えること、
を特徴する請求項１３ないし請求項１６のいずれか１項に記載のインデクス更新システム。
【請求項１９】
前記演算部が、
前記索引項目及びそれに対応した索引情報を作成する際に、前記蓄積用一時領域に格納されたデータ量に応じて、作成する前記索引項目の数を決定すること、
を特徴する請求項１１ないし請求項１８のいずれか１項に記載のインデクス更新システム。
【請求項２０】
前記演算部が、
前記索引項目及びこれに対応した索引情報の作成時に、この索引情報を前記インデクスに格納していないことを示す反映情報を作成し、前記インデクス格納領域に前記索引項目及びこれに対応した索引情報を格納する際に、前記反映情報に基づいて、前記インデクス格納領域に格納されていない前記索引項目及びこれに対応した索引情報のみを前記インデクス格納領域に格納して、この格納した前記索引情報に対応する前記反映情報を、前記インデクス格納領域に格納されたことを示す情報に書き換えること、
を特徴する請求項１１ないし請求項１９のいずれか１項に記載のインデクス更新システム。
【請求項２１】
コンピュータを、請求項１１ないし請求項２０のいずれか１項に記載のインデクス更新システムとして動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索用のインデクスを更新する方法に関し、特に大量の文書から、指定した文字列を含む文書を検索するフルテキストサーチのための文書インデクスの更新に好適に適用できるインデクス更新方法及びそのシステムに関する。
【背景技術】
【０００２】
大規模な文書データベースから指定された検索文字列が含まれる文書を高速に検索する方式として、文書インデクスを用いるものが知られている。文書インデクスには、文書に対する複数のキーワードとなる索引項目と、各々の索引項目に対するこの文書を識別する文書識別子や文字位置などの情報である索引情報とが記録されている。この文書インデクスはあらかじめ作成しておく必要があり、文書インデクスの作成時には、全文書のデータを参照する必要がある。
【０００３】
ここで、文書を追加登録したり、登録済みの文書を更新・削除したりする場合、それに応じて文書インデクスも変更する必要がある。文書インデクスの変更を行う際、すべての文書を対象に文書インデクスを作り直すと、非常に大量のデータを処理する必要がある。
このため、変更が必要になった部分のみを書き換える処理を行う。これを文書インデクスの更新と呼ぶ。文書インデクスの更新では、文書インデクスの中で変更される索引項目ごとに索引情報を書き込む必要があり、大量のディスクＩ／Ｏが発生するため、文書データベースの登録・更新・削除処理のレスポンスが悪くなるという問題がある。
【０００４】
この問題を解決するため、特許文献１には、文書インデクスを更新する際に、小規模全文索引に登録し、その後で大規模全文索引にデータ転送する方法を用いるマージ処理が開示されている。特許文献１によると、小規模全文索引の更新に必要な時間は大規模全文索引の更新に必要な時間より短いため、更新時に小規模全文索引に登録することで更新のために必要な時間を短くすることが可能である。しかしながら、特許文献１に記載の方法では、小規模全文索引の大きさが更新によって徐々に大きくなる。小規模全文索引の大きさが大きくなると、小規模全文索引に文書を登録するために必要な時間が増えてしまう。このため、小規模全文索引を用いる利点を保つためには、定期的なマージ処理が必須である。
【０００５】
また、特許文献１に記載のマージ処理を、文書の検索、登録、更新、削除処理と非同期で実行する場合、文書の登録、更新、削除に必要な時間は、小規模全文索引を更新する時間とほぼ等しくなるため、レスポンスは向上する。しかし、アプリケーションとリンクして使用する場合のように、シングルスレッド・シングルプロセスでしか実行できない場合には、マージ処理は、文書を登録、更新、削除するタイミングで実行する必要が生じる。このとき、特許文献１に記載のマージ処理では、大規模全文索引に小規模全文索引にあるすべての情報を書き込む必要があるため、非常に多くの時間が必要となる。
すなわち、シングルスレッド・シングルプロセスで特許文献１に記載のマージ処理を実行する環境において、まれに登録、更新、削除のレスポンスが非常に悪くなってしまうという問題がある。
【特許文献１】特開２００３−１２２７９４号公報（段落００５６〜００５８，図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、本発明が解決しようとする課題は、アプリケーションとリンクして使用する場合のように、シングルスレッド・シングルプロセスで文書インデクスの更新を実行する環境においても、レスポンスの低下を抑制できる手段を提供することである。
【課題を解決するための手段】
【０００７】
前記の課題を達成するために、本発明に係るインデクス更新方法は、指定された検索情報を含むデータを、データ群から検索するためのインデクスを格納するインデクス更新システムの演算部が、入力された登録対象のデータ及びこれに対応する識別子を、蓄積用一時領域に格納し、このデータに含まれる所定の検索情報からなる索引項目と、この索引項目に対応した識別子を含んだ索引情報とを作成し、索引項目単位で、作成した索引項目及びこれに対応する索引情報をインデクスに格納することを特徴としている。
【０００８】
本発明のその他の態様については、後記する実施の形態において詳しく説明する。
【発明の効果】
【０００９】
本発明によると、シングルスレッド・シングルプロセスで検索用のインデクスの更新を実行する環境においても、レスポンスの低下を抑制できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明を実施するための最良の形態（以下、実施形態と称す）を、添付した図面を参照しつつ、詳細に説明する。なお、以下で説明する実施形態では、インデクスの作成、更新の対象となるデータを文書データとしたが、本発明はこれに限定されるものではなく、データに含まれる情報から検索項目を抽出して、インデクスを作成可能なデータであれば、様々なデータを対象に適用可能である。例えば、画像データを入力データとして、この画像データに含まれる色情報から、画像データを検索するためのインデクスにも適用可能である。
【００１１】
［第１実施形態］
図１は、本発明の第１の実施形態に係る文書検索システムの構成を示す図面である。本実施形態に係る文書検索システムでは、ユーザから入力された文書である文書情報の主インデクス１１０への登録・削除と、入力された文書情報から、ユーザから入力された文字を含む文書情報の検索を行う。
【００１２】
本実施形態の文書検索システムは、検索結果を表示するディスプレイ１００、文書情報の登録、削除及び検索のコマンドを入力するキーボード１０１、後記する各プログラムを実行することで、登録処理、削除処理及び検索処理を実行するＣＰＵ（Central Processing Unit）１０２、登録用及び検索用のプログラム、並びに入出力されるデータなどを一時的に格納する主記憶装置１０５、各データおよび各プログラムを格納する二次記憶装置１０４及びこれらを接続するバス１０３を含んで構成される。
なお、ＣＰＵ１０２は特許請求の範囲の演算部に相当している。
【００１３】
主記憶装置１０５には、システム制御プログラム１２０に加え、登録用のプログラムとして文書登録プログラム１２１、インデクス反映プログラム１３５、反映種類決定プログラム１３０、索引情報作成プログラム１３１、主インデクス反映プログラム１３２及びインデクス登録プログラム１３３が、また、検索用のプログラムとして文書検索プログラム１２２及びインデクス検索プログラム１３４が二次記憶装置１０４から読み出されている。
さらに、主記憶装置１０５には、削除用のプログラムとして文書削除プログラム１２５及びインデクス削除プログラム１３６が、また、各処理で用いるプログラムとして索引項目作成プログラム１２３が、二次記憶装置１０４から読み出されるとともに、各データを一時的に格納するワークエリア１２４が確保されている。
【００１４】
また、二次記憶装置１０４には、主インデクス１１０、種類リスト１１１、蓄積用一時領域１１２、反映用一時領域１１３、削除リスト１１５及び各種プログラム格納領域１１４の各領域が設定されている。
【００１５】
ここで、主インデクス１１０とは、検索で使用する文書インデクス本体である。また、種類リスト１１１とは、主インデクス１１０に対し、書き込む必要のある索引を格納するものである。また、蓄積用一時領域１１２とは、主インデクス１１０の索引を更新する前に、一時的に必要な文書情報を格納するためのものである。また、反映用一時領域１１３とは、主インデクス１１０の索引を更新する元の文書情報を格納するためのものである。また、削除リスト１１５とは、主インデクス１１０から削除された文書情報を識別する文書識別子を記録しておくものである。
【００１６】
次に、二次記憶装置１０４に設定された各領域に格納される情報について詳しく説明する。ここで、図２は、主インデクス１１０を説明するための図面である。図２に示すように、主インデクス１１０は、索引項目２００と、この索引項目２００に対応する索引情報２１０とから構成される。
【００１７】
次に、図３は、種類リスト１１１を説明するための図面である。図３に示すように、種類リスト１１１は、索引項目３００と、それに対応する反映情報３１０とから構成される。この種類リスト１１１は、反映用一時領域１１３から主インデクス１１０へ書き込んだ索引情報を識別するために使用される。
【００１８】
また、図４は、蓄積用一時領域１１２を説明するための図面である。図４に示すように、蓄積用一時領域１１２は、文書識別子４００とそれに対応する文書情報４１０とから構成される。蓄積用一時領域１１２は、登録する文書情報を一時的に格納するために使用される。
なお、本実施形態では、反映用一時領域１１３は、この蓄積用一時領域１１２と同じ構成であるため、その説明は省略する。反映用一時領域１１３は、主インデクス１１０へ書き込む文書情報を一時的に格納するために使用される。
【００１９】
次に、図５は、削除リスト１１５を説明するための図面である。図５に示すように、削除リスト１１５には、文書情報の文書識別子５００が格納されている。この文書識別子５００は、主インデクス１１０、蓄積用一時領域１１２または反映用一時領域１１３から削除する文書情報を特定するために使用される。
【００２０】
次に、主記憶装置１０５に格納された各プログラムについて説明する。まず、システム制御プログラム１２０は、ディスプレイ１００、キーボード１０１を用いたユーザ出入力の制御を行い、その他の各プログラムの実行を制御する。
【００２１】
また、文書登録プログラム１２１は、システム制御プログラム１２０から実行され、インデクス反映プログラム１３５及びインデクス登録プログラム１３３を実行することで、ユーザが入力した文書情報の登録処理を行う。また、インデクス反映プログラム１３５は、文書登録プログラム１２１から実行され、主インデクス１１０を更新する。この際、反映種類決定プログラム１３０、索引情報作成プログラム１３１、及び主インデクス反映プログラム１３２を使用する。
【００２２】
ここで、インデクス反映プログラム１３５が使用するプログラムのうち、反映種類決定プログラム１３０は、種類リスト１１１を使用して、主インデクス１１０に書き込むべき索引項目を決定する。また、索引情報作成プログラム１３１は、反映用一時領域１１３を使用して、主インデクス１１０に書き込む索引情報を作成する。さらに、主インデクス反映プログラム１３２は、反映種類決定プログラム１３０及び索引情報作成プログラム１３１で作成された索引項目及び索引情報を使用して、主インデクス１１０を更新する。
【００２３】
また、インデクス登録プログラム１３３は、文書登録プログラム１２１から実行され、ユーザが入力した文書情報を蓄積用一時領域１１２に書き込み、蓄積用一時領域１１２があふれた場合には種類リスト１１１を作成し、蓄積用一時領域１１２を反映用一時領域１１３と交換し、蓄積用一時領域１１２の内容を削除する。
【００２４】
また、文書検索プログラム１２２は、システム制御プログラム１２０から実行され、インデクス検索プログラム１３４を使用して、ユーザが入力した検索したい文字である検索文字列に応じた検索対象の文書情報を検索する。また、インデクス検索プログラム１３４は、文書検索プログラム１２２から実行され、主インデクス１１０、蓄積用一時領域１１２、反映用一時領域１１３及び削除リスト１１５を使用して、検索の対象となる文書情報を検索する。
【００２５】
さらに、文書削除プログラム１２５は、システム制御プログラム１２０から実行され、インデクス削除プログラム１３６を使用して文書情報を削除する。このインデクス削除プログラム１３６は、削除リスト１１５に削除対象の文書識別子を書き込むことで、主インデクス１１０から削除対象の文書の索引項目を削除する。
なお、二次記憶装置１０４に格納される各情報の生成手順、及び主記憶装置１０５に格納されたプログラムの詳細な動作手順については後記する。
【００２６】
（文書登録の手順）
次に、図１を参照しつつ、本実施形態における文書登録時の処理の概要について説明する（適宜、図２〜図５参照）。
図１に示した文書検索システムのキーボード１０１から入力されるコマンドにより起動したシステム制御プログラム１２０は、文書登録プログラム１２１を起動し、文書の登録処理を開始する。
ここで、文書登録プログラム１２１は、キーボード１０１から入力された登録対象の文書である文書情報及びこの文書情報に対応する文書識別子を読み込み、読み込んだ文書情報及び文書識別子を使用して主インデクス１１０を更新する。
【００２７】
ここで、図６は、本実施形態における文書登録プログラム１２１の処理手順を示すＰＡＤ（Problem Analysis Diagram）である。図６を参照しつつ、文書登録プログラム１２１の処理手順を説明する。
まず、文書登録プログラム１２１は、キーボード１０１から入力されたすべての登録対象の文書である文書情報及びこの文書情報に対応する一意な文書識別子に対し、ステップ１２１０１から１２１０４までに示す一連の処理を繰り返し実行する（ステップ１２１００）。
【００２８】
このとき、ステップ１２１０１では、キーボード１０１から入力された登録対象の文書情報群から未処理の文書情報を１個選択し、この文書情報及びこれに対応する文書識別子を主記憶装置１０５上のワークエリア１２４に格納する。そして、文書登録プログラム１２１は、ステップ１２１０３において、インデクス登録プログラム１３３を実行する。このインデクス登録プログラム１３３は、ワークエリア１２４に格納された登録対象の文書情報を、二次記憶装置１０４上の蓄積用一時領域１１２に書き込む。
【００２９】
次に、文書登録プログラム１２１は、ステップ１２１０４において、インデクス反映プログラム１３５を実行する。
ここで、インデクス反映プログラム１３５は、反映用一時領域１１３に格納された文書情報に対応する索引項目の中で、主インデクス１１０に書き込んでいない索引項目から０個、１個または複数個の索引項目を選択し、主インデクス１１０中の索引項目２００及び索引情報２１０を読み込み、選択した索引項目と対応する索引情報を追加し、主インデクス１１０の索引情報に書き込むことで、索引項目に対応する索引情報を更新して、文書登録プログラム１２１の処理は終了する。
【００３０】
次に、図６における、ステップ１２１０３及びステップ１２１０４の処理におけるインデクス反映プログラム１３５及びインデクス登録プログラム１３３の処理手順について詳しく説明する。
【００３１】
ここで、図７は、インデクス反映プログラム１３５の処理手順を示すＰＡＤである。図７を参照しつつ、インデクス反映プログラム１３５の処理手順を説明する。
まず、インデクス反映プログラム１３５は、ステップ１３５００において、反映種類決定プログラム１３０を実行する。この反映種類決定プログラム１３０は、ワークエリア１２４に読み込まれた登録対象の文書情報に対し、二次記憶装置１０４の種類リスト１１１、蓄積用一時領域１１２、及び反映用一時領域１１３を参照することにより、ステップ１３５０２の処理を行うために必要な、主インデクス１１０中で更新する索引項目の種類である反映索引項目種類を決定し、主記憶装置１０５のワークエリア１２４に格納する。これにより、主インデクス１１０に反映する反映索引項目種類が選択される。
【００３２】
次に、ステップ１３５０１において、インデクス反映プログラム１３５は、索引情報作成プログラム１３１を実行する。索引情報作成プログラム１３１は、ワークエリア１２４にある、すべての反映索引項目種類に対し、索引情報を作成する。ワークエリア１２４に格納された反映索引項目種類と、反映用一時領域１１３とを参照することで、ステップ１３５０２の処理を行うために必要な、反映索引項目種類に対応した索引情報を作成し、主記憶装置１０５のワークエリア１２４に格納する。
【００３３】
最後に、ステップ１３５０２において、インデクス反映プログラム１３５は、主インデクス反映プログラム１３２を実行する。主インデクス反映プログラム１３２は、ワークエリア１２４に格納された、反映索引項目種類と、各反映索引項目種類に対応する索引情報とを用いて、二次記憶装置１０４上の主インデクス１１０及び種類リスト１１１を更新する。以上の手順により、インデクス反映プログラム１３５の処理が終了する。
【００３４】
次に、前記のステップ１３５００で実行される反映種類決定プログラム１３０の詳細な処理手順について説明する。ここで、図８は、反映種類決定プログラム１３０の処理手順を示すＰＡＤである。
まず、反映種類決定プログラム１３０は、ステップ１３０００において、主インデクス１１０の中で更新する索引項目の個数である反映索引項目個数を計算し、ワークエリア１２４に格納する。
【００３５】
ここで、主インデクス１１０に書き込む反映索引項目個数（後記の数式中では、Ｃで表す）は、蓄積用一時領域１１２に書き込めるデータ量（後記の数式中は、Ｎで表す）、蓄積用一時領域１１２に書き込み済みの文書のデータ量（後記の数式中は、Ｉで表す）、登録対象の文書のデータ量（後記の数式中は、ｎで表す）、種類リスト１１１中の索引項目の個数（後記の数式中は、Ｐで表す）、種類リスト１１１中で主インデクス１１０に書き込み済みの索引項目の個数（後記の数式中は、Ｍで表す）を用いて定める。
例えば、‘↑↑’を、その中の式の値を含む最小の整数を表すとした場合、Ｃ＝↑Ｐ×（ｎ÷Ｎ）↑やＣ＝ＭＡＸ（↑Ｐ×（（Ｉ＋ｎ）÷Ｎ）↑−Ｍ，０）、Ｃ＝↑（Ｐ−Ｍ）×ｎ÷（Ｎ−Ｉ）↑等のように、蓄積用一時領域１１２に登録対象の文書情報が入りきらなくなった時点で、種類リスト１１１の索引項目３００が、すべて書き込み済みになるような個数に決定する。
【００３６】
次に、ステップ１３００１において、計算した反映索引項目個数が、種類リスト１１１の反映情報３１０のうち、主インデクス１１０に書き込み済みでないことを示す「Ｆａｌｓｅ」を有する個数より大きいか否かを判定する。すなわち、反映索引項目個数が、主インデクス１１０に書き込まれていない索引項目の個数より大きいか否かを判定する。
ここで、反映索引項目個数が、種類リスト１１１の反映情報３１０のうち、書き込み済みでない個数より大きい場合には、ステップ１３００２を実行し、大きくない場合にはステップ１３００２は実行せず、ステップ１３００３に進む。
このステップ１３００２では、反映索引項目個数を、種類リスト１１１の反映情報３１０の中で、主インデクス１１０に書き込み済みでない索引の個数と同じ個数に変更することで、反映索引項目個数が種類リスト１１１の反映情報３１０の中で書き込み済みでない索引の個数より大きくならないようにする。
【００３７】
最後に、ステップ１３００３において、種類リスト１１１の索引項目３００の中から、反映索引項目個数分の書き込み済みでない索引項目を選択し、ワークエリア１２４に、この選択した索引項目を反映索引項目種類として格納して、反映種類決定プログラム１３０の処理が終了する。
【００３８】
次に、図７のＰＡＤに示したインデクス反映プログラム１３５のステップ１３５００において実行される、主インデクス反映プログラム１３２の詳細な処理手順について説明する。ここで、図９は、主インデクス反映プログラム１３２の処理手順を示すＰＡＤである。
まず、主インデクス反映プログラム１３２は、ステップ１３２００として、ワークエリア１２４にある、すべての反映索引項目種類に対し、ステップ１３２０１から１３２０４までに示す一連の処理を繰り返し実行する。
【００３９】
以下、ステップ１３２０１から１３２０４の処理を説明する。
ステップ１３２０１では、二次記憶装置１０４上の主インデクス１１０にある索引項目２００の中で、反映索引項目種類の要素に対応する索引情報２１０を取得して、ワークエリア１２４に読み込む。ただし、主インデクス１１０に対応する索引項目が存在しない場合は、空の情報をワークエリア１２４に読み込む。
そして、ステップ１３２０２において、ステップ１３２０１でワークエリア１２４に読み込んだ索引情報に対し、インデクス反映プログラム１３５のステップ１３５０１（図７参照）で作成した反映索引項目種類に対応する索引情報を追加し、ワークエリア１２４に格納する。
【００４０】
次に、ステップ１３２０３において、ステップ１３２０２で格納した、ワークエリア１２４上の索引情報を、ステップ１３２０１で使用した索引情報に加えて、主インデクス１１０に登録する。ただし、主インデクス１１０に対応する索引項目が存在しない場合は、主インデクス１１０の索引項目２００に、索引情報の要素のみを追加する。
最後に、ステップ１３２０４において、種類リスト１１１上の、反映索引項目種類に対応する反映情報３１０を書き込み済みである情報「Ｔｒｕｅ」に書き換えて、主インデクス反映プログラム１３２の処理が終了する。
【００４１】
次に、図６のＰＡＤに示した文書登録プログラム１２１のステップ１２１０３で実行されるインデクス登録プログラム１３３の詳細な処理手順について説明する。ここで、図１０は、インデクス登録プログラム１３３の処理手順を示すＰＡＤである。
【００４２】
まず、インデクス登録プログラム１３３は、ステップ１３３００において、蓄積用一時領域１１２に対し、ワークエリア１２４中の、登録対象の文書情報を書き込むための空き領域があるか否かを判定する。ここで、蓄積用一時領域１１２に登録対象の文書情報を書き込むための空き領域がある場合には、ステップ１３３０１を実行して、蓄積用一時領域１１２に登録対象の文書情報を書き込む。
一方、蓄積用一時領域１１２に登録対象の文書情報を書き込むための空き領域が無い場合には、ステップ１３３０２からステップ１３３０６を実行する。
【００４３】
以下、ステップ１３３０２からステップ１３３０６の処理について説明する。
まず、インデクス登録プログラム１３３は、ステップ１３３０２において、蓄積用一時領域１１２と、反映用一時領域１１３とに格納された情報を入れ替える。そして、ステップ１３３０３において、蓄積用一時領域１１２上の文書識別子４００及び文書情報４１０をすべて削除する。
【００４４】
次に、ステップ１３３０４では、反映用一時領域１１３をワークエリア１２４に格納し、格納した情報に対し、索引項目作成プログラム１２３を実行して索引項目を作成し、この作成した索引項目をワークエリア１２４に格納する。このとき、索引項目作成プログラム１２３は、ワークエリア１２４上にあるプログラムの実行対象の文書情報を用い、索引項目となる部分文字列を作成し、作成した索引項目をワークエリア１２４に格納する。さらに、ワークエリア１２４に格納されたすべての索引項目と、各々の索引項目が書き込んでいない状態であることを示す情報「Ｆａｌｓｅ」とを作成して、種類リスト１１１に書き込む。
【００４５】
次に、ステップ１３３０５において、インデクス反映プログラム１３５（図７参照）を実行し、反映用一時領域１１３を利用して、主インデクス１１０を部分的に更新する。
最後に、ステップ１３３０６において、蓄積用一時領域１１２に、ワークエリア１２４上の登録対象の文情報書及び文書識別子を書き込んで、インデクス登録プログラム１３３の処理が終了する。
【００４６】
本実施形態では、一時領域として、蓄積用一時領域１１２及び反映用一時領域１１３の２つを用いて実現した例を示したが、蓄積用一時領域１１２及び反映用一時領域１１３の少なくとも一方を複数に分割した、３つ以上の一時領域を用いても良い。また、蓄積用一時領域１１２及び反映用一時領域１１３を１つの領域としてまとめ、内部で論理的に異なる領域に分割するようにしても良い。
さらに、本実施形態では、１つの文書情報の入力に対してインデクス反映プログラム１３５を実行したが、複数回の文書情報の入力後にインデクス反映プログラム１３５を実行しても良い。
【００４７】
次に、図１１は、本実施形態の登録処理における文書登録と、主インデクス１１０への書き込みの関係の例を示す説明図である。図１１に示した説明図を参照しつつ、本実施形態の登録処理における情報の流れについて詳しく説明する。
【００４８】
なお、図１１に示す説明図では、すでに幾つかの文書が登録され、蓄積用一時領域１１２及び反映用一時領域１１３に登録済みの文書情報が格納されている。このとき、文書検索システムの蓄積用一時領域１１２に格納可能な文書情報量をＮとし、種類リスト１１１は、反映用一時領域１１３に登録済みの文書情報に対する索引項目をＰ種類であるとしている。
【００４９】
ここで、文書情報量ｎを有する文書情報の登録処理では、まず、種類リスト１１１の中の、まだ主インデクス１１０に書き込まれていない索引項目から、登録する文書情報の容量に比例した個数である‘↑Ｐ×（ｎ÷Ｎ）↑’種類だけ索引項目を選択する。図１１に示した説明図では、索引項目「生」が選択された例を示している。次に、選択した索引項目の索引情報を反映用一時領域１１３から作成し、主インデクス１１０に書き込む。本実施形態では索引項目「生」の索引情報が書き込まれたことを示している。最後に、蓄積用一時領域１１２に、登録する文書情報を書き込む。
【００５０】
この例から分かるように、文書の登録処理においては、蓄積用一時領域１１２への書き込みは文書単位で行われ、主インデクス１１０への書き込みは索引項目単位で行われる。
また、主インデクス１１０に書き込む索引情報の個数は、蓄積用一時領域１１２に書き込み可能な文書情報量と登録する文書情報量の比率よりも、種類リスト１１１の索引項目の数と主インデクス１１０へ書き込む数の比率が大きくなる値が設定される。
この索引項目の数の決定方法により、蓄積用一時領域１１２が一杯になるまでの間に、種類リスト１１１のすべての索引項目に対応する索引情報を、主インデクス１１０に書き込むことができる。また、種類リスト１１１のすべての索引項目に対応する索引情報を主インデクス１１０に書き込むことは、反映用一時領域１１３に書き込まれているすべての文書情報から作成される索引情報を主インデクス１１０に書き込むことと等しい。従って、蓄積用一時領域１１２が一杯になるまでの間に、反映用一時領域１１３に書き込まれている文書情報に対応する索引情報は、すべて主インデクス１１０に書き込むことができる。
これにより、蓄積用一時領域１１２が一杯になった際には、反映用一時領域１１３の内容を削除することができる。さらに、蓄積用一時領域１１２及び反映用一時領域１１３の大きさを固定にすることもできる。
【００５１】
次に、本実施形態における文書登録時の具体例に基づく処理手順について、「・・・の生物は・・・」、「・・・は生で・・・」、「・・・は・・・」、「海洋には数万種の微生物が・・・」、「陸上の生物は・・・」という文書を、別々の処理として入力された場合を例に説明する。
ここで、本実施形態における具体例における処理手順では、インデクスとして１−ｇｒａｍインデクスを用いることとする。１−ｇｒａｍインデクスとは、登録時に文書を１文字毎に区切り、区切った文字位置に対応する文書識別子と文字位置情報とを、区切った文字に対応して格納することで、文書の全文検索を高速化するものである。
【００５２】
計算を簡単にするために、登録される各文書の大きさは２０文字であり、また、蓄積用一時領域１１２の容量は、１０００文字登録可能であるとし、登録対象の全文書中の文字の種類は１００種類とする。また、「・・・は・・・」と「海洋には数万種の微生物が・・・」との間で、これらを含めて４７個の文書を登録する。つまり、「海洋には数万種の微生物が・・・」を登録するまでの間に、「・・・の生物は・・・」、「・・・は生で・・・」、「・・・は・・・」を含めて５０個の文書、つまり合計１０００文字分の文書情報を登録する。
【００５３】
まず、文書識別子「０６１」を有する文書「・・・の生物は・・・」が入力された場合の登録処理を説明する（適宜、図１〜図１０参照）。なお、登録前には、図１に示す文書検索システムの蓄積用一時領域１１２、反映用一時領域１１３及び種類リスト１１１の各領域は、空である。
【００５４】
この登録処理では、図６のＰＡＤに示した文書登録プログラム１２１の処理が開始される。この段階では各々の登録対象の文書が１個であるため、図６に示すＰＡＤにおけるステップ１２１００の繰り返し処理は、文書「・・・の生物は・・・」のみを対象にして実行されることになる。
まず、図６に示すＰＡＤにおけるステップ１２１０１では、文書「・・・の生物は・・・」の文書情報及び文書識別子「０６１」を主記憶装置１０５上のワークエリア１２４に格納する。
【００５５】
次に、文書登録プログラム１２１は、ステップ１２１０４において、インデクス登録プログラム１３３を実行する。これにより、図１０のインデクス登録プログラム１３３のＰＡＤに示したステップ１３３００からステップ１３３０６が実行される。
最後に、ステップ１２１０３において、インデクス反映プログラム１３５を実行する。ここで、反映用一時領域１１３にはデータが存在しないため、インデクス反映プログラム１３５は何も実行しない。
【００５６】
図１０を参照して、インデクス登録プログラム１３３について説明する。まず、ステップ１３３００では、蓄積用一時領域１１２に、登録対象の文書情報が書き込める大きさがあるかどうかを判定する。ここでは、登録対象の文書情報が書き込める大きさがあるため、ステップ１３３０１を実行する。
そして、ステップ１３３０１において、図４に示す蓄積用一時領域１１２に対し、文書情報として「・・・の生物は・・・」と、文書識別子として文書識別子「０６１」を書き込む。これで、インデクス登録プログラム１３３、図６におけるステップ１２１０３の処理が終了する。
以上が「・・・の生物は・・・」を登録した場合の処理手順である。
【００５７】
以上の処理を、図１２に示した文書登録時の情報の流れを示した説明図を用いて説明する。文書「・・・の生物は・・・」、文書識別子「０６１」の登録イベント９０００１が発生し、これにより、蓄積用一時領域１１２に文書「・・・の生物は・・・」の文書情報及び文書識別子「０６１」が書き込まれ、蓄積用一時領域が参照符号９０１００で示す状態となる。
【００５８】
次に、「・・・の生物は・・・」の場合と同様に、「・・・は生で・・・」、「・・・は・・・」の登録処理（９０００２，９０００３）が引き続き行われる。これらの処理はイベント９０００１と同様であるため詳細は省略する。これにより、蓄積用一時領域１１２に、３つの文書情報とそれぞれの文書識別子が書き込まれ、蓄積用一時領域１１２は参照符号９０２００で示す状態になる。
同様にして、文書情報を４７個登録する。これにより、合計１０００文字分の文書情報が蓄積用一時領域１１２に登録される。
【００５９】
次に、蓄積用一時領域１１２に１０００文字分の文書情報が格納された状態で、さらに、文書「海洋には数万種の微生物が・・・」を登録する処理手順を説明する。
文書「海洋には数万種の微生物が・・・」の登録では、文書「・・・の生物は・・・」の登録の場合と同様に、図６に示した文書登録プログラム１２１のＰＡＤのステップ１２１００により、ステップ１２１０１からステップ１２１０３を実行する。ここで、文書「海洋には数万種の微生物が・・・」の文書識別子は「０９２」とする。
【００６０】
まず、ステップ１２１０１において、文書「海洋には数万種の微生物が・・・」の文書情報及び文書識別子「０９２」を主記憶装置１０５上のワークエリア１２４に格納する。
【００６１】
そして、ステップ１２１０３において、インデクス登録プログラム１３３を実行する。このインデクス登録プログラム１３３では、図１０に示すＰＡＤのステップ１３３００からステップ１３３０６を実行する。
図１０を参照して、ステップ１３３００では、蓄積用一時領域１１２に、登録対象の文書情報が書き込める大きさがあるかどうかを判定する。ここで、登録対象の文書「海洋には数万種の微生物が・・・」の大きさが２０文字であり、蓄積用一時領域１１２の空き容量が０文字分であるため、登録対象の文書情報を書き込める大きさが無い。このため、ステップ１３３０２からステップ１３３０６を実行する。
【００６２】
まず、ステップ１３３０２において、蓄積用一時領域１１２と、反映用一時領域１１３とに格納された情報を入れ替える。これにより、蓄積用一時領域１１２にあった、「・・・の生物は・・・」、「・・・は生で・・・」、「・・・は・・・」等の文書情報と、この文書情報に対応する文書識別子が、反映用一時領域１１３に移動する。
【００６３】
次に、ステップ１３３０３において、蓄積用一時領域１１２にある、すなわち、今回のインデクス登録プログラム１３３が実行される直前に反映用一時領域１１３に格納されていた内容がすべて削除される。これにより、蓄積用一時領域１１２が空になる。
そして、ステップ１３３０４において、反映用一時領域１１３にある、すなわち、今回のインデクス登録プログラム１３３が実行される直前に蓄積用一時領域１１２に格納されていた内容に対し、索引項目作成プログラム１２３を実行して、索引項目を取得し、すべての索引項目３００の反映情報３１０を書き込んでいないことを示す「Ｆａｌｓｅ」にして、種類リスト１１１に書き込む。このとき、反映用一時領域１１３には、文書「・・・の生物は・・・」，「・・・は生で・・・」，「・・・は・・・」が含まれているため、種類リストの索引項目には、「の」「生」「物」「は」「で」が含まれ、これらの索引項目に対応する索引情報はすべて、書き込んでいないことを示す「Ｆａｌｓｅ」となる。
【００６４】
最後に、ステップ１３３０６において、図４に示す蓄積用一時領域１１２に、参照符号４１１で示す文書「海洋には数万種の微生物が・・・」の文書情報と、参照符号４０１で示す文書識別子「０９２」とを書き込む。これにより、文書登録プログラム１２１のステップ１２１０３が終了する。
【００６５】
図６に戻って、次に、文書登録プログラム１２１は、ステップ１２１０４において、インデクス反映プログラム１３５を実行する。ここで、インデクス反映プログラム１３５は、図７に示したＰＡＤのステップ１３５００からステップ１３５０２を実行する。
インデクス反映プログラム１３５はまず、ステップ１３５００において、反映種類決定プログラム１３０を実行する。反映種類決定プログラム１３０は、図８に示したＰＡＤのステップ１３０００からステップ１３００３を実行する。
【００６６】
反映種類決定プログラム１３０はまず、ステップ１３０００において、反映索引項目個数を計算し、ワークエリア１２４に格納する。ここで、計算式として、前記した‘Ｃ＝↑Ｐ×（ｎ÷Ｎ）↑’を用いると、反映索引項目個数の計算結果として‘２’が与えられる。
そして、ステップ１３００１において、反映索引項目個数と書き込んでいない索引項目の個数とを比較する。ここで、反映索引項目個数が‘２’で、書き込んでいない索引項目の個数が‘１００’であるため、ステップ１３００２は実行されない。
最後に、ステップ１３００３において、反映索引項目種類を決定し、ワークエリア１２４に格納する。ここでは、「生」「物」を、ワークエリア１２４に格納する。これで、図７のＰＡＤにおける、ステップ１３５００の処理が終了する。
【００６７】
次に、図７に戻って、ステップ１３５０１において、索引情報作成プログラム１３１を実行し、ワークエリア１２４に格納する。主インデクス１１０は、１−ｇｒａｍインデクスであるため、索引情報は、文書識別子と文字位置のペアで表される。
そして、ステップ１３５０２において、主インデクス反映プログラム１３２を実行する。主インデクス反映プログラム１３２は、図９に示したＰＡＤのステップ１３２００からステップ１３２０４を実行する。主インデクス反映プログラム１３２のステップ１３２００では、すべての反映索引項目種類について繰り返すため、「生」「物」それぞれに対し、ステップ１３２０１からステップ１３２０４を実行する。
【００６８】
まず、反映索引項目種類「生」に対応したステップ１３２０１において、反映索引項目種類「生」に対応し、主インデクス１１０上の、図２に示す索引項目のうち、参照符号２０１の要素に対応する索引情報２２０を、ワークエリア１２４に格納する。
そして、ステップ１３２０２において、ワークエリア１２４上にある、ステップ１３２０１で読み込んだ索引情報に対し、反映索引項目種類「生」の索引情報を作成して追加する。
【００６９】
次に、ステップ１３２０３において、ステップ１３２０２で作成した索引情報を、図２に示した主インデクス１１０の参照符号２０１で示す索引項目「生」の索引情報の要素として、参照符号２２０で示すように書き込む。これにより、主インデクス１１０上の、索引項目「生」に対応する索引情報が更新される。
最後に、ステップ１３２０４において、図３に示す種類リスト１１１上の、参照符号３０１で示す索引項目「生」に対応する、参照符号３１１で示す反映情報３１０の要素に、書き込み済みであることを示す「Ｔｒｕｅ」を書き込む。
【００７０】
同様に、ステップ１３２０１からステップ１３２０４を反映索引項目種類「物」に対しても行う。これで、主インデクス反映プログラム１３２、図７のＰＡＤおけるステップ１３５０２の処理、および、図６のＰＡＤにおけるステップ１２１０４の処理が終了する。これらの処理により、反映用一時領域１１３の内容の一部を使用して、主インデクス１１０の一部を更新する。
以上が、文書「海洋には数万種の微生物が・・・」を登録した場合の処理手順である。
【００７１】
以上の処理を、図１３及び図１４に示した文書登録時の情報の流れを示した説明図を用いて説明する。まず、文書「海洋には数万種の微生物が・・・」の登録イベント９０００４が発生し、参照符号９０３００で示す蓄積用一時領域１１２には文書「海洋には数万種の微生物が・・・」を書き込めるだけの空き容量が無いため、蓄積用一時領域１１２に格納された情報が、反映用一時領域１１３に移動され、蓄積用一時領域１１２及び反映用一時領域１１３は、それぞれ、参照符号９０４０８及び９０４０１で示す状態に遷移する。また、同時に参照符号９０４１０で示される種類リスト１１１が作成される。
【００７２】
次に、図１４に移って、参照符号９０４０１で示した反映用一時領域１１３と、参照符号９０４１０で示した種類リスト１１１に基づいて、「生」及び「物」に対応する文書識別子及び文字位置からなる索引情報２２０を主インデクス１１０に書き込む。そして、この書き込んだ種類リスト１１１の索引項目３００に対応する反映情報３１０を、書き込み済みを示す「Ｔｒｕｅ」に書き換え（参照符号９０４０９から参照符号９０４０７）、蓄積用一時領域１１２に、参照符号９０４００で示すように文書「海洋には数万種の微生物が・・・」及び文書識別子「０９２」を書き込む。
【００７３】
最後に、文書「陸上の生物は・・・」を登録する場合を説明する。文書「陸上の生物は…」の登録では、図６に示した文書登録プログラム１２１のＰＡＤのステップ１２１００からステップ１２１０４を実行する。ここで、処理手順の詳細は、文書「海洋には数万種の微生物が・・・」を登録した場合と同様であるため省略する。
【００７４】
次に、図１５に示した文書登録時の情報の流れを示した説明図を用いて、文書「陸上の生物は・・・」を登録する手順について簡単に説明する。
まず、文書「陸上の生物は・・・」の登録イベント９０００５が発生し、参照符号９０４０１で示す反映用一時領域１１３と、種類リスト１１１とを使用し、文書識別子と文字位置からなる索引情報を主インデクス１１０に書き込む。そして、書き込んだ種類リスト１１１の索引項目に対応する反映情報を、書き込み済みを示す「Ｔｒｕｅ」に書き替え（参照符号９０４１２から参照符号９０５１２）、蓄積用一時領域１１２に、文書「陸上の生物は・・・」の文書情報及び文書識別子「０９４」を書き込む。
以上が、文書「陸上の生物は・・・」の登録により処理される内容である。
【００７５】
以上の具体例で説明したように、蓄積用一時領域１１２の容量が一杯になるまでの間に、蓄積用一時領域１１２の使用分より、種類リスト１１１の書き込み済み分が大きくなるように、種類リスト１１１の索引項目に対応する索引情報を、反映用一時領域１１３から主インデクス１１０へ書き込む。これにより、反映用一時領域１１３から主インデクス１１０への書き込みを複数回の登録文書処理に分割することができ、１回の登録時間を短くすることができる。また、蓄積用一時領域１１２の使用率に対応した量を書き込むことにより、蓄積用一時領域１１２の容量が一杯になる前に、反映用一時領域１１３の内容をすべて書き込み済みにできる。
【００７６】
（文書検索の手順）
次に、図１を用いて本実施形態における文書検索時の処理の概要について説明する。
文書検索時には、文書検索プログラム１２２が実行される。文書検索プログラム１２２では、キーボード１０１から入力された検索文字列をワークエリア１２４に格納し、検索文字列に対し、インデクス検索プログラム１３４を実行し、このインデクス検索プログラム１３４の実行結果である文書識別子を取得し、ディスプレイ１００に出力する。
【００７７】
次に、インデクス検索プログラム１３４の処理手順について詳しく説明する。ここで、図１６にインデクス検索プログラム１３４の処理手順をＰＡＤで示す。インデクス検索プログラム１３４では、検索する文字列に対し、登録された主インデクス１１０の内容を検索し、結果となる文書識別子を返す。
【００７８】
まず、ステップ１３４００において、ワークエリア１２４に格納されている検索文字列を使用して主インデクス１１０を検索し、この検索結果の索引情報をワークエリア１２４に格納する。
そして、ステップ１３４０１において、ワークエリア１２４に格納されている検索文字列を使用して反映用一時領域１１３を検索し、この検索結果の文書識別子をワークエリア１２４に格納する。
そして、ステップ１３４０２において、ワークエリア１２４に格納されている検索文字列を使用して蓄積用一時領域１１２を検索し、この検索結果の文書識別子をワークエリア１２４に格納する。
【００７９】
次に、ステップ１３４０３において、ステップ１３４００からステップ１３４０２までの検索結果をすべて合わせ、重複する文書識別子があれば１つにまとめ、ワークエリア１２４に格納する。
最後にステップ１３４０４において、ステップ１３４０３でワークエリア１２４に格納された検索結果の文書識別子から、削除リスト１１５にある文書識別子を削除し、この結果をワークエリア１２４に格納する。そして、ステップ１３４０４で格納した文書識別子をインデクス検索プログラム１３４の処理結果として返して、インデクス検索プログラム１３４の処理が終了する。
【００８０】
（文書削除の手順）
次に、図１を用いて本実施形態における文書削除時の処理の概要について説明する。
本実施形態において、文書削除時には、文書削除プログラム１２５が実行される。文書削除プログラム１２５は、インデクス削除プログラム１３６を使用して文書情報を削除する。このインデクス削除プログラム１３６は、削除リスト１１５に削除対象の文書識別子を書き込むことで、主インデクス１１０から、削除対象の文書識別子に対応する索引項目を削除し、蓄積用一時領域１１２または反映用一時領域から、文書識別情報に対応する文書情報を削除する。
以上が文書削除時の処理である。
【００８１】
（本実施形態の効果）
本実施形態では、特にアプリケーションに直接リンクされ、アプリケーションに処理が返されるまでの間に処理が必要な主インデクス１１０の更新処理において、レスポンスの最悪時間が少ないという効果がある。
【００８２】
また、各索引項目の間には、主インデクス１１０への書き込みの依存関係が発生しないため、マルチスレッドやバックグラウンドの環境においても、必要な排他処理を減らし、同時実行数を増やすことが可能であるという効果がある。
また、データベース等のトランザクションを使用する環境へ適用した場合は、特にコミットされた文書を、後で索引項目毎に主インデクス１１０へ書き込むという処理を行う場合には、更新中に障害が発生した場合においてもロールバックが必要な量を減らすことが可能になるという効果がある。
【００８３】
また、トランザクションを使用する環境へ適用した場合、トランザクション開始時には、蓄積用一時領域１１２の他に、トランザクション専用の一時領域を設け、未コミットの文書はトランザクション専用一時領域に保持し、コミット時に蓄積用一時領域１１２に書き込みを行っても良い。
また、本実施形態では、障害発生時にロールバックを行う場合、ロールバックのために必要なログの量が少なくなるという効果もある。
【００８４】
さらに、本実施形態は、文書を登録した直後から対象文書を検索結果として取得することができるため、即時更新が必要な場合においても適用が可能である。
また、本実施形態では、あらかじめ蓄積用一時領域１１２および反映用一時領域１１３の大きさを固定にすることができる。また、種類リスト１１１は、あらかじめ最大サイズが決まるので、主インデクス１１０および削除リスト１１５以外に、二次記憶装置１０４上に必要な領域の大きさをあらかじめ決めておくことができる。このため、本実施形態によれば、インデクスを使用するためにあらかじめ必要な領域を見積もることが容易になるという効果がある。
また、必要な領域を見積もることが容易であるため、種類リスト１１１、蓄積用一時領域１１２、反映用一時領域１１３を、他の記憶領域に格納したり、専用ハードウェア化したりすることも容易になるという効果がある。
【００８５】
［第２実施形態］
以下、本発明を実施するための第２の実施形態として、文書の登録時以外でもインデクス反映プログラム１３５を実行するようにした場合の形態について説明する。
本実施形態は、図１に示したインデクス反映プログラム１３５を、文書の検索時でも行うことで、登録処理のレスポンスを良くできる。このように登録時以外でもインデクス反映プログラム１３５を実行するために、インデクス反映プログラム１３５は、入力された文書情報を使用せず、既に、文書検索システムに登録済みの文書情報を使用する。
なお、本実施形態において、説明しない文書検索システムの構成は、第１実施形態の文書検索システムと同様である。また、単独の文書登録の手順及び文書削除の手順は、第１の実施形態と同様であるためその説明を省略する。
【００８６】
（文書検索の手順）
本実施形態における、インデクス検索プログラム１３４は、主インデクス１１０、蓄積用一時領域１１２、反映用一時領域１１３、削除リスト１１５を使用して、対象となる文書情報を検索し、さらに、反映用一時領域１１３にある文書情報の一部を主インデクス１１０に書き込む。
【００８７】
ここで、図１７は、本実施形態におけるインデクス検索プログラム１３４の処理手順を示すＰＡＤである。図１７のＰＡＤに示したインデクス検索プログラム１３４の処理手順を参照して、本実施形態の文書検索手順について説明する（適宜、図１〜図５参照のこと。）
【００８８】
まず、ステップ１３４００において、ワークエリア１２４に格納されている検索文字列を使用し、主インデクス１１０を検索し、この検索結果の索引情報２１０をワークエリア１２４に格納する。
そして、ステップ１３４１１において、反映用一時領域１１３を検索すると同時に、検索条件に一致した索引項目に対応する索引情報を、索引情報作成プログラム１３１を実行することで作成する。
【００８９】
次に、ステップ１３４２１において、ステップ１３４１１で検索した索引項目及びこの索引項目に対する索引情報に対し、主インデクス反映プログラム１３２を実行し、主インデクス１１０を更新する。以上の処理を実行することで、検索処理で使われた索引項目に対応する、主インデクス１１０の索引情報２１０を更新することができる。
【００９０】
そして、図１６のＰＡＤに示した第１の実施形態のインデクス検索プログラム１３４のステップ１３４０２からステップ１３４０４と同様の処理を行って、検索結果を出力する。
以上が、インデクス検索プログラム１３４の処理である。
【００９１】
（本実施形態の効果）
本実施形態によると、更新時に必要な主インデクス１１０への書き込み処理の一部を検索時に行うことで、検索処理に必要な時間をわずかに増加させることで、更新時間および更新処理のレスポンスを、大幅に短縮できるという効果がある。
また、インデクス反映プログラム１３５を文書検索時に実行することで、特にアプリケーションに直接リンクされ、アプリケーションの処理の延長でのみ処理可能な全文検索インデクスにおいて、アプリケーションから必要な呼び出しを減らすことができ、アプリケーション側から全文検索インデクスの更新に関する考慮を無くすことができるという効果がある。
さらに、検索文字列に対応する索引項目及び索引情報を使用し、主インデクス１１０を更新することで、次回以降の検索を高速化できるという効果がある。
【００９２】
また、第１の実施形態では登録処理の延長でのみ実施していた、索引項目の主インデクス１１０への更新を、検索処理時にも行うことができるため、登録時のレスポンスを向上させることができるという効果がある。また、よく使用される索引情報は、早い段階で主インデクス１１０に書き込むことができるため、検索が高速になるという効果もある。
【００９３】
なお、本実施形態においては、検索時に使用した索引項目の中で書き込んでいない索引項目をすべて更新したが、書き込む索引項目数を制限することもできる。また、本実施形態では、反映用一時領域１１３を検索すると同時に、検索条件に一致した索引項目に対応する索引情報を、索引情報作成プログラム１３１を実行することで作成することにしたが、索引情報の作成は、反映用一時領域１１３または蓄積用一時領域に１１２に格納された任意の文書情報の索引項目を用いて、索引情報を作成することができる。
【００９４】
［第３実施形態］
以下、本発明を実施するための第３の実施形態として、削除処理において主インデクス１１０から索引情報を削除するようにした場合の形態を詳細に説明する。
本実施形態では、図１に示した文書検索システムにおいて、二次記憶装置１０４上の削除リスト１１５が無い構成となる。また、蓄積用一時領域１１２および反映用一時領域１１３の構造が変更され、インデクス登録プログラム１３３、主インデクス反映プログラム１３２、文書削除プログラム１２５およびインデクス削除プログラム１３６の処理が一部変更される。
なお、その他の構成については、第１の実施形態の文書検索システムと同様であるため、その説明を省略する。
【００９５】
ここで、図１８に、本実施形態の蓄積用一時領域１１２及び反映用一時領域１１３の構造を示す。蓄積用一時領域１１２および反映用一時領域１１３は、文書識別子４００に対し、登録または削除のいずれを行ったかを示す情報が保持された登録削除情報４１０１と、文書情報４１０とを格納する構造からなる。
【００９６】
また、本実施形態におけるインデクス登録プログラム１３３は、文書情報を蓄積用一時領域１１２に登録対象として書き込み、主インデクス反映プログラム１３２は、反映種類決定プログラム１３０及び索引情報作成プログラム１３１で作成された索引項目及び索引情報と、対象が登録か削除かを示す情報とにより、主インデクス１１０への追加・削除を行う。
または、インデクス削除プログラム１３６は、文書情報を蓄積用一時領域１１２に削除対象として書き込み、インデクス反映プログラム１３５を用いて主インデクス１１０への追加・削除を行う。
【００９７】
本実施形態で、第１の実施形態から変更されるプログラムの処理を以下に示す。
文書の削除処理では、まず、キーボード１０１から入力される削除コマンドにより、システム制御プログラム１２０は文書削除プログラム１２５を起動する。文書削除プログラム１２５では、まず、キーボード１０１から入力された削除対象の文書情報及び文書識別子を、ワークエリア１２４に格納する。ここで、文書情報及び文書識別子の対応は、登録時と等しいものとする。次に、インデクス削除プログラム１３６を実行し、主インデクス１１０から、索引項目及び索引情報を削除する。以上が、本実施形態における文書削除プログラム１２５の処理になる。
【００９８】
次に、本実施形態のインデクス登録プログラム１３３では、図１０のＰＡＤに示した第１の実施形態のインデクス登録プログラム１３３のステップ１３３０１およびステップ１３３０６における蓄積用一時領域１１２への登録処理において、登録対象の文書識別子と、登録処理で「登録」された情報であることを示す登録削除情報４１０１と、登録対象の文書情報とを併せて書き込む。
【００９９】
ここで、図１９は、本実施形態の主インデクス反映プログラム１３２の処理手順を示すＰＡＤである。図１９のＰＡＤに示した主インデクス反映プログラム１３２の処理手順を説明する。
まず、ステップ１３２０１では、二次記憶装置１０４上の主インデクス１１０にある索引項目２００の中で、反映索引項目種類の要素に対応する索引情報２１０を取得して、ワークエリア１２４に読み込む。
【０１００】
次に、ステップ１３２２０により、主インデクス反映プログラム１３２におけるワークエリア１２４上の索引情報の更新では、すべての登録・削除対象の索引情報の要素に対し、追加・削除を行うステップ１３２２１からステップ１３２２３の処理を繰り返す。
まず、ステップ１３２２１において、索引情報の要素が登録対象であれば、ステップ１３２２２を実行する。このステップ１３２２２では、ワークエリア１２４上の索引情報に対し、登録対象である索引情報の要素を追加する。
一方、ステップ１３２２１において、索引情報の要素が削除対象であれば、ステップ１３２２３を実行する。このステップ１３２２３では、ワークエリア１２４上の索引情報に対し、削除対象である索引情報の要素を削除する。
【０１０１】
次に、ステップ１３２０３において、ステップ１３２２０の結果、ワークエリア１２４に格納されている索引情報を、二次記憶装置１０４上の主インデクス１１０にある、ステップ１３２０１で使用した索引情報に書き込む。
最後に、ステップ１３２０４において、種類リスト１１１上の、反映索引項目種類に対応する反映情報３１０を書き込み済みである情報「Ｔｒｕｅ」に書き換えて、本実施形態の主インデクス反映プログラム１３２の処理が終了する。
【０１０２】
次に、インデクス削除プログラム１３６では、始めに、図７のＰＡＤに示したインデクス反映プログラム１３５を実行する。ただし、インデクス反映プログラム１３５が実行する、反映種類決定プログラム１３０において、図８に示すステップ１３０００における、反映索引項目個数で用いる登録する文書情報の大きさとして、削除対象の文書情報の大きさを用いる。
【０１０３】
次に、インデクス削除プログラム１３６は、図１０のＰＡＤに示したインデクス登録プログラム１３３を実行する。ただし、本実施形態では、インデクス登録プログラム１３３において、図１０のＰＡＤに示すステップ１３３０１及びステップ１３３０６は、削除対象の文書識別子、削除処理で追加された情報であることを示す登録削除情報、及び削除象の文書情報を、蓄積用一時領域１１２に書き込む。以上が、本実施形態における、インデクス削除プログラム１３６の処理である。
【０１０４】
（本実施形態の効果）
以上、説明した本実施形態によれば、主インデクス１１０から不要なデータを削除する場合においても、キーワード毎に分割して削除することができるため、データの削除処理を高速化できるという効果がある。
なお、本実施形態では、図１９のＰＡＤに示した主インデクス反映プログラム１３２におけるステップ１３２２０から１３２２３の処理において、反映用一時領域１１３を参照して、登録または削除を判断するが、図７に示すインデクス反映プログラム１３５における、ステップ１３５０１において、索引情報を作成する際に、索引情報の要素に、登録か削除かの情報を付加することで、図１９のステップ１３２２１において、反映用一時領域１１３を参照せずに、索引情報の付加情報を参照して判断しても良い。
【０１０５】
また、本実施形態では、削除対象の文書識別子を必ず蓄積用一時領域１１２に追加しているが、蓄積用一時領域１１２に削除対象の文書識別子が存在する場合は、削除対象の文書識別子および削除対象の文書情報を、蓄積用一時領域１１２から削除し、蓄積用一時領域１１２には、削除対象の文書識別子、および、削除対象の文書情報を追加しなくても良い。
また、反映用一時領域１１３に削除対象の文書識別子が存在する場合は、反映用一時領域１１３から、削除対象の文書識別子および削除対象の文書情報を削除しても良い。
ただし、反映用一時領域１１３においては、主インデクス１１０に書き込み済みの、削除対象の文書情報から作成された索引項目が存在する可能性があるため、削除対象の文書識別子および削除対象の文書情報を蓄積用一時領域１１２に追加する必要がある。なお、主インデクス１１０に書き込んでいないことが分かっている場合は、削除対象の文書識別子および削除対象の文書情報を蓄積用一時領域１１２に追加しなくても良い。
【０１０６】
［第４実施形態例］
以下、本発明を実施するための第４の実施形態として、種類リスト１１１に索引情報を格納する場合の形態について、詳細に説明する。
【０１０７】
ここで、図２０は、本実施形態の種類リスト１１１を説明するための図面である。図２０に示すように、本実施形態の種類リスト１１１は、索引項目３００、反映情報３１０、および索引情報３００２から構成される。索引項目３００および反映情報３１０は、図３に示した第１の実施形態の種類リスト１１１と同じ形式である。索引情報３００２は、主インデクス１１０が使用する索引情報２１０と同じ形式である。
また、本実施形態では、索引情報作成プログラム１３１およびインデクス登録プログラム１３３の処理の一部が変更される。
なお、その他の構成については、第１の実施形態の文書検索システムと同様であるため、その説明を省略する。
【０１０８】
本実施形態の索引情報作成プログラム１３１は、図２０に示したこの種類リスト１１１から索引情報を読み込み、ワークエリア１２４に格納する。インデクス登録プログラム１３３は、文書情報を蓄積用一時領域１１２に書き込み、蓄積用一時領域１１２が一杯になった場合には種類リスト１１１を作成し、蓄積用一時領域１１２の内容を削除する。
索引情報作成プログラム１３１における処理では、図２０に示す種類リスト１１１の、索引項目３００に対応した索引情報３００２の要素を、ワークエリア１２４に格納する処理になる。
インデクス登録プログラム１３３における処理では、図１０のＰＡＤに示す、ステップ１３３０４の後に、ステップ１３３０４で作成した種類リストに対応する索引情報を作成する処理を実行する。
【０１０９】
（本実施形態の効果）
以上、説明した本実施形態によれば、文書を登録する処理毎に索引情報を作成する必要がなくなり、インデクスの更新を行う際のレスポンスを向上させることができるという効果がある。
【０１１０】
なお、本実施形態では、インデクス登録プログラム１３３の処理中にすべての索引情報を作成するが、インデクス登録プログラム１３３の処理中では、索引情報の一部だけを作成し、もしくは、索引情報を作成せず、索引情報作成プログラム１３１において、必要になった際に、固定値、ランダム値、使用できるワークエリア１２４の大きさ、種類リスト１１１の書き込み時間、種類リスト１１１の大きさなどの値を用いた量だけ作成し、種類リスト１１１に格納しておいても良い。また、本実施形態では、種類リスト１１１に書き込んだ索引情報は、インデクス登録プログラム１３３の、図１０に示すステップ１３３０４の処理以外では削除されないが、不要な索引情報の大きさが閾値を超えた場合等の、索引情報が不要になった後の任意のタイミングで削除しても良い。
【０１１１】
［第５実施形態］
以下、本発明を実施するための第５の実施形態として、反映用一時領域１１３を使用せずに、１つの蓄積用一時領域１１２のみを使用し、文書識別子ごとに主インデクス１１０に書き込んだか否かを管理する形態について、詳細に説明する。
本実施形態では、図１に示した第１の実施形態における文書検索システムにおいて、二次記憶装置１０４上の、反映用一時領域１１３が無い構成となる。また、種類リスト１１１の反映情報の要素に格納するデータ内容が変更される。さらに、反映種類決定プログラム１３０、主インデクス反映プログラム１３２、インデクス登録プログラム１３３及びインデクス検索プログラム１３４の処理の一部が変更される。
なお、その他の構成については、第１の実施形態の文書検索システムと同様であるため、その説明を省略する。
【０１１２】
ここで、図２１は、本実施形態における種類リスト１１１を説明する図面である。図２１に示すように、本実施形態の種類リスト１１１は、図３に示した第１の実施形態の種類リスト１１１の反映情報３１０に示す「Ｔｒｕｅ」「Ｆａｌｓｅ」が、図２１の文書識別子３１０１に置き替わっている。
また、本実施形態における、反映種類決定プログラム１３０は、図２１に示した種類リスト１１１を使用して、主インデクス１１０に書き込む索引項目を決定する。そして、主インデクス反映プログラム１３２は、反映種類決定プログラム１３０及び索引情報作成プログラム１３１で作成された索引項目及び索引情報を、主インデクス１１０に書き込む。
【０１１３】
また、インデクス登録プログラム１３３は、文書登録プログラム１２１から実行され、文書情報を蓄積用一時領域１１２に書き込む。さらに、インデクス検索プログラム１３４は、文書検索プログラム１２２から実行され、主インデクス１１０、蓄積用一時領域１１２、削除リスト１１５を使用して、対象となる文書情報を検索する。
【０１１４】
また、本実施形態では、図８のＰＡＤに示した第１の実施形態の反映種類決定プログラム１３０のステップ１３００３における、反映索引項目種類を格納する処理では、図２１に示した種類リスト１１１上の文書識別子３１０１の中で、早く登録された文書識別子に対応する索引項目を、優先的に反映索引項目種類に決定する。
また、本実施形態では、図９のＰＡＤに示した第１の実施形態の主インデクス反映プログラム１３２におけるステップ１３２０４において、図２１に示した種類リスト１１１の索引項目３００に対応する文書識別子３１０１には、ステップ１３２０４を実行するまでの間に、最後に割り当てた文書識別子を書き込む。
さらに、ステップ１３２００の繰り返しがすべて終了した後で、種類リスト１１１上の反映情報３１０１中の、最も早く登録された文書識別子に対し、それ以前に登録された、すべての文書識別子と、この文書識別子に対応する文書情報とを、図４に示した蓄積用一時領域１１２上の文書識別子４００及び文書情報４１０の中から削除する。
【０１１５】
また、インデクス登録プログラム１３３における処理は、まず、図２１に示した種類リスト１１１の索引項目３００の中に、登録対象の文書から作成される索引項目が無ければ、登録対象の文書から作成される索引項目を、すべて追加する処理を行う。ここで、追加した索引項目に対応する文書識別子は、登録対象の文書に割り当てられた文書識別子を除いて、最後に割り当てた文書識別子を書き込む。次に、蓄積用一時領域１１２に、登録対象の文書を書き込む。
以上が、本実施形態における、インデクス登録プログラム１３３における処理である。
【０１１６】
（本実施形態の効果）
以上、説明した本実施形態によれば、一時領域を複数扱う必要が無くなるため、第１の実施形態における蓄積用一時領域１１２および反映用一時領域１１３の内容を交換する必要がなくなる。このため、第１の実施形態における蓄積用一時領域１１２および反映用一時領域１１３の内容を移動する必要が無くなり、一時領域の管理が容易になるという効果がある。また、索引情報の作成を、文書登録時に分割して行うため、インデクスへの書き込みに必要な時間やメモリを少なくすることができるという効果がある。
また、本実施形態では、索引項目として作成される種類の最大数が決まっていれば、その最大数に比例した回数以内に、登録した文書が、主インデクス１１０に書き込まれるため、種類リスト１１１が無制限に大きくなることは無い。
なお、本実施形態では、蓄積用一時領域１１２のみを用いて実現した例で示したが、蓄積用一時領域１１２を複数に分割し、２つ以上の一時領域を用いても良い。
【０１１７】
［第６実施形態］
以下、本発明を実施するための第６の実施形態として、反映用一時領域１１３を使用せずに、１つの蓄積用一時領域１１２のみを使用し、蓄積用一時領域１１２への登録時に索引情報を作成する形態について、詳細に説明する。
本実施形態では、図１に示した第１の実施形態の文書検索システムにおいて、二次記憶装置１０４の反映用一時領域１１３が無い構成となる。
【０１１８】
また、種類リスト１１１の反映情報の要素に格納するデータの内容が、図３に示した第１の実施形態の種類リスト１１１の反映情報３１０に示す「Ｔｒｕｅ」「Ｆａｌｓｅ」から、蓄積用一時領域１１２中の索引情報の大きさを示す情報となり、蓄積用一時領域１１２は、図２の主インデクス１１０と同じ構成を取る。
また、反映種類決定プログラム１３０、主インデクス反映プログラム１３２、インデクス登録プログラム１３３およびインデクス検索プログラム１３４の処理の一部が変更される。
なお、その他の構成については、第１の実施形態の文書検索システムと同様であるため、その説明を省略する。
【０１１９】
次に、本実施形態における、反映種類決定プログラム１３０は、種類リスト１１１を使用して、主インデクス１１０に書き込む索引項目を決定する。そして、主インデクス反映プログラム１３２は、反映種類決定プログラム１３０及び索引情報作成プログラム１３１で作成された索引項目及び索引情報を、主インデクス１１０に書き込む。
また、インデクス登録プログラム１３３は、文書登録プログラム１２１から実行され、文書情報を蓄積用一時領域１１２に書き込む。さらにインデクス検索プログラム１３４は、文書検索プログラム１２２から実行され、主インデクス１１０、蓄積用一時領域１１２、削除リスト１１５を使用して、対象となる文書情報を検索する。
【０１２０】
また、本実施形態では、図８のＰＡＤに示した第１の実施形態の反映種類決定プログラム１３０におけるステップ１３０００において、反映索引項目個数の値を固定数にすることができる。また、ステップ１３００３における、反映索引項目種類の決定では、種類リスト１１１上の反映情報の中で、最も索引情報の数が多い索引項目を、優先的に反映索引項目種類に決定する。
【０１２１】
また、図９のＰＡＤに示した第１の実施形態の主インデクス反映プログラム１３２のステップ１３２０４において、主インデクス１１０に書き込んだ索引項目及び索引情報に対応する、蓄積用一時領域１１２の、索引項目及び索引情報を削除し、種類リスト１１１の、索引項目と反映情報から削除する。
また、インデクス登録プログラム１３３における処理は、まず、種類リスト１１１の索引項目の中に、登録対象の文書情報から作成される索引項目が無ければ、登録対象の文書情報から作成される索引項目をすべて追加する処理を行う。ここで、追加した索引項目に対応する反映情報には、‘０’を設定する。次に、索引情報作成プログラム１３１を実行し、登録対象の文書情報から索引情報を作成し、蓄積用一時領域１１２に登録し、反映情報に追加した索引情報の大きさを記録する。以上が、本実施形態における、インデクス登録プログラム１３３における処理である。
【０１２２】
（本実施形態の効果）
本実施形態によれば、一時領域を複数種扱う必要が無くなる。このため、第１の実施形態における蓄積用一時領域１１２及び反映用一時領域１１３の内容を交換する必要がなくなるため、第１の実施形態における蓄積用一時領域１１２及び反映用一時領域１１３の内容を移動する必要が無くなり、一時領域の管理が容易になるという効果がある。また、索引情報の作成を、文書登録時に分散して行うため、インデクスへの書き込みに必要な時間やメモリを少なくすることができるという効果がある。
なお、本実施形態では、蓄積用一時領域１１２のみを用いて実現した例で示したが、蓄積用一時領域１１２を複数に分割し、２つ以上の蓄積用一時領域を用いても良い。
【図面の簡単な説明】
【０１２３】
【図１】第１の実施形態の文書検索システムの構成を示す図面である。
【図２】第１の実施形態の主インデクスを説明する図面である。
【図３】第１の実施形態の種類リストを説明する図面である。
【図４】第１の実施形態の蓄積用一時領域を説明する図面である。
【図５】第１の実施形態の削除リストを説明する図面である。
【図６】第１の実施形態の文書登録プログラムのＰＡＤを示す図面である。
【図７】第１の実施形態のインデクス反映プログラムのＰＡＤを示す図面である。
【図８】第１の実施形態の反映種類決定プログラムのＰＡＤを表す図面である。
【図９】第１の実施形態の主インデクス反映プログラムのＰＡＤを表す図面である。
【図１０】第１の実施形態のインデクス登録プログラムのＰＡＤを表す図面である。
【図１１】第１の実施形態の主インデクスへの書き込みを説明する図面である。
【図１２】第１の実施形態の文書登録時の情報の流れを示した説明図である。
【図１３】第１の実施形態の文書登録時の情報の流れを示した説明図である。
【図１４】第１の実施形態の文書登録時の情報の流れを示した説明図である。
【図１５】第１の実施形態の文書登録時の情報の流れを示した説明図である。
【図１６】第１の実施形態のインデクス検索プログラムのＰＡＤを表す図面である。
【図１７】第２の実施形態のインデクス検索プログラムのＰＡＤを表す図面である。
【図１８】第３の実施形態の蓄積用一時領域及び反映用一時領域を説明する図面である。
【図１９】第３の実施形態の主インデクス反映プログラムのＰＡＤを表す図面である。
【図２０】第４の実施形態の種類リストを説明するための図面である。
【図２１】第５の実施形態の種類リストを説明するための図面である。
【符号の説明】
【０１２４】
１０２  ＣＰＵ
１０４  二次記憶装置
１０５  主記憶装置
１１０  主インデクス
１１１  種類リスト
１１２  蓄積用一時領域
１１３  反映用一時領域
１１４  各種プログラム格納領域
１１５  削除リスト
１２０  システム制御プログラム
１２１  文書登録プログラム
１２２  文書検索プログラム
１２３  索引項目作成プログラム
１２４  ワークエリア
１３０  反映種類決定プログラム
１３１  索引情報生成プログラム
１３２  主インデクス反映プログラム
１３３  インデクス登録プログラム
１３４  インデクス検索プログラム
１３５  インデクス反映プログラム
１３６  インデクス削除プログラム
【図１】
2007299021.tif 000003
【図２】
2007299021.tif 000004
【図３】
2007299021.tif 000005
【図４】
2007299021.tif 000006
【図５】
2007299021.tif 000007
【図６】
2007299021.tif 000008
【図７】
2007299021.tif 000009
【図８】
2007299021.tif 000010
【図９】
2007299021.tif 000011
【図１０】
2007299021.tif 000012
【図１１】
2007299021.tif 000013
【図１２】
2007299021.tif 000014
【図１３】
2007299021.tif 000015
【図１４】
2007299021.tif 000016
【図１５】
2007299021.tif 000017
【図１６】
2007299021.tif 000018
【図１７】
2007299021.tif 000019
【図１８】
2007299021.tif 000020
【図１９】
2007299021.tif 000021
【図２０】
2007299021.tif 000022
【図２１】
2007299021.tif 000023