(57)【要約】【課題】転置インデックスの文書番号配列を並列処理で取得する装置の数を容易に変更できるようにする。【解決手段】文書番号部分列取得要求を受け取った文書番号部分列取得装置６ａでは、自装置の装置番号に応じた担当文書群７ｃが決定される。次に、文書番号部分列探索開始アドレス表記憶装置３から、担当文書群７ｃにおいてキーワード文字列を含む先頭の文書データの文書番号に応じた部分列探索開始アドレス７ｄが抽出される。さらに、転置インデックス記憶装置２に対して、抽出された部分列探索開始アドレス７ｄで示される位置から文書番号の配列が昇順に探索され、担当文書群７ｃに含まれる文書番号が取得される。取得された文書番号の集合が文書番号部分列７ｅとして文書検索管理装置５に送信される。【選択図】図１
2008250722.tif 000002
【特許請求の範囲】
【請求項１】
電子化された文書の検索を行う文書検索システムにおいて、
文書番号が付与された複数の文書データを記憶する文書データベースと、
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を１台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、
検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段と、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して文書番号配列を生成する文書番号配列集計手段と、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成する文書リスト作成手段と、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する検索結果通知手段と、を具備する前記文書検索管理装置と、
前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を並列処理台数で除算して１台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書番号部分列として前記文書検索管理装置に送信する部分列取得手段と、を具備する複数の前記文書番号部分列取得装置と、
を有することを特徴とする文書検索システム。
【請求項２】
前記文書番号部分列探索開始アドレス表記憶装置には、前記文書番号部分列取得装置の前記並列運用予定台数が異なる複数の前記文書番号部分列探索開始アドレス表が記憶されており、
前記部分列探索開始位置決定手段は、前記文書番号部分列取得要求で示された前記並列処理台数に対応する前記並列運用予定台数の前記文書番号部分列探索開始アドレス表を参照して、前記部分列探索開始アドレスの抽出を行うことを特徴とする請求項１記載の文書検索システム。
【請求項３】
前記文書番号部分列探索開始アドレス表記憶装置には、前記文書番号部分列取得装置の前記並列運用予定台数を複数の数値の公倍数とした前記文書番号部分列探索開始アドレス表が記憶され、前記文書番号部分列探索開始アドレス表の前記部分列探索開始アドレスは、前記公倍数の約数それぞれの台数の前記文書番号部分列取得装置で運用したときの装置番号と対応付けられており、
前記部分列探索開始位置決定手段は、前記並列処理台数で前記文書番号部分列取得装置を運用したときの前記装置番号の中から自己の前記装置番号を検出し、検出した前記装置番号に対応する前記部分列探索開始アドレスを抽出することを特徴とする請求項１記載の文書検索システム。
【請求項４】
前記文書番号部分列探索開始アドレス表記憶装置に記憶された前記文書番号部分列探索開始アドレス表には、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で、前記担当文書群頭出し文書番号が記録される位置を前記文書番号の配列における先頭からのアドレスの差分で表した相対アドレスが、前記部分列探索開始アドレスとして登録されており、
前記部分列取得手段は、前記転置インデックス記憶装置内の前記検索キーワードに対応する前記キーワード文字列に関連付けられた文書番号の配列における先頭アドレスに、前記部分列探索開始アドレスで示される前記相対アドレスを加算した位置から、アドレスが大きくなる方向へ向かって前記文書番号の探索を行う、
ことを特徴とする請求項１記載の文書検索システム。
【請求項５】
前記文書検索管理装置は、転置インデックス作成指示が入力されると、前記文書データベースを参照して前記転置インデックスを更新すると共に、更新後の前記転置インデックスを参照して前記文書番号部分列探索開始アドレス表を更新する転置インデックス更新手段をさらに有することを特徴とする請求項１記載の文書検索システム。
【請求項６】
電子化された文書の検索を行う文書検索システムにおいて、
文書番号が付与された複数の文書データを記憶する文書データベースと、
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書番号の最小値から所定間隔の数値に対応する前記文書番号の値を所定間隔頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で、前記所定間隔頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、前記キーワード文字列に対応付けて登録されており、前記部分列探索開始アドレスに対して、前記部分列探索開始アドレスが指し示す位置を含む前記文書番号の配列において前記部分列探索開始アドレスに対応する前記所定間隔頭出し文書番号以下の文書番号のうち最も大きな値が付与された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、
検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書データベースに登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段と、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して文書番号配列を生成する文書番号配列集計手段と、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成する文書リスト作成手段と、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する検索結果通知手段と、を具備する前記文書検索管理装置と、
前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して１台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、前記担当文書群の先頭の文書データの文書番号以下の前記文書番号が付与された前記所定間隔頭出し文書番号のうち最も大きな値の前記文書番号が付与された前記所定間隔頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書番号部分列として前記文書検索管理装置に送信する部分列取得手段と、を具備する複数の前記文書番号部分列取得装置と、
を有することを特徴とする文書検索システム。
【請求項７】
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む文書データの文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を１台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、を用い、
文書検索管理装置からの文書番号部分列取得要求に応じて、前記転置インデックス記憶装置から前記文書番号の配列の一部を取得するための文書番号部分列取得装置において、
前記文書データの数を示す文書総数、前記文書番号部分列取得装置の運用数を示す並列処理台数、および検索キーワードを含む前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して１台当たりの担当文書数を計算し、文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、
前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、
前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書検索管理装置に送信する部分列取得手段と、
を有することを特徴とする文書番号部分列取得装置。
【請求項８】
電子化された文書の検索を行うための文書検索方法において、
文書番号が付与された複数の文書データを記憶する文書データベースと、
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を１台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、が予め用意されており、
文書検索管理装置の文書番号部分列取得要求手段が、検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書データベースに登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信し、
前記文書番号部分列取得装置それぞれの担当文書群決定手段が、前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して１台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定し、
前記文書番号部分列取得装置それぞれの部分列探索開始位置決定手段が、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出し、
前記文書番号部分列取得装置それぞれの部分列取得手段が、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を文書番号部分列として前記文書検索管理装置に送信し、
前記文書検索管理装置の文書番号配列集計手段が、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される前記文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して前記文書番号配列を生成し、
前記文書検索管理装置の文書リスト作成手段が、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成し、
前記文書検索管理装置の検索結果通知手段が、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する、
ことを特徴とする文書検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は利用者が指定したキーワードを含む文書を検索する文書検索システム、文書番号部分列取得装置、および文書検索方法に関し、特に大量の電子文書を解析して転置インデックスを用いて文書を高速に検索する文書検索システム、文書番号部分列取得装置、および文書検索方法に関する。
【背景技術】
【０００２】
大量の電子文書の中から、利用者が指定したキーワード文字列（検索キーワード）を含む文書を検索する文書検索方法として、転置インデックス方式と呼ばれる手法が知られている。転置インデックス方式では、利用者が指定し得るキーワード文字列と、そのキーワード文字列を含む文書集合を示す情報とを組としたデータ構造を有する転置インデックスを事前に作成しておく。なお、キーワード文字列に対応付けられる文書集合を示す情報は、検索対象となる各文書を一意に識別する文書番号の配列（文書番号配列）によって、文書集合に含まれる各文書と関連付けられている。
【０００３】
転置インデックス方式の文書検索装置において、大量の文書を検索対象として、単一の検索キーワードを含む文書を検索する場合、転置インデックスから検索キーワードに対応するキーワード文字列を検索する。次に、文書検索装置は、見つけ出したキーワード文字列に対応する文書番号配列を転置インデックスから取得する。そして、文書検索装置は、取得した文書番号配列に含まれる各文書番号で示される文書の情報（たとえば、その文書のＵＲＬ(Uniform Resource Locator)やタイトル等）を文書データベースから抽出し、検索結果として出力する。
【０００４】
ところで、近年のストレージデバイスの大容量化に伴い、膨大な量の文書をストレージデバイスに保存しておくことが可能となっている。また、情報通信技術の発達により、ネットワークを介して接続された多数のコンピュータに保存されている文書を、まとめて検索対象とすることも可能となっている。その結果、文書検索における検索対象の文書量は増加の一途を辿っている。検索対象の文書量の増加に伴い、転置インデックスのデータ量が増大する。すると、文書検索装置が転置インデックスから当該キーワード文字列を含む文書の文書番号配列を取り出す処理に多くの時間を要することとなる。
【０００５】
そこで、転置インデックスから文書番号配列を取り出す処理を高速化するために、文書番号配列の取り出し処理を並列化することが行われている。
図１９は、従来の文書検索システムの例を示す図である。並列化された文書検索システムでは、複数の転置インデックス記憶装置９３ａ，９３ｂ，９３ｃ，９３ｄが設けられている。転置インデックス記憶装置９３ａ，９３ｂ，９３ｃ，９３ｄには、転置インデックスが格納されている。各転置インデックスには、同様のキーワード文字列が設定されており、各キーワード文字列を含む文書の文書番号が、いずれかの転置インデックスに登録されている。すなわち、膨大な数の文書の文書番号が、複数の転置インデックス記憶装置９３ａ，９３ｂ，９３ｃ，９３ｄに分散格納されている。
【０００６】
検索キーワード入力装置９１に入力された検索キーワード（図１９の例では「情報」）は、複数の文書番号部分列取得装置９２ａ，９２ｂ，９２ｃ，９２ｄそれぞれに対して渡される（ステップＳ９１）。文書番号部分列取得装置９２ａ，９２ｂ，９２ｃ，９２ｄは、それぞれに対応付けられた転置インデックス記憶装置９３ａ，９３ｂ，９３ｃ，９３ｄから、検索キーワードに対応するキーワード文字列を検索する（ステップＳ９２）。
【０００７】
さらに、文書番号部分列取得装置９２ａ，９２ｂ，９２ｃ，９２ｄは、それぞれに対応付けられた転置インデックス記憶装置９３ａ，９３ｂ，９３ｃ，９３ｄから、見つけ出したキーワード文字列に対応付けられた文書番号配列を取得する（ステップＳ９３）。そして、文書番号部分列取得装置９２ａ，９２ｂ，９２ｃ，９２ｄは、取得した文書番号配列を文書番号配列集計出力装置９４に渡す（ステップＳ９４）。文書番号配列集計出力装置９４は、受け取った文書番号配列を集計し、検索結果として出力する。
【０００８】
このようにして複数の転置インデックス記憶装置９３ａ，９３ｂ，９３ｃ，９３ｄに文書番号を分散格納することで、複数の文書番号部分列取得装置９２ａ，９２ｂ，９２ｃ，９２ｄを用いて文書番号配列の取り出しを並列で行うことができる（たとえば、非特許文献１参照）。
【非特許文献１】佐藤俊一、佐藤理、”Web検索サービス:InfoNavigator”、雑誌FUJITSU Vol.49, No.5, pp.353-357 、［online］、1998年9月、富士通株式会社、［平成19年2月15日検索］、インターネット<URL:http://img.jp.fujitsu.com/downloads/jp/jmag/vol49-5/paper04.pdf>
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、転置インデックスを作成する際にインデックスデータを複数に分割する方法では、以下のような問題点があった。
第１に、転置インデックスを作成する際のインデックスデータ分割数によって、検索時に使用する処理装置の数が固定されてしまうという問題がある。すなわち、インターネット上の文書検索等に用いる場合、検索対象の文書は日々変化する。そのため、文書検索システムの運用を開始し、ある程度の期間が経過すると、適切な検索処理時間を実現できる装置台数に対して、運用している文書番号部分列取得装置の過不足が生じる。検索対象の文書量に対して文書番号部分列取得装置が不足していれば、処理時間の超過（保証すべき検索処理時間を超過すること）が発生する。また、運用開始時に、処理能力に余裕を持って文書番号部分列取得装置の並列化を図ると、資源の無駄が生じ、文書検索システムの運用効率が低下してしまう。
【００１０】
第２に、検索対象の文書の文書番号を転置インデックスに登録する際に、処理負荷が均等化されるように分散配置する必要がある。均等に文書番号を登録する手続きは、それぞれの転置インデックスに対して、運用管理者が操作入力することで行われる。その結果、文書検索装置の運用管理者の作業負担が過大となっている。
【００１１】
特に、検索対象となる文書集合が人為的に集められている場合、人が理解しやすいように文書集合が分類されていることが多い。たとえば、文書の作成された日付に基づいて、作成年ごとに文書集合が分類される。このような分類単位をそのまま転置インデックスへの分類に流用すると、文書数が均等にならない。そのため、文書が均等に分けられるように、転置インデックスへの文書番号の登録を変更する操作入力が必要となる。その結果、運用管理者の作業が増大する。
【００１２】
本発明はこのような点に鑑みてなされたものであり、転置インデックスの文書番号配列を並列処理で取得する装置の数を容易に変更可能な文書検索システム、文書番号部分列取得装置、および文書検索方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では上記課題を解決するために、図１に示すような電子化された文書の検索を行う文書検索システムが提供される。文書検索システムには、文書ＤＢ１、転置インデックス記憶装置２、文書番号部分列探索開始アドレス表記憶装置３、文書検索管理装置５、および複数の文書番号部分列取得装置６ａ，６ｂ，６ｃ，６ｄが設けられている。
【００１４】
文書ＤＢ１は、文書番号が付与された複数の文書データを記憶する。転置インデックス記憶装置２は、複数のキーワード文字列それぞれに対応付けて、キーワード文字列を含む文書データの文書番号が、文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する。文書番号部分列探索開始アドレス表記憶装置３は、文書ＤＢ１に登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を１台当たりの担当文書数とし、文書ＤＢ１内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する文書番号の値を担当文書群頭出し文書番号とし、転置インデックスにおいてキーワード文字列それぞれに対応付けられた文書番号の配列上で担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する担当文書群頭出し文書番号の値の小さい順にキーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する。
【００１５】
文書検索管理装置５は、検索依頼装置４からの検索キーワードを含む文書検索依頼７ａに応答して、文書ＤＢ１に登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および検索キーワードを含む文書番号部分列取得要求７ｂを、複数の文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段５ａと、文書番号部分列取得要求７ｂに応じて複数の文書番号部分列取得装置から返される文書番号部分列７ｅを取得し、文書番号部分列７ｅに含まれる文書番号を集計して文書番号配列７ｆを生成する文書番号配列集計手段５ｂと、文書番号配列集計手段５ｂが生成した文書番号配列７ｆに含まれる文書番号それぞれに対応する文書データを文書データベースから抽出し、抽出した文書データに関する文書リスト７ｇを作成する文書リスト作成手段５ｃと、文書リスト作成手段５ｃが作成した文書リスト７ｇを検索依頼装置に送信する検索結果通知手段５ｄと、を有する。
【００１６】
文書番号部分列取得装置６ａは、文書番号部分列取得要求７ｂを文書検索管理装置５から受け取ると、文書総数を並列処理台数で除算して１台当たりの担当文書数を計算し、文書ＤＢ１内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の文書群を担当文書群７ｃとして決定する担当文書群決定手段６ａａと、文書番号部分列探索開始アドレス表記憶装置内の文書番号部分列探索開始アドレス表を参照し、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスの中から、自装置の装置番号に応じた順番で登録された担当文書群頭出し文書番号に対応する部分列探索開始アドレスを抽出する部分列探索開始位置決定手段６ａｂと、転置インデックス記憶装置２内の転置インデックスを参照し、部分列探索開始位置決定手段６ａｂで抽出された部分列探索開始アドレス７ｄで示される位置から文書番号の配列を昇順に探索し、検索キーワードに対応するキーワード文字列に関連付けられた文書番号配列内の担当文書群７ｃに含まれる文書番号を取得し、取得した文書番号の集合を文書番号部分列７ｅとして文書検索管理装置５に送信する部分列取得手段６ａｃと、を有する。
【００１７】
他の文書番号部分列取得装置６ｂ，６ｃ，６ｄの構成も文書番号部分列取得装置６ａと同様である。
このような文書検索システムによれば、検索依頼装置４からの文書検索依頼７ａが文書検索管理装置５に入力されると、文書番号部分列取得要求手段５ａにより、文書番号部分列取得要求７ｂが複数の文書番号部分列取得装置６ａ，６ｂ，６ｃ，６ｄそれぞれに送信される。すると、文書番号部分列取得装置６ａの担当文書群決定手段６ａａにより、文書ＤＢ１内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の文書群が担当文書群７ｃとして決定される。次に、文書番号部分列取得装置６ａの部分列探索開始位置決定手段６ａｂにより、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスの中から、自装置の装置番号に応じた順番で登録された担当文書群頭出し文書番号に対応する部分列探索開始アドレスが抽出される。さらに、文書番号部分列取得装置６ａの部分列取得手段６ａｃにより、抽出された部分列探索開始アドレス７ｄで示される位置から文書番号の配列が昇順に探索され、検索キーワードに対応するキーワード文字列に関連付けられた文書番号配列内の担当文書群７ｃに含まれる文書番号が取得され、取得された文書番号の集合が文書番号部分列７ｅとして文書検索管理装置５に送信される。同様に、他の文書番号部分列取得装置６ｂ，６ｃ，６ｄからも、文書番号部分列が文書検索管理装置５に送信される。文書検索管理装置５の文書番号配列集計手段５ｂにより、複数の文書番号部分列取得装置から返される文書番号部分列が取得され、文書番号部分列に含まれる文書番号が集計され文書番号配列７ｆが生成される。次に、文書検索管理装置５の文書リスト作成手段５ｃにより、文書番号配列７ｆに含まれる文書番号それぞれに対応する文書データが文書ＤＢ１から抽出され、文書リスト７ｇが作成される。そして、文書検索管理装置５の検索結果通知手段５ｄにより、文書リスト７ｇが検索依頼装置４に送信される。
【発明の効果】
【００１８】
本発明では、文書番号部分列取得装置の装置番号ごとに、各キーワード文字列を探索する際の探索開始位置を示す部分列探索開始アドレスを文書番号部分列探索開始アドレス表に予め登録しておくことにより、文書番号部分列取得装置は文書番号部分列探索開始アドレス表に基づいて転置インデックス内の文書番号の探索開始位置を知り、その位置から担当文書群に含まれる文書番号の部分列を抽出することができる。その結果、並列で運用する文書番号部分列取得装置の予定台数が異なる複数の文書番号部分列探索開始アドレス表を予め用意しておけば、並列して運用される文書番号部分列取得装置の台数が予定台数の範囲内で変更された場合、使用する文書番号部分列探索開始アドレス表を切り替えるだけで済み、文書番号部分列取得装置の台数の変更を迅速に行うことができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、発明の概要を示す図である。本発明に係る文書検索システムには、文書ＤＢ１、転置インデックス記憶装置２、文書番号部分列探索開始アドレス表記憶装置３、文書検索管理装置５、および複数の文書番号部分列取得装置６ａ，６ｂ，６ｃ，６ｄが設けられている。
【００２０】
文書ＤＢ１は、文書番号が付与された複数の文書データを記憶する。
転置インデックス記憶装置２は、転置インデックスを記憶する。転置インデックスには、複数のキーワード文字列それぞれに対応付けて、キーワード文字列を含む文書データの文書番号が、文書番号の数値に応じて昇順の配列で登録されている。
【００２１】
文書番号部分列探索開始アドレス表記憶装置３は、文書番号部分列探索開始アドレス表を記憶する。文書番号部分列探索開始アドレス表には、転置インデックスにおいてキーワード文字列それぞれに対応付けられた文書番号の配列上で担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する担当文書群頭出し文書番号の値の小さい順にキーワード文字列に対応付けて登録されている。ここで、担当文書群頭出し文書番号は、文書ＤＢ１内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において、対応するキーワード文字列を含む先頭の文書データに対応する文書番号の値である。１台当たりの担当文書数は、文書ＤＢ１に登録されている文書データの数を示す文書総数を、予定されている文書番号部分列取得装置の並列運用予定台数で除算して得られる値である。
【００２２】
文書検索管理装置５は、文書番号部分列取得要求手段５ａ、文書番号配列集計手段５ｂ、文書リスト作成手段５ｃ、および検索結果通知手段５ｄを有する。
文書番号部分列取得要求手段５ａは、検索依頼装置４からの検索キーワードを含む文書検索依頼７ａに応答して、文書ＤＢ１に登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および検索キーワードを含む文書番号部分列取得要求７ｂを、複数の文書番号部分列取得装置６ａ，６ｂ，６ｃ，６ｄそれぞれに送信する。
【００２３】
文書番号配列集計手段５ｂは、文書番号部分列取得要求７ｂに応じて複数の文書番号部分列取得装置から返される文書番号部分列７ｅを取得し、文書番号部分列７ｅに含まれる文書番号を集計して文書番号配列７ｆを生成する。
【００２４】
文書リスト作成手段５ｃは、文書番号配列集計手段５ｂが生成した文書番号配列７ｆに含まれる文書番号それぞれに対応する文書データを文書データベースから抽出し、抽出した文書データに関する文書リスト７ｇを作成する。
【００２５】
検索結果通知手段５ｄは、文書リスト作成手段５ｃが作成した文書リスト７ｇを検索依頼装置に送信する。
文書番号部分列取得装置６ａは、担当文書群決定手段６ａａ、部分列探索開始位置決定手段６ａｂ、および部分列取得手段６ａｃを有する。
【００２６】
担当文書群決定手段６ａａは、文書番号部分列取得要求７ｂを文書検索管理装置５から受け取ると、文書総数を並列処理台数で除算して１台当たりの担当文書数を計算する。さらに、担当文書群決定手段６ａａは、文書ＤＢ１内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の文書群を担当文書群７ｃとして決定する。
【００２７】
部分列探索開始位置決定手段６ａｂは、文書番号部分列探索開始アドレス表記憶装置内の文書番号部分列探索開始アドレス表を参照し、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスの中から、自装置の装置番号に応じた順番で登録された担当文書群頭出し文書番号に対応する部分列探索開始アドレスを抽出する。
【００２８】
部分列取得手段６ａｃは、転置インデックス記憶装置２内の転置インデックスを参照し、部分列探索開始位置決定手段６ａｂで抽出された部分列探索開始アドレス７ｄで示される位置から文書番号の配列を昇順に探索し、検索キーワードに対応するキーワード文字列に関連付けられた文書番号配列内の担当文書群７ｃに含まれる文書番号を取得し、取得した文書番号の集合を文書番号部分列７ｅとして文書検索管理装置５に送信する。
【００２９】
他の文書番号部分列取得装置６ｂ，６ｃ，６ｄの構成も文書番号部分列取得装置６ａと同様である。
このような文書検索システムによれば、検索依頼装置４からの文書検索依頼７ａが文書検索管理装置５に入力されると、文書番号部分列取得要求手段５ａにより、文書番号部分列取得要求７ｂが複数の文書番号部分列取得装置６ａ，６ｂ，６ｃ，６ｄそれぞれに送信される。すると、文書番号部分列取得装置６ａの担当文書群決定手段６ａａにより、文書ＤＢ１内の文書データを文書番号の小さい順に担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の文書群が担当文書群７ｃとして決定される。次に、文書番号部分列取得装置６ａの部分列探索開始位置決定手段６ａｂにより、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスの中から、自装置の装置番号に応じた順番で登録された担当文書群頭出し文書番号に対応する部分列探索開始アドレス７ｄが抽出される。さらに、文書番号部分列取得装置６ａの部分列取得手段６ａｃにより、抽出された部分列探索開始アドレス７ｄで示される位置から文書番号の配列が昇順に探索され、検索キーワードに対応するキーワード文字列に関連付けられた文書番号配列内の担当文書群７ｃに含まれる文書番号が取得され、取得された文書番号の集合が文書番号部分列７ｅとして文書検索管理装置５に送信される。同様に、他の文書番号部分列取得装置６ｂ，６ｃ，６ｄからも、文書番号部分列が文書検索管理装置５に送信される。
【００３０】
文書検索管理装置５の文書番号配列集計手段５ｂにより、複数の文書番号部分列取得装置から返される文書番号部分列が取得され、文書番号部分列に含まれる文書番号が集計され文書番号配列７ｆが生成される。次に、文書検索管理装置５の文書リスト作成手段５ｃにより、文書番号配列７ｆに含まれる文書番号それぞれに対応する文書データが文書ＤＢ１から抽出され、文書リスト７ｇが作成される。そして、文書検索管理装置５の検索結果通知手段５ｄにより、文書リスト７ｇが検索依頼装置４に送信される。
【００３１】
これにより、並列で運用する文書番号部分列取得装置の予定台数が異なる複数の文書番号部分列探索開始アドレス表を予め用意しておけば、並列して運用される文書番号部分列取得装置の台数が予定台数の範囲内で変更された場合、使用する文書番号部分列探索開始アドレス表を切り替えるだけで済む。その結果、文書番号部分列取得装置の台数の変更を迅速に行うことができる。
【００３２】
ところで、最近は、インターネットを介して文書検索を行うことが一般的になっている。このように、インターネット経由の文書検索サービスを行った場合、２４時間不停止で運用することが多い。その場合、サービスを継続したまま、システムを増強できることが望まれる。そこで、本発明をインターネット経由の文書検索システムに適用し、システムの増強を容易にした実施の形態について以下に詳細に説明する。
【００３３】
［第１の実施の形態］
図２は、第１の実施の形態の文書検索システム構成例を示す図である。第１の実施の形態では、インターネット１０にＷｅｂサーバ３００が接続されている。Ｗｅｂサーバ３００は、インターネット１０を介して、複数のクライアント２１，２２に対して情報提供を行う。なお、このＷｅｂサーバ３００は、図１に示す検索依頼装置４に相当する。
【００３４】
Ｗｅｂサーバ３００には、文書検索管理装置１００が接続されている。そして、Ｗｅｂサーバ３００は、クライアント２１，２２から検索条件の入力が行われ、文書の検索指示が出されると、文書検索依頼を文書検索管理装置１００に対して送信する。
【００３５】
文書検索管理装置１００は文書データベース（ＤＢ）１１０を有しており、Ｗｅｂサーバ３００からの文書検索依頼が入力されると、その文書検索依頼に応じて文書検索を行う。具体的には、文書検索管理装置１００は、文書番号部分列取得装置２１０，２２０，２３０，２４０を介して、検索条件に含まれる検索キーワードに応じた文書番号配列を取得する。そして、文書検索管理装置１００は、取得した文書番号配列に含まれる文書の情報を文書ＤＢ１１０から抽出し、検索結果としてＷｅｂサーバ３００に送信する。
【００３６】
文書検索管理装置１００には、複数の文書番号部分列取得装置２１０，２２０，２３０，２４０が接続されている。また、文書番号部分列取得装置２１０，２２０，２３０，２４０には、文書番号部分列探索開始アドレス表記憶装置４１０と転置インデックス記憶装置４２０とが接続されている。
【００３７】
文書番号部分列探索開始アドレス表記憶装置４１０には、文書番号部分列探索開始アドレス表が記憶されている。文書番号部分列探索開始アドレス表には、各文書番号部分列取得装置２１０，２２０，２３０，２４０が転置インデックス記憶装置４２０内の転置インデックスから文書番号を取得する際の部分列探索開始アドレスが、キーワード文字列ごとに設定されている。この部分列探索開始アドレスは、転置インデックスにおいてキーワード文字列それぞれに対応付けられた文書番号の配列上で、担当文書群頭出し文書番号が記録される位置を示している。
【００３８】
担当文書群頭出し文書番号は、複数の文書番号部分列取得装置それぞれに担当文書群を割り当てる際の各担当文書群において、対応するキーワード文字列を含む先頭の文書データの文書番号である。なお、担当文書群頭出し文書番号は、少なくとも想定される文書番号部分列取得装置の並列運用予定台数以上の数が定義される。並列運用予定台数ごとに個別の文書番号部分列探索開始アドレス表が作成されている場合（同時運用台数が変われば常に使用する文書番号部分列探索開始アドレス表も変更される場合）には、並列運用予定台数と同数の担当文書群頭出し文書番号が定義されていればよい。
【００３９】
転置インデックス記憶装置４２０には、転置インデックスが格納されている。転置インデックスには、キーワード文字列ごとに、そのキーワード文字列を含む文書の文書番号の配列（文書番号配列）が登録されている。
【００４０】
文書番号部分列取得装置２１０，２２０，２３０，２４０は、文書検索管理装置１００からの文書番号部分列取得要求に応じて、文書番号配列の部分列を転置インデックス記憶装置４２０から取得する。なお、文書番号部分列取得装置２１０，２２０，２３０，２４０は、それぞれ異なる装置番号が予め付与されている。装置番号は、０から始まる整数である。図２の例では、文書番号部分列取得装置２１０の装置番号は「０」、文書番号部分列取得装置２２０の装置番号は「１」、文書番号部分列取得装置２３０の装置番号は「２」、文書番号部分列取得装置２４０の装置番号は「３」である。この装置番号に基づいて、各文書番号部分列取得装置２１０，２２０，２３０，２４０が検索の対象とすべき文書群が決定される。
【００４１】
文書番号部分列取得装置２１０，２２０，２３０，２４０は、文書番号部分列探索開始アドレス表記憶装置４１０に格納された文書番号部分列探索開始アドレス表を参照し、自己の装置番号に基づいて、自身が取得すべき文書番号部分列の探索開始アドレスを取得する。そして、各文書番号部分列取得装置２１０，２２０，２３０，２４０が、独自の探索開始アドレスから所定の範囲の文書番号部分列を転置インデックスから取得する。
【００４２】
このような文書検索システムにおいて、クライアント２１，２２から検索条件を含む検索要求がＷｅｂサーバ３００に対して送信されると、その検索条件が文書検索管理装置１００に渡される。検索条件には、１以上の検索キーワードが含まれる。そこで、文書検索管理装置１００は、検索キーワードに応じた文書番号部分列取得要求を、各文書番号部分列取得装置２１０，２２０，２３０，２４０に対して送信する。
【００４３】
各文書番号部分列取得装置２１０，２２０，２３０，２４０は、文書番号部分列探索開始アドレス表記憶装置４１０に格納された文書番号部分列探索開始アドレス表に基づいて、自己の探索開始アドレスを認識する。そして、各文書番号部分列取得装置２１０，２２０，２３０，２４０は、転置インデックス記憶装置４２０内の転置インデックス内の探索開始アドレスから文書番号配列の部分列を取得する。文書番号部分列取得装置２１０，２２０，２３０，２４０が取得した文書番号部分列は、文書検索管理装置１００に渡される。
【００４４】
文書検索管理装置１００は、文書番号部分列取得装置２１０，２２０，２３０，２４０から取得した文書番号部分列を集計し、転置インデックス記憶装置４２０に記憶されている転置インデックスに登録されていた文書番号配列を再構成する。次に、文書検索管理装置１００は、文書番号配列に含まれる一部またはすべての文書番号に対応する文書の情報を文書ＤＢ１１０から取得する。そして、文書検索管理装置１００は、取得した文書データを検索結果としてＷｅｂサーバ３００に渡す。
【００４５】
Ｗｅｂサーバ３００は、文書検索管理装置１００から受け取った検索結果をＷｅｂページ用の文書データ（たとえば、ＨＴＭＬ（HyperText Markup Language）文書）内に配置して、検索要求を出力したクライアントに対して送信する。
【００４６】
このようにして、クライアント２１，２２を利用するユーザに対して、文書ＤＢ１１０に格納された文書の文書検索サービスが提供される。
図３は、第１の実施の形態に用いる文書検索管理装置のハードウェア構成例を示す図である。文書検索管理装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００４７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００４８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０８を介してＣＰＵ１０１に送信する。
【００４９】
通信インタフェース１０６は、ネットワーク８１に接続されている。通信インタフェース１０６は、ネットワーク８１を介して、Ｗｅｂサーバ３００との間でデータの送受信を行う。
【００５０】
通信インタフェース１０７は、ネットワーク８２に接続されている。通信インタフェース１０７は、ネットワーク８２を介して、文書番号部分列取得装置２１０，２２０，２３０，２４０との間でデータの送受信を行う。
【００５１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、文書検索管理装置１００のハードウェア構成を示したが、文書番号部分列取得装置２１０，２２０，２３０，２４０、Ｗｅｂサーバ３００、クライアント２１，２２も同様のハードウェア構成で実現することができる。
【００５２】
図４は、第１の実施の形態における文書検索機能を示すブロック図である。図４に示すように、文書検索管理装置１００は、検索条件解析部１２１、文書番号部分列取得要求部１２２、文書番号配列集計部１２３、文書リスト作成部１２４、検索結果通知部１２５、および転置インデックス作成部１２６を有している。
【００５３】
検索条件解析部１２１は、Ｗｅｂサーバ３００から検索条件を含む文書検索依頼を受け取ると、その文書検索依頼に含まれる検索条件を解析する。具体的には、検索条件解析部１２１は、検索条件から検索キーワードを抽出する。そして、検索条件解析部１２１は、検索キーワードを文書番号部分列取得要求部１２２に渡す。なお、検索条件に複数の検索キーワードと論理演算子が含まれていた場合、検索条件解析部１２１は、検索条件から抽出した複数のキーワードおよび論理演算子の組を文書番号部分列取得要求部１２２に渡す。論理演算子は、複数の検索キーワードの論理和（ＯＲ）なのか論理積（ＡＮＤ）なのかを示す情報である。
【００５４】
文書番号部分列取得要求部１２２は、検索条件解析部１２１から渡された検索キーワードを含む文書番号部分列取得要求を、各文書番号部分列取得装置２１０，２２０，２３０，２４０に送信する。なお、文書番号部分列取得要求部１２２は、検索条件解析部１２１から複数の検索キーワードと論理演算子との組が渡された場合、複数の検索キーワードと論理演算子とを含む文書番号部分列取得要求を、各文書番号部分列取得装置２１０，２２０，２３０，２４０に送信する。
【００５５】
文書番号配列集計部１２３は、文書番号部分列取得要求に応じて各文書番号部分列取得装置２１０，２２０，２３０，２４０から送られた文書番号配列の部分列を取得する。次に、文書番号配列集計部１２３は、取得した文書番号部分列を集計し、検索キーワードに応じた文書番号配列を生成する。そして、文書番号配列集計部１２３は、生成した文書番号配列を文書リスト作成部１２４に渡す。
【００５６】
文書リスト作成部１２４は、文書番号配列集計部１２３から渡された検索キーワードの文書番号配列を取得する。そして、文書リスト作成部１２４は、文書番号配列に含まれる文書番号に対応する文書データを、文書ＤＢ１１０から取得する。
【００５７】
文書リスト作成部１２４は、取得した文書データに基づいて、文書リストを作成する。文書リストには、たとえば、文書のタイトル、文書のＵＲＬ、検索キーワードを含む文の文字列などが含まれる。そして、文書リスト作成部１２４は、作成した文書リストを検索結果通知部１２５に渡す。
【００５８】
検索結果通知部１２５は、文書リスト作成部１２４から取得した文書リストをＷｅｂサーバ３００に対して送信する。
転置インデックス作成部１２６は、運用管理者からの操作入力等により転置インデックスの作成指示を受け取ると、文書ＤＢ１１０から文書データを取得し、転置インデックスと文書番号部分列探索開始アドレス表とを作成する。転置インデックス作成部１２６は、作成した転置インデックスを転置インデックス記憶装置４２０に格納し、作成した文書番号部分列探索開始アドレス表を文書番号部分列探索開始アドレス表記憶装置４１０に格納する。
【００５９】
文書番号部分列取得装置２１０は、担当文書群決定部２１１、部分列探索開始位置決定部２１２、文書番号部分列探索開始アドレス表キャッシュ領域２１３、部分列取得部２１４、および論理演算部２１５を有している。
【００６０】
担当文書群決定部２１１は、文書検索管理装置１００から検索キーワードを含む文書番号部分列取得要求を受け取ると、その文書番号部分列取得要求から、文書番号最大値と、運用している文書番号部分列取得装置の台数とを抽出する。そして、担当文書群決定部２１１は、文書番号部分列取得装置２１０自身の装置番号に基づいて、検索対象とすべき担当文書群を決定する。担当文書群は、部分列開始文書番号と部分列終了文書番号とで示される。部分列開始文書番号から部分列終了文書番号までの文書番号に対応する文書が、検索対象となる。担当文書群決定部２１１は、決定した検索対象文書群を部分列取得部２１４に通知する。
【００６１】
部分列探索開始位置決定部２１２は、文書検索管理装置１００から検索キーワードを含む文書番号部分列取得要求を受け取ると、文書番号部分列探索開始アドレス表記憶装置４１０内の文書番号部分列探索開始アドレス表と、文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納されている文書番号部分列探索開始アドレス表とを比較し、最新の文書番号部分列探索開始アドレス表が文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納されているか否かを判断する。文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納されている文書番号部分列探索開始アドレス表が最新でなければ、部分列探索開始位置決定部２１２は、文書番号部分列探索開始アドレス表記憶装置４１０から文書番号部分列探索開始アドレス表を取得し、文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納する。
【００６２】
さらに、部分列探索開始位置決定部２１２は、文書番号部分列探索開始アドレス表記憶装置４１０を参照し、文書番号部分列取得装置２１０が取得すべき部分列探索開始アドレスを取得する。具体的には、文書番号部分列取得装置２１０の装置番号が予め部分列探索開始位置決定部２１２内に保持されている。部分列探索開始位置決定部２１２は、文書番号部分列探索開始アドレス表記憶装置４１０に格納されている文書番号部分列探索開始アドレス表の検索キーワードに対応するキーワード文字列を検索する。次に、部分列探索開始位置決定部２１２は、検出されたキーワード文字列に対応付けられた部分列探索開始アドレスのリストの中から、文書番号部分列取得装置２１０の装置番号に対応する部分列探索開始アドレスを取得する。そして、部分列探索開始位置決定部２１２は、取得した部分列探索開始アドレスを部分列取得部２１４に渡す。
【００６３】
文書番号部分列探索開始アドレス表キャッシュ領域２１３は、文書番号部分列探索開始アドレス表を記憶するための記憶領域である。たとえば、文書番号部分列取得装置２１０のＲＡＭ内の一部の記憶領域が、文書番号部分列探索開始アドレス表キャッシュ領域２１３として使用される。
【００６４】
部分列取得部２１４は、転置インデックス記憶装置４２０内の転置インデックスから、所定数の文書番号（文書番号部分列）を取得する。なお、部分列取得部２１４が取得する文書番号部分列の先頭アドレスは、部分列探索開始位置決定部２１２から渡された部分列探索開始アドレスで示される。部分列取得部２１４は、取得した文書番号のうち、担当文書群に属する文書番号のみを抽出し、それらの文書番号を論理演算部２１５に渡す。
【００６５】
論理演算部２１５は、文書検索管理装置１００から送られた文書番号部分列取得要求に論理演算子が含まれていた場合、その論理演算子を取得する。そして、論理演算部２１５は、文書番号部分列取得要求に含まれていた複数の検索キーワードそれぞれに対する文書番号部分列を部分列取得部２１４から受け取ると、論理演算子に従って、取得した文書番号部分列を統合する。
【００６６】
具体的には、論理演算部２１５は、文書番号部分列取得要求に含まれていた論理演算子の内容を判断する。論理演算子が論理和（ＯＲ）であれば、論理演算部２１５は、複数の検索キーワードそれぞれの文書番号部分列の少なくとも一方に含まれる文書番号の配列を作成し、文書番号部分列取得要求に応じた文書番号部分列とする。また、論理演算子が論理積（ＡＮＤ）であれば、論理演算部２１５は、複数の検索キーワードそれぞれの文書番号配列の双方に含まれる文書番号の配列を作成し、文書番号部分列取得要求に応じた文書番号部分列とする。
【００６７】
論理演算部２１５は、文書番号部分列取得要求に応じた文書番号部分列を文書検索管理装置１００に送信する。なお、文書番号部分列取得要求に検索キーワードが１つだけ含まれており論理演算子が含まれていない場合、論理演算部２１５は、その検索キーワードに応じて部分列取得部２１４で取得された文書番号部分列を、文書番号部分列取得要求に応じた文書番号部分列として文書検索管理装置１００に送信する。
【００６８】
なお、図４には、文書番号部分列取得装置２１０の機能のみを示しているが、他の文書番号部分列取得装置２２０，２３０，２４０も同様の機能を有している。
また、検索条件に複数の検索キーワードが含まれていた場合の論理演算は、文書検索管理装置１００内で行うことも可能である。たとえば、検索条件解析部１２１で抽出された論理演算子を文書リスト作成部１２４が取得する。そして、文書リスト作成部１２４は、検索キーワードそれぞれに応じて取得された文書番号配列を論理演算子に応じて統合する。統合方法は、論理演算部２１５の処理と同様である。そして、文書リスト作成部１２４は、統合後の文書番号配列に応じた文書データを、文書ＤＢ１１０から取得する。
【００６９】
このようにして論理演算を文書検索管理装置１００で行うことも可能であるが、本実施の形態のように文書番号部分列取得装置２１０，２２０，２３０，２４０で論理演算を行った方が効率的である。すなわち、文書番号部分列取得装置２１０，２２０，２３０，２４０で論理演算を行い、統合された文書番号部分列を各文書番号部分列取得装置２１０，２２０，２３０，２４０から文書検索管理装置１００に送信することで、送信するデータ量を減らすことができる。
【００７０】
次に、文書検索システムで利用する各データのデータ構造について説明する。
図５は、文書ＤＢのデータ構造例を示す図である。文書ＤＢ１１０には、複数の文書データ１１１，１１２，１１３，・・・が格納されている。文書データ１１１，１１２，１１３，・・・には、その文書の内容を示す文字列が含まれている。また、各文書データ１１１，１１２，１１３，・・・には、文書番号が付与されている。
【００７１】
なお、文書データ１１１，１１２，１１３，・・・がインターネット１０を介して収集したコンテンツであれば、収集元のＵＲＬが文書データ１１１，１１２，１１３，・・・に含められる。また、文書データ１１１，１１２，１１３，・・・にタイトルが付いている場合、タイトルを示す文字列に対して、所定のタグなどによって、タイトルであることを示す情報が付与される。
【００７２】
図６は、文書番号部分列探索開始アドレス表記憶装置のデータ構造例を示す図である。文書番号部分列探索開始アドレス表記憶装置４１０には、運用される文書番号部分列取得装置の台数に応じた複数の文書番号部分列探索開始アドレス表４１１、４１２，４１３が格納されている。たとえば、文書番号部分列探索開始アドレス表４１１は文書番号部分列取得装置が２台の場合に利用され、文書番号部分列探索開始アドレス表４１２は文書番号部分列取得装置が３台の場合に利用され、文書番号部分列探索開始アドレス表４１３は文書番号部分列取得装置が４台の場合に利用される。
【００７３】
各文書番号部分列探索開始アドレス表４１１、４１２，４１３には、キーワード文字列と部分列探索開始アドレスとの欄が設けられている。キーワード文字列の欄には、検索キーワードとして指定可能な文字列が設定されている。部分列探索開始アドレスの欄には、キーワード文字列に対応付けて、装置番号ごとの部分列探索開始アドレスが設定されている。部分列探索アドレスは、探索開始位置の文書番号が、転置インデックスに登録された文書番号配列における何番目に相当するのかを示す数値（アドレス）である。
【００７４】
図７は、転置インデックス記憶装置の内部構造およびデータ構造例を示す図である。転置インデックス記憶装置４２０は、複数のＨＤＤ４２０ａ，４２０ｂ，４２０ｃ，４２０ｄ，・・・を有している。そして、転置インデックス記憶装置４２０は、これらのＨＤＤ４２０ａ，４２０ｂ，４２０ｃ，４２０ｄ，・・・によってＲＡＩＤ（Redundant Arrays of Inexpensive Disks）システムを構成している。
【００７５】
転置インデックス記憶装置４２０は少なくともストライピングを行い、データを複数のＨＤＤ４２０ａ，４２０ｂ，４２０ｃ，４２０ｄ，・・・に分散格納する。たとえば、ＲＡＩＤ５などの技術が利用される。そして、このようなＲＡＩＤシステム構成の転置インデックス記憶装置４２０に、転置インデックス４２１が格納されている。
【００７６】
転置インデックス４２１には、キーワード文字列それぞれに関連付けて文書番号配列が登録されている。各キーワード文字列の文書番号配列に含まれる文書番号には、転置インデックス４２１の上位に登録されたキーワード文字列から優先的にアドレスが割り振られている。また、キーワード文字列の文書番号配列内では、左から右に向かってアドレスが順に割り当てられている。
【００７７】
なお、図７の例では、文書番号が「０」から「１１」までの１２件の文書しか登録されていないが、実際には、数百万件、あるいはそれ以上の文書が文書ＤＢ１１０に登録される。そして、各文書に含まれるキーワード文字列に基づいて、膨大な量の文書番号配列が、転置インデックスに登録される。
【００７８】
ただし、文書検索処理の説明としては、少ない文書数の例で説明した方が分かりやすいため、以後の説明においても図７の例を適宜参照することとする。
図８は、文書番号配列とアドレスの関係を示す図である。図８に示すように、転置インデックス４２１の最上位に登録されているキーワード文字列「研究」の文書番号配列に含まれる文書番号から順番に、０から始まるアドレスが付与されている。
【００７９】
すなわち、キーワード文字列「研究」を含む文書の文書番号が７つ登録されているため、各文書番号には「０」から「６」までのアドレスが付与されている。キーワード文字列「研究」の次には「検索」が登録されている。従って、キーワード文字列「検索」を含む文書の文書番号に対して、「７」から順にアドレスが付与されている。
【００８０】
以上のような構成に基づいて、文書検索処理が行われる。
図９は、文書検索処理の手順を示すシーケンス図である。以下、図９に示す処理をステップ番号に沿って説明する。なお、図９では、文書番号部分列取得装置２１０の処理を代表として示しているが、他の文書番号部分列取得装置２２０，２３０，２４０の処理も、文書番号部分列取得装置２１０の処理と同様である。
【００８１】
［ステップＳ１１］Ｗｅｂサーバ３００は、クライアント２１，２２から検索要求を受信する。
［ステップＳ１２］すると、Ｗｅｂサーバ３００は、検索要求に示される検索条件による文書検索を文書検索管理装置１００に依頼する。
【００８２】
［ステップＳ１３］文書検索管理装置１００では、検索条件解析部１２１が文書検索依頼を取得する。
［ステップＳ１４］検索条件解析部１２１は、文書検索依頼に含まれる検索条件を解析し、１つ以上の検索キーワードを抽出する。また、検索条件解析部１２１は、検索条件に論理演算子が含まれている場合、その論理演算子も抽出する。検索条件解析部１２１は、抽出した検索キーワードや論理演算子を、文書番号部分列取得要求部１２２に渡す。
【００８３】
［ステップＳ１５］文書番号部分列取得要求部１２２は、検索条件解析部１２１から渡された検索キーワードを含む文書番号部分列取得要求を、４台の文書番号部分列取得装置２１０，２２０，２３０，２４０それぞれに対して送信する。この際、文書番号部分列取得要求部１２２は、文書ＤＢ１１０を参照し、最後に登録された文書の文書番号（文書番号最大値）を取得する。そして、文書番号部分列取得要求部１２２は、文書番号最大値と、運用している文書番号部分列取得装置の台数（並列処理台数）とを文書番号部分列取得要求に付与し、各文書番号部分列取得装置２１０，２２０，２３０，２４０に伝える。
【００８４】
なお、本実施の形態では、文書番号が０から開始されている。そのため、文書番号最大値に１を加算した値が、文書ＤＢ１１０に登録されている文書データの総数であり、文書番号最大値から文書総数を容易に導き出すことができる。すなわち、技術的には、文書総数と文書番号最大値とは等価である。
【００８５】
［ステップＳ１６］文書番号部分列取得装置２１０の担当文書群決定部２１１が、文書検索管理装置１００から文書番号部分列取得要求を受信する。
［ステップＳ１７］担当文書群決定部２１１は、取得すべき文書番号部分列の、担当文書番号の範囲を決定する。具体的には、担当文書群決定部２１１は、最後に登録された文書の文書番号（文書番号最大値）に１を加えた数を、並列処理台数で割る。これにより、１台当たりの担当文書数が求められる。
【００８６】
次に、担当文書群決定部２１１は、文書番号部分列取得装置２１０自身の装置番号を１台当たりの担当文書数に乗算した結果を、担当文書群の部分列開始文書番号とする。計算式で表すと以下の通りである。
・部分列開始文書番号
＝文書番号部分列取得装置１台当たりの担当文書数
×着目している文書番号部分列取得装置の装置番号；
さらに、担当文書群決定部２１１は、文書番号部分列取得装置２１０自身の装置番号に１を加算した値に１台当たりの担当文書数を乗算し、乗算結果から１を減算した値を、担当する文書群の部分列終了文書番号とする。計算式で表すと以下の通りである。
・部分列終了文書番号
＝文書番号部分列取得装置１台当たりの担当文書数
×（装置番号＋１）−１；
これにより、文書番号部分列取得装置２１０が担当すべき文書群の部分列開始文書番号と部分列終了文書番号とが決定される。本実施の形態では４台の文書番号部分列取得装置２１０，２２０，２３０，２４０で運用しているため、図７の例の様に文書番号最大値が「１１」の場合、１台当たりの担当文書数は「３」（１２÷４）となる。
【００８７】
また、文書番号部分列取得装置２１０の装置番号は「０」である。文書番号部分列取得装置２１０の部分列開始文書番号は「０」（３×０）である。また、文書番号部分列取得装置２１０の部分列終了文書番号は「２」（３×１−１）である。すなわち、文書番号部分列取得装置２１０が担当する文書群は、文書番号「０」から「２」までの文書となる。
【００８８】
同様の計算が、他の文書番号部分列取得装置２２０，２３０，２４０それぞれで行われる。その結果、文書番号部分列取得装置２２０（装置番号「１」）が担当する文書群は、文書番号「３」から「５」までの文書となる。文書番号部分列取得装置２３０（装置番号「２」）が担当する文書群は、文書番号「６」から「８」までの文書となる。文書番号部分列取得装置２４０（装置番号「３」）が担当する文書群は、文書番号「９」から「１１」までの文書となる。
【００８９】
担当文書群決定部２１１は、担当文書群指定情報（部分列開始文書番号と部分列終了文書番号）を部分列取得部２１４に渡す。
［ステップＳ１８］部分列探索開始位置決定部２１２は、文書番号部分列探索開始アドレス表記憶装置４１０から部分列探索開始アドレスを取得する。
【００９０】
具体的には、部分列探索開始位置決定部２１２は、まず、文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納されている文書番号部分列探索開始アドレス表が、並列処理台数に対応する最新のものかどうかを判断する。それには、まず、部分列探索開始位置決定部２１２は、文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納されている文書番号部分列探索開始アドレス表が、文書検索管理装置１００から指定された並列処理台数に対応しているか否かを判断する。たとえば、部分列探索開始位置決定部２１２は、部分列開始探索アドレスの欄に設定されている装置番号の種類が並列処理台数と一致すれば、並列処理台数に対応していると判断できる。
【００９１】
部分列探索開始位置決定部２１２は、並列処理台数に対応した文書番号部分列探索開始アドレス表が文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納されていた場合、次に、文書番号部分列探索開始アドレス表記憶装置４１０に格納されている文書番号部分列探索開始アドレス表（本実施の形態では文書番号部分列探索開始アドレス表４１３）の更新日時を取得する（更新日時は、ＯＳ内のファイルシステムから取得できる）。そして、部分列探索開始位置決定部２１２は、取得した更新日時が、文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納されている文書番号部分列探索開始アドレス表の更新日時と一致するか否かを判断する。
【００９２】
更新日時が一致すれば、文書番号部分列探索開始アドレス表キャッシュ領域２１３内の文書番号部分列探索開始アドレス表が最新であると判断できる。更新日時が一致しない場合、文書番号部分列探索開始アドレス表キャッシュ領域２１３内の文書番号部分列探索開始アドレス表が最新でないと判断される。
【００９３】
文書番号部分列探索開始アドレス表キャッシュ領域２１３内の文書番号部分列探索開始アドレス表が、並列処理台数に対応した最新のものであれば、そのまま使用することができる。文書番号部分列探索開始アドレス表キャッシュ領域２１３内の文書番号部分列探索開始アドレス表が並列処理台数に対応していないか、あるいは最新で無い場合、部分列探索開始位置決定部２１２は、文書番号部分列探索開始アドレス表記憶装置４１０から並列処理台数に対応した文書番号部分列探索開始アドレス表を取得し、文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納する。その際、文書番号部分列探索開始アドレス表４１３の更新日時も文書番号部分列探索開始アドレス表キャッシュ領域２１３に格納される。
【００９４】
その後、部分列探索開始位置決定部２１２は、文書番号部分列探索開始アドレス表キャッシュ領域２１３内の文書番号部分列探索開始アドレス表を参照し、検索キーワードに対応するキーワード文字列に関連付けられた部分列探索開始アドレスの中から、文書番号部分列取得装置２１０の装置番号「０」に関する部分列探索開始アドレスを取得する。たとえば、検索キーワードが「情報」の場合、文書番号部分列取得装置２１０の部分列探索開始アドレスは「１２」となる（図６参照）。取得した部分列探索開始アドレスは、部分列取得部２１４に渡される。
【００９５】
なお、図６の例では、文書番号部分列探索開始アドレス表４１１，４１２，４１３において、各部分列探索アドレスに装置番号が対応付けられているが、文書番号部分列探索開始アドレス表４１１，４１２，４１３内に装置番号は設定されていなくてもよい。その場合、各文書番号部分列取得装置は、キーワード文字列に対応付けられた部分列探索開始アドレスの配列の中から、自己の装置番号に応じた順番の部分列探索開始アドレスを取得する。図６の例では、部分列探索開始アドレスの配列における左側が先頭であり、装置番号「０」の文書番号部分列取得装置が、順番としては１番である。
【００９６】
［ステップＳ１９］部分列取得部２１４は、転置インデックス記憶装置４２０から文書番号配列の部分列を取得する。具体的には、部分列取得部２１４は、転置インデックス記憶装置４２０内の転置インデックス４２１を参照し、部分列探索開始アドレスから順番（昇順）に文書番号を抽出する。そして、部分列取得部２１４は、担当文書群に含まれる文書番号のみを文書番号部分列として取得する。
【００９７】
抽出した文書番号が、部分列終了文書番号より大きくなったとき、部分列取得部２１４は文書番号の抽出処理を終了する。
［ステップＳ２０］論理演算部２１５は、文書番号部分列取得要求に複数の検索キーワードと論理演算子とが含まれていた場合、各検索キーワードに対応する文書番号部分列を、部分列取得部２１４から受け取る。そして、論理演算部２１５は、取得した文書番号部分列を、論理演算子に基づいて統合する。
【００９８】
すなわち、論理演算部２１５は、論理演算子が論理和（ＯＲ）であれば、複数の検索キーワードそれぞれの文書番号部分列の少なくとも一方に含まれる文書番号の配列を作成し、文書番号部分列取得要求に応じた文書番号部分列とする。また、論理演算部２１５は、論理演算子が論理積（ＡＮＤ）であれば、複数の検索キーワードそれぞれの文書番号配列の双方に含まれる文書番号の配列を作成し、文書番号部分列取得要求に応じた文書番号部分列とする。さらに、論理演算部２１５は、文書番号部分列取得要求に検索キーワードが１つだけ含まれており論理演算子が含まれていない場合、その検索キーワードに応じて部分列取得部２１４で取得された文書番号部分列を、文書番号部分列取得要求に応じた文書番号部分列とする。
【００９９】
［ステップＳ２１］論理演算部２１５は、文書番号部分列取得要求に応じた文書番号部分列を文書検索管理装置１００に送信する。
［ステップＳ２２］文書検索管理装置１００の文書番号配列集計部１２３は、各文書番号部分列取得装置２１０，２２０，２３０，２４０から送信された文書番号部分列を集計し、１つの纏まった文書番号配列を生成する。文書番号配列集計部１２３は、生成した文書番号配列を文書リスト作成部１２４に渡す。
【０１００】
［ステップＳ２３］文書リスト作成部１２４は、文書番号配列に含まれる一部またはすべての文書番号に合致する文書データを、文書ＤＢ１１０から取得する。そして、文書リスト作成部１２４は、取得した文書データに基づいて文書リストを作成し、検索結果通知部１２５に渡す。
【０１０１】
［ステップＳ２４］検索結果通知部１２５は、文書リスト作成部１２４から受け取った文書リストを、文書検索依頼に対する検索結果としてＷｅｂサーバ３００に送信する。
［ステップＳ２５］Ｗｅｂサーバ３００は、文書検索管理装置１００から送られた検索結果を受信する。
【０１０２】
［ステップＳ２６］Ｗｅｂサーバ３００は、検索結果に含まれる文書リストを、検索結果表示用の文書内に挿入し、検索指示を出したクライアント２１，２２に対して送信する。
【０１０３】
このようにして、転置インデックス記憶装置４２０から検索キーワードに応じた文書番号配列を取得し、文書検索結果を生成することができる。
図１０は、文書番号配列の取得状況を示す図である。この図には、検索キーワード「情報」に対応する文書番号配列を取得する例を示している。
【０１０４】
文書番号部分列探索開始アドレス表記憶装置４１０のキーワード文字列「情報」のレコードを参照すると、文書番号部分列取得装置２１０の部分列探索開始アドレスは、「１２」である。そこで、文書番号部分列取得装置２１０は、転置インデックス記憶装置４２０においてキーワード文字列「情報」に対応付けられた文書番号配列のアドレス「１２」から文書番号の抽出を行う。このとき、文書番号部分列取得装置２１０の担当文書群は、文書番号「０」から「２」までである。すると、文書番号部分列取得装置２１０は、文書番号「０」、「１」を文書番号部分列３１として取得する。その次の、文書番号「３」は担当文書群に含まれないため、文書番号部分列取得装置２１０は文書番号「３」を破棄すると共に、文書番号の抽出処理を終了する。その結果、文書番号部分列取得装置２１０から文書検索管理装置１００へは、文書番号「０」、「１」が文書番号部分列３１として送信される。
【０１０５】
同様の処理が、他の文書番号部分列取得装置２２０，２３０，２４０でも行われる。その結果、文書番号部分列取得装置２２０から文書検索管理装置１００へ、文書番号「３」、「４」が文書番号部分列３２として送信される。文書番号部分列取得装置２３０から文書検索管理装置１００へ、文書番号「６」、「７」、「８」が文書番号部分列３３として送信される。文書番号部分列取得装置２４０から文書検索管理装置１００へ、文書番号「９」、「１０」、「１１」が文書番号部分列３４として送信される。
【０１０６】
その結果、文書検索管理装置１００において、検索キーワードに対応付けて転置インデックスに登録されていた全ての文書番号配列を取得することができる。しかも、各文書番号部分列取得装置２１０，２２０，２３０，２４０は、それぞれ部分列探索開始アドレスから担当文書群に含まれる文書番号の探索を開始し、文書番号配列の一部分のみを取得する。そのため、短時間で文書番号部分列を取得することができる。
【０１０７】
なお、転置インデックス記憶装置４２０は、ストライピングを行うＲＡＩＤシステムであるため、複数の文書番号部分列取得装置２１０，２２０，２３０，２４０が同時に転置インデックス記憶装置４２０にアクセスしたとしても、実際のアクセス対象となるＨＤＤは分散される。従って、文書番号部分列取得装置２１０，２２０，２３０，２４０が同時に転置インデックス記憶装置４２０にアクセスしても、文書番号部分列を高速に読み出すことができる。
【０１０８】
次に、転置インデックス作成処理について説明する。
図１１は、転置インデックス作成処理の手順を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。なお、以下の処理は、運用管理者から転置インデックス作成を指示する操作入力があったときに実行される。
【０１０９】
［ステップＳ３１］転置インデックス作成部１２６は、文書ＤＢ１１０から転置インデックスに情報を反映していない文書データを１件読み込む。たとえば、文書ＤＢ１１０から転置インデックスに情報を反映していない文書データについては、文書ＤＢ１１０内の特定のフォルダに入れておく。そして、転置インデックス作成部１２６は、文書ＤＢ１１０内の特定のフォルダから文書データを１件読み込みむと共に、読み込んだ文書データを、その文書データを文書ＤＢ１１０内の通常のフォルダ（転置インデックスに情報を反映した文書データを格納するフォルダ）に移動する。
【０１１０】
［ステップＳ３２］転置インデックス作成部１２６は、読み込んだ文書データの内容を解析し、キーワード文字列を抽出する。具体的には、転置インデックス作成部１２６は、文書データに対して形態素解析を行い、複数の形態素に分割する。そして、転置インデックス作成部１２６は、生成した形態素のうち所定の品詞（たとえば、名詞、動名詞など）をキーワード文字列とする。また、転置インデックス作成部１２６は、連続する複数の形態素（所定の品詞）を結合してキーワード文字列を生成する。
【０１１１】
［ステップＳ３３］転置インデックス作成部１２６は、転置インデックス記憶装置４２０にアクセスし、抽出したキーワード文字列に対応する転置インデックス内の文書番号配列に文書番号を追加する。
【０１１２】
［ステップＳ３４］転置インデックス作成部１２６は、全ての文書に対して処理を実行したか否かを判断する。全ての文書に対して処理を実行した場合、処理がステップＳ３５に進められる。未処理の文書がある場合、処理がステップＳ３１に進められる。
【０１１３】
［ステップＳ３５］転置インデックス作成部１２６は、検索に使用する文書番号部分列取得装置の台数の候補を決定する。台数の候補は、たとえば、運用管理者から予め転置インデックス作成部１２６に対して指定されている。転置インデックス作成部１２６は、運用管理者から指定された台数の候補を示す複数の数字をＲＡＭ１０２などに記憶する。本実施の形態では、文書番号部分列取得装置の台数の候補（並列運用予定台数候補）として、２台、３台、および４台が指定されているものとする。
【０１１４】
［ステップＳ３６］転置インデックス作成部１２６は、文書番号部分列取得装置の並列運用予定台数候補から、未処理の並列運用予定台数候補を１つ選択する。
［ステップＳ３７］転置インデックス作成部１２６は、文書番号部分列取得装置１台当たりの担当文書数を決定する。具体的には、転置インデックス作成部１２６は、最後に登録された文書データの文書番号に１を加えた数（文書データの総数）を、並列運用予定台数候補の数で割る。除算によって得られた値（小数点以下は繰り上がりとする）が、文書番号部分列取得装置１台当たりの担当文書数として決定される。
【０１１５】
この計算を式で表すと以下の通りである。
・文書番号部分列取得装置１台当たりの担当文書数
＝ｃｅｉｌ（（最後に登録された文書の文書番号＋１）
／並列運用予定台数候補）；
なお、文書番号および装置番号は０から数える。また、関数ｃｅｉｌ（）は、引数に指定した値と等しいか大きい最小の整数を返す。
【０１１６】
［ステップＳ３８］転置インデックス作成部１２６は、並列運用予定台数候補に応じた数の装置番号を定義し、転置インデックスに登録された各キーワード文字列について、装置番号ごとに部分列探索開始位置を求める。部分列探索開始位置は、転置インデックス内のアドレスで示される。この処理の詳細は後述する。
【０１１７】
［ステップＳ３９］転置インデックス作成部１２６は、文書番号部分列探索開始アドレス表記憶装置４１０内の選択された並列運用予定台数候補に応じた文書番号部分列探索開始アドレス表にアクセスし、各キーワード文字列の装置番号ごとの部分列探索開始アドレスを更新する。
【０１１８】
［ステップＳ４０］転置インデックス作成部１２６は、ステップＳ３５で決定した全ての並列運用予定台数候補について処理を実行したか否かを判断する。全ての並列運用予定台数候補に対して処理が行われていれば、転置インデックス作成処理が終了する。未処理の並列運用予定台数候補があれば、処理がステップＳ３６に進められる。
【０１１９】
以上のような手順で転置インデックスと、並列運用予定台数候補ごとの文書番号部分列探索開始アドレス表とが作成される。
次に、部分列探索開始位置決定処理の手順を詳細に説明する。
【０１２０】
図１２は、部分列探索開始位置決定処理の手順を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］転置インデックス作成部１２６は、選択されている並列運用予定台数候補に応じた数の装置番号の中から、未処理の装置番号の１つに着目する。
【０１２１】
［ステップＳ５２］転置インデックス作成部１２６は、部分列開始文書番号を算出する。具体的には、転置インデックス作成部１２６は、文書番号部分列取得装置１台当たりの担当文書数に着目している装置番号を乗算した値を、部分列開始文書番号とする。数式で表すと以下の通りである。
・部分列開始文書番号
＝文書番号部分列取得装置当たりの担当文書数
×着目している文書番号部分列取得装置の装置番号；
［ステップＳ５３］転置インデックス作成部１２６は、転置インデックス記憶装置４２０内の転置インデックス４２１に登録されたキーワード文字列のうち、着目している装置番号について部分列探索開始アドレスを算出していないキーワード文字列の１つに着目する。
【０１２２】
［ステップＳ５４］転置インデックス作成部１２６は、着目したキーワード文字列に対する部分列探索開始アドレスを算出する。具体的には、転置インデックス作成部１２６は、転置インデックス記憶装置４２０内の転置インデックス４２１を参照し、着目しているキーワード文字列に対応する文書番号配列の中で、部分列開始文書番号以上の文書番号のうち最小の文書番号のアドレスを部分列探索開始アドレスとする。
【０１２３】
なお、着目しているキーワード文字列に対応する文書番号配列の中に、部分列開始文書番号と等しいか大きい文書番号が存在しない場合、転置インデックス作成部１２６は、着目しているキーワード文字列に対応する文書番号配列の中で最も大きい文書番号のアドレスを、部分列探索開始アドレスとする。
【０１２４】
［ステップＳ５５］転置インデックス作成部１２６は、転置インデックス記憶装置４２０内の転置インデックス４２１に登録されたキーワード文字列の中に未処理のキーワード文字列があるか否かを判断する。未処理のキーワード文字列があれば、処理がステップＳ５３に進められる。全てのキーワード文字列に対して処理が終了していれば、処理がステップＳ５６に進められる。
【０１２５】
［ステップＳ５６］転置インデックス作成部１２６は、選択されている並列運用予定台数候補に応じた数の装置番号の中に、未処理の装置番号があるか否かを判断する。未処理の装置番号があれば処理がステップＳ５３に進められる。未処理の装置番号がなければ、処理が終了する。
【０１２６】
なお、図１２に示したフローチャートでは、先に装置番号を特定し、その装置番号に対応する文書番号探索開始アドレスをキーワード文字列ごとに求めているが、逆に、先にキーワード文字列を特定し、そのキーワード文字列に関する文書番号ごとの文書番号探索開始アドレスを求めるようにしてもよい。キーワード文字列を先に特定した場合、転置インデックス４２１内の当該キーワード文字列に対応する文書番号配列を全てＲＡＭ内に読み込んでおけば、以後、転置インデックス４２１にアクセスせずに文書番号ごとの文書番号探索開始アドレスを求めることができる。そのため、処理が効率的である。
【０１２７】
図１１，図１２に示した処理によって、図７に示した転置インデックス４２１と図６に示す文書番号部分列探索開始アドレス表４１１，４１２，４１３とが作成される。この例では、文書番号部分列取得装置が２台、３台、４台それぞれの場合に応じた文書番号部分列探索開始アドレス表４１１，４１２，４１３が作成されている。その結果、文書番号部分列取得装置の台数が１台から４台の範囲内であれば、台数の変動があっても文書検索サービスを続行することができる。なお、台数が１台の場合には、文書番号部分列探索開始アドレス表を用いることなく、１台の文書番号部分列取得装置が文書番号配列全体を処理すればよい。
【０１２８】
たとえば、図２の例では、４台の文書番号部分列取得装置２１０，２２０，２３０，２４０が動作している。従って、運用中の文書番号部分列取得装置２１０，２２０，２３０，２４０は、４台用の文書番号部分列探索開始アドレス表４１３を使用して文書番号配列の部分列を取得する。
【０１２９】
このとき文書検索サービスの運用中に単位時間当たりの検索要求数が減少し、３台の文書番号部分列取得装置で処理可能な処理量になったものとする。その場合、文書番号部分列取得装置の１台をシステムから除外し、他のサービスに使用することができる。たとえば、文書番号部分列取得装置２４０の運用を停止すると、運用中の文書番号部分列取得装置の台数が３台となる。文書検索管理装置１００は、各文書番号部分列取得装置２１０，２２０，２３０，２４０の動作状況をチェックしており、文書番号部分列取得装置２４０の運用が停止したことを検出すると、文書番号部分列取得装置の運用台数を３台に変更する。その後、Ｗｅｂサーバ３００から文書検索管理装置１００に文書検索依頼が出されると、文書検索管理装置１００は、運用している文書番号部分列取得装置の台数を３台として、各文書番号部分列取得装置２１０，２２０，２３０へ文書番号部分列取得要求を送信する。文書番号部分列取得要求を受け取った各文書番号部分列取得装置２１０，２２０，２３０は、３台用の文書番号部分列探索開始アドレス表４１２を取得し、文書番号配列の部分列を取得する。その結果、文書番号部分列取得装置２４０の運用が停止したにも拘わらず、検索キーワードに対応する転置インデックス内の文書番号配列を漏れなく取得することができる。
【０１３０】
以上のように、本実施の形態によれば、運用中であっても文書番号部分列取得装置の台数を動的に変更可能である。すなわち、文書番号部分列取得装置の台数が変更された場合、文書検索管理装置から文書番号部分列取得装置に渡す並列処理台数の値を、変更すればよい。それにより、文書番号部分列取得装置では、現在の運用台数に応じた文書番号部分列探索開始アドレス表に基づいて部分列探索開始アドレスや担当文書群を判断し、適切な文書番号部分列を取得する。
【０１３１】
その結果、検索対象の文書量に対して文書番号部分列取得装置が不足していれば、容易に文書番号部分列取得装置を追加できる。また、処理能力に余裕があれば、文書番号部分列取得装置の台数を減らし、余った装置を別のサービスに利用することもできる。
【０１３２】
なお、検索対象文書量の増大による文書番号部分列取得装置の追加の場合、それほど緊急の事態では無いこともある。その場合、文書番号部分列取得装置の追加を必要と判断したときに、追加後の文書番号部分列取得装置の台数に合わせた文書番号部分列探索開始アドレス表を作成し、文書番号部分列探索開始アドレス表記憶装置４１０に格納してもよい。その場合であっても、システムの運用を継続しながら文書番号部分列取得装置の追加が可能であることには変わりない。
【０１３３】
また、転置インデックス４２１は、１つのストレージシステム（論理的に１つのディスクとして扱われるＲＡＩＤシステム）内に格納されているため、従来のように、複数のディスクに文書番号配列を分散させるための手間は発生しない。その結果、運用管理者の管理負荷を軽減させることができる。しかも、ストライピングを行うＲＡＩＤシステム内のＨＤＤの数を、出来るだけ多くすれば、複数の文書番号部分列取得装置が同時に転置インデックス記憶装置４２０にアクセスしても、実際のアクセス対象となるＨＤＤは分散される。その結果、転置インデックス記憶装置４２０への同時アクセスによる処理の遅延が極めて少なくて済む。
【０１３４】
［第２の実施の形態］
次に、第２の実施の形態について説明する。第２の実施の形態は、文書番号部分列取得装置の並列運用予定台数候補を、連続の整数ではなく、不連続の値とすることで、生成すべき文書番号部分列探索開始アドレス表を削減したものである。第２の実施の形態では、第１の実施の形態を基本形として、部分列探索開始アドレスの計算処理を以下のとおり変更する。
【０１３５】
まず、転置インデックスの作成処理では、使用を想定する文書番号部分列取得装置の台数を連続した整数の連続した範囲とせず、たとえば２の倍数や２のべき乗の値のみとする。一方、検索処理に関しては、想定されている２の倍数や２のべき乗の台数の文書番号部分列取得装置を使用し、それ以外の台数では処理を行わないものとする。
【０１３６】
使用を想定する文書番号部分列取得装置の数を、２の倍数である２または４とした場合の、文書番号部分列探索開始アドレス表を図１３に示す。
図１３は、並列運用予定台数候補を２の倍数としたときの文書番号部分列探索開始アドレス表の例を示す図である。図１３に示すように、文書番号部分列取得装置を２台で運用するとき用の文書番号部分列探索開始アドレス表４１５と、４台で運用するとき用の文書番号部分列探索開始アドレス表４１６とが文書番号部分列探索開始アドレス表記憶装置４１０に格納されている。
【０１３７】
この例では、使用を想定する文書番号部分列取得装置の構成パターン数を減らすことによって、文書番号部分列探索開始アドレス表の作成に掛かる処理時間、および文書番号部分列探索開始アドレス表記憶装置が必要とする記録領域を削減することができる。
【０１３８】
［第３の実施の形態］
第３の実施の形態は、複数の並列運用予定台数候補用の文書番号部分列探索開始アドレス表を、１つに統合したものである。第３の実施の形態では、第１の実施の形態を基本形として、部分列探索開始アドレスの計算処理を以下のとおり変更する。
【０１３９】
まず、転置インデックスの作成処理では、使用する文書番号部分列取得装置の数として、複数の数の公倍数を設定する。たとえば１２であれば、２，３，４，６の公倍数である。一方、検索処理においては、この公倍数の約数に当たる２，３，４または６台の文書番号部分列取得装置を使用し、それ以外の台数では処理を行わないものとする。
【０１４０】
使用する文書番号部分列取得装置の数を、２および４の倍数である４と想定した場合の、部分列探索開始アドレスの計算例を図１４に示す。
図１４は、並列処理台数が２台と４台との場合に使用可能な文書番号部分列探索開始アドレス表の例を示す図である。図１４に示すように、文書番号部分列取得装置の台数が２台の場合と４台の場合とで使用可能な文書番号部分列探索開始アドレス表４１７が文書番号部分列探索開始アドレス表記憶装置４１０に格納される。
【０１４１】
この文書番号部分列探索開始アドレス表４１７を作成する場合、転置インデックス作成部１２６は、まず文書番号部分列取得装置の台数が公倍数（図１４の例では４台）の場合用の文書番号部分列検索開始アドレス表を作成する。そして、転置インデックス作成部１２６は、公倍数の約数に当たる台数（図１４の例では２台）での運用における装置番号のリストを追加する。
【０１４２】
装置番号を追加する際には、転置インデックス作成部１２６は、公倍数／並列運用予定台数を計算し、倍数を求める。そして、転置インデックス作成部１２６は、約数に当たる台数で運用するときの装置番号に倍数を乗算し、公倍数に当たる台数で運用するときの装置番号のうち、乗算結果と同じ番号の装置番号を選択する。そして、選択した装置番号と同じ欄に、約数に当たる台数で運用するときの装置番号を設定する。
【０１４３】
たとえば、図１４における２台運用の装置番号を登録する場合を考える。まず、公倍数が４であり約数が２であるため、倍数（４÷２）は「２」となる。そこで、文書番号部分列取得装置を２台で運用する際の装置番号：１であれば、４台運用時の装置番号：２（１（装置番号）×２（倍数））と同じ欄に、その装置番号を登録する。
【０１４４】
このように、複数の数の公倍数に当たる台数に応じた文書番号部分列探索開始アドレス表を作成しておけば、その公倍数の約数に当たる台数で文書番号部分列取得装置を運用する際に、同じ文書番号部分列探索開始アドレス表を使用することができる。これにより、文書番号部分列探索開始アドレス表の作成に掛かる処理時間、および文書番号部分列探索開始アドレス表記憶装置が必要とする記録領域が削減される。
【０１４５】
なお、上記の例では、運用台数に応じた装置番号のリストを文書番号部分列探索開始アドレス表４１７に登録しているが、文書番号のリストが文書番号部分列探索開始アドレス表４１７に含まれていなくてもよい。その場合、部分列探索開始位置決定部２１２が文書番号部分列探索開始アドレス表４１７を参照する際に、自己の装置番号に倍数（公倍数／並列運用予定台数）を乗算する。そして、部分列探索開始位置決定部２１２は、乗算された値を装置番号としたとき、その装置番号に対応する順番の部分列探索開始アドレスを文書番号部分列探索開始アドレス表４１７から取得する。
【０１４６】
［第４の実施の形態］
第４の実施の形態は、文書番号部分列取得装置の運用台数が何台であっても、１つの文書番号部分列探索開始アドレス表で対応できるようにしたものである。すなわち、第１の実施の形態では、計算する文書番号部分列探索開始アドレス表の数を、使用を想定する文書番号部分列取得装置の台数と等しくしている。一方、第４の実施の形態では、文書番号部分列探索開始アドレス表を１つだけ作成し、文書番号部分列取得装置の台数を特に想定しない。
【０１４７】
そのため、本実施の形態では、文書番号部分列探索開始アドレス表に正確な（担当文書群頭出し文書番号と一致する）部分列探索開始アドレスを設定するのではなく、所定の間隔の文書番号（所定間隔頭出し文書番号とする）に近い文書番号（所定間隔頭出し文書番号以下の値）のアドレスを文書番号部分列探索開始アドレス表に設定しておく。そして、部分列探索開始アドレスを判断する際には、部分列探索開始文書番号以下の文書番号のうち値が最大の文書番号に対応付けて文書番号部分列探索開始アドレス表に登録されているアドレスを、探索開始アドレスとする。
【０１４８】
具体的には以下の処理を行う。なお、システムの構成要素は第１の実施の形態と同じであるため、図４に示した各要素を用いて第４の実施の形態における処理（第１の実施の形態との相違点）を説明する。
【０１４９】
図１５は、第４の実施の形態における転置インデックス作成処理の手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。なお、ステップＳ６１〜Ｓ６４については、図１１に示した第１の実施の形態の処理のステップＳ３１〜Ｓ３４と同じであるため説明を省略する。
【０１５０】
［ステップＳ６５］転置インデックス作成部１２６は、転置インデックス４２１に登録されている未処理のキーワード文字列の１つに着目する。
［ステップＳ６６］転置インデックス作成部１２６は、部分列探索開始文書番号の集合（部分列探索開始文書番号集合）を作成する。具体的には、転置インデックス作成部１２６は、着目しているキーワード文字列に対応する文書番号配列の中で、予め指定された文書間隔（たとえば、１０００）を示す数値の倍数（０以上の整数）それぞれに対して、その値以下で最大の文書番号の集合を作成する。
【０１５１】
たとえば、文書間隔をｋ（ｋは１以上の整数）とした場合、転置インデックス作成部１２６は、所定間隔頭出し文書番号Ｎ＝ｋ×ｎ（ｎは０以上の整数）とする。そして、転置インデックス作成部１２６は、ｎを０から１ずつカウントアップさせながら、以下の処理を行う。
【０１５２】
転置インデックス４２１内の着目しているキーワード文字列に対応する文書番号配列を参照し、所定間隔頭出し文書番号以下の文書番号を取得する。そして、転置インデックス作成部１２６は、取得した文書番号のうち値が最も大きい文書番号を、部分列探索開始文書番号集合に加える。このとき、所定間隔頭出し文書番号以下の文書番号が存在しなければ、転置インデックス作成部１２６は、その所定間隔頭出し文書番号に対応する文書番号は無いと判断する。また、転置インデックス作成部１２６は、ｎをカウントアップするごとに所定間隔頭出し文書番号Ｎが文書番号の最大値より大きいか否かを判断する。所定間隔頭出し文書番号Ｎが最後に登録された文書の文書番号より大きくなった場合、転置インデックス作成部１２６は、着目しているキーワード文字列に関する部分列探索開始文書番号集合の作成を終了する。
【０１５３】
［ステップＳ６７］転置インデックス作成部１２６は、部分列探索開始文書集合に含まれる文書番号ごとに部分列探索開始アドレスを決定し、部分列探索開始アドレス集合を作成する。具体的には、転置インデックス作成部１２６は、部分列探索開始文書番号集合に含まれる各文書番号の転置インデックス記憶装置４２０上のアドレスを取得し、部分列探索開始アドレスとする。そして、転置インデックス作成部１２６は、部分列探索開始アドレスの集合を、部分列探索開始アドレス集合とする。
【０１５４】
［ステップＳ６８］転置インデックス作成部１２６は、対応関係にある部分列探索開始アドレスと文書番号との組を、文書番号部分列探索開始アドレス表記憶装置４１０内の文書番号部分列探索開始アドレス表において着目しているキーワード文字列に関連付けて登録する。
【０１５５】
［ステップＳ６９］転置インデックス作成部１２６は、転置インデックス記憶装置４２０内の転置インデックス４２１に登録されているすべてのキーワード文字列に対して処理を実行したか否かを判断する。すべてのキーワード文字列に対して処理が終了していれば、転置インデックス作成処理が終了する。未処理のキーワード文字列があれば、処理がステップＳ６５に進められる。
【０１５６】
このようにして、キーワード文字列ごとに、部分列探索開始アドレスと文書番号を組とした文書番号部分列探索開始アドレス表が作成される。
図１６は、第４の実施の形態における文書番号部分列探索開始アドレス表の例を示す図である。この例は、文書間隔を２とした場合である。文書番号部分列探索開始アドレス表４１８には、キーワード文字列ごとに、複数の部分列探索開始アドレスが登録されている。各部分列探索開始アドレスには、該当するアドレスに格納されている文書番号（図中、括弧書きで示す）が設定されている。
【０１５７】
文書検索時には、担当文書群決定部２１１は、第１の実施の形態と同様に、部分列開始文書番号と部分列終了文書番号とを求める。すなわち、文書番号部分列取得要求を受け取った担当文書群決定部２１１は、最後に登録された文書の文書番号に１を加えた数を、使用する文書番号部分列取得装置の台数で割ることで、文書番号部分列取得装置１台当たりの担当文書数を求める。そして、担当文書群決定部２１１は、部分列開始文書番号と部分列終了文書番号とを計算する。すなわち、以下の計算を行う。
・部分列開始文書番号
＝文書番号部分列取得装置１台当たりの担当文書数
×着目している文書番号部分列取得装置の装置番号；
・部分列終了文書番号
＝文書番号部分列取得装置１台当たりの担当文書数
×（装置番号＋１）−１；
その後、担当文書群決定部２１１は、検索キーワードと部分列開始文書番号とを部分列探索開始位置決定部２１２に渡す。また、担当文書群決定部２１１は、検索キーワード、部分列開始文書番号、および部分列終了文書番号を部分列取得部２１４に渡す。
【０１５８】
部分列探索開始位置決定部２１２は、文書番号部分列探索開始アドレス表４１８にアクセスし、検索キーワードに対応するキーワード文字列に関連付けられた複数の部分列探索開始アドレスそれぞれに付与された文書番号を参照する。そして、部分列探索開始位置決定部２１２は、自己の部分列開始文書番号以下で最も大きい文書番号を抽出する。さらに、部分列探索開始位置決定部２１２は、抽出した文書番号に対応する部分列探索開始アドレスを部分列取得部２１４に渡す。部分列取得部２１４は、転置インデックス記録装置４２０内の転置インデックス４２１にアクセスし、部分列探索開始アドレスから順次、部分列探索開始文書番号から部分列探索終了文書番号までの文書番号を抽出する。
【０１５９】
このようにして、任意の数の文書番号部分列取得装置を使用することができる。その結果、利用者や運用管理者が求める処理性能に対して、必要かつ十分な計算機資源を割り当てることが可能である。
【０１６０】
［第５の実施の形態］
第５の実施の形態は、文書ＤＢ１１０に追加された文書データが所定の量を超えるまで、転置インデックスの更新をしても、文書番号部分列探索開始アドレス表の更新をせずに済むようにしたものである。すなわち、図１１に示した転置インデックス作成処理において、ステップＳ３１〜Ｓ３４の処理を行ったとしても、ステップＳ３５以降の処理を必ずしも毎回行わないようにする。換言すると、転置インデックスを更新した際に、追加登録した文書数が少なければ、部分列探索開始アドレスの再計算処理を見送るというものである。
【０１６１】
転置インデックスに文書が追加登録されると、最後に登録された文書の文書番号は増加する。その場合、検索処理において、各々の文書番号部分列取得装置に対して計算される部分列開始文書番号は増加するか、もしくは変わらないままである。このとき、部分列探索開始アドレスが古い値のままであったとしても、文書番号部分列に含まれる文書番号がそのアドレスよりも前に存在しないことは保証される。そこで、部分列開始文書番号よりも小さい文書番号を文書番号部分列取得装置が空読み（取得した文書番号が担当文書群に含まれず、その文書番号は破棄される）すれば、部分列探索開始アドレスが古い値のままであっても、正しい結果を得ることができる。
【０１６２】
なお、この実施の形態では、部分列探索開始アドレスを、転置インデックス記憶装置における絶対アドレスではなく、各々のキーワード文字列に対応する文書番号配列における相対アドレスとすることによって、文書番号配列を記憶装置上で移動する場合にも、文書番号部分列探索開始アドレス表の再作成をある程度の期間先延ばしすることができる。
【０１６３】
具体的には、以下のような処理を行う。なお、システムの構成要素は第１の実施の形態と同じであるため、図４に示した各要素を用いて第５の実施の形態における処理（第１の実施の形態との相違点）を説明する。
【０１６４】
図１７は、第５の実施の形態における転置インデックス更新処理の手順を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。なお、ステップＳ７１〜Ｓ７４，Ｓ７７〜Ｓ７９，Ｓ８１，Ｓ８２については、図１１に示した第１の実施の形態の処理のステップＳ３１〜Ｓ３８，Ｓ４０と同じであるため説明を省略する。
【０１６５】
［ステップＳ７５］転置インデックス作成部１２６は、ステップＳ７１〜Ｓ７４の処理によって文書番号の追加登録処理を行った文書数（追加文書数）を、追加文書総数に加算する。なお、追加文書総数は、転置インデックス作成部１２６が有するパラメータであり、転置インデックス作成処理が終了してもＲＡＭ１０２内の記憶領域に保持される。また、追加文書総数はＨＤＤ１０３にも記録される。追加文書総数をＨＤＤ１０３に記録しておくことで、運用中にシステム障害があっても追加文書総数を復旧である。
【０１６６】
［ステップＳ７６］転置インデックス作成部１２６は、文書番号部分列探索開始アドレス表を更新せずにステップＳ７１〜Ｓ７４の処理によって文書番号の追加登録処理を行った文書の総数（追加文書総数）が所定の文書数（文書番号部分列探索開始アドレス表更新閾値文書数）以上となったか否かを判断する。なお、文書番号部分列探索開始アドレス表更新閾値文書数は、運用管理者によって予め転置インデックス作成部１２６に設定され、ＲＡＭ１０２などの記憶領域内に記憶されている。追加文書数が文書番号部分列探索開始アドレス表更新閾値文書数以上の場合、処理がステップＳ７７に進められる。追加文書数が文書番号部分列探索開始アドレス表更新閾値文書数未満の場合、処理が終了する。
【０１６７】
ステップＳ７７〜Ｓ７９では、図１１に示した第１の実施の形態におけるステップＳ３５〜Ｓ３７の処理と同様の処理が行われる。その結果、文書番号部分列取得装置の台数候補に応じた文書番号部分列取得装置１台当たりの担当文書数が求められる。その後、処理がステップＳ８０に進められる。
【０１６８】
［ステップＳ８０］転置インデックス作成部１２６は、部分列探索開始アドレスを決定する。ただし、この際の部分列探索開始アドレスは、各キーワード文字列に関連付けられた文書番号配列の先頭のアドレスからの相対値である。具体的な処理手順は、図１２に示した第１の実施の形態の部分列探索位置決定処理とほぼ同じである。ただし、ステップＳ５４の処理が以下のように変更される。
【０１６９】
［ステップＳ５４］転置インデックス作成部１２６は、着目したキーワード文字列に対する部分列探索開始アドレスを算出する。具体的には、転置インデックス作成部１２６は、転置インデックス記憶装置４２０内の転置インデックス４２１を参照し、着目しているキーワード文字列に対応する文書番号配列の中で、部分列開始文書番号以上の文書番号のうち最小の文書番号のアドレスを取得する。さらに、転置インデックス作成部１２６は、取得したアドレスの値から、着目しているキーワード文字列に対応する文書番号配列の最初の文書番号のアドレスの値を減算する。そして、転置インデックス作成部１２６は、減算結果を部分列探索開始アドレスとする。
【０１７０】
なお、着目しているキーワード文字列に対応する文書番号配列の中に、部分列開始文書番号と等しいか大きい文書番号が存在しない場合、転置インデックス作成部１２６は、着目しているキーワード文字列に対応する文書番号配列の中で最も大きい文書番号のアドレスの値から、着目しているキーワード文字列に対応する文書番号配列の最初の文書番号のアドレスの値を減算する。そして、転置インデックス作成部１２６は、減算結果を部分列探索開始アドレスとする。
【０１７１】
部分列探索開始アドレスが決定されると、ステップＳ８１において文書番号部分列探索開始アドレス表記憶装置４１０内の文書番号部分列探索開始アドレス表において部分列探索開始アドレスが更新される。
【０１７２】
全ての並列運用予定台数候補に関してステップＳ７８〜Ｓ８２の処理が完了したら、処理がステップＳ８３に進められる。
［ステップＳ８３］転置インデックス作成部１２６は、追加文書総数を０に設定する。その後処理が終了する。
【０１７３】
図１８は、相対アドレスにより部分列探索開始アドレスを指定した文書番号部分列探索開始アドレス表の例を示す図である。図１８には、文書番号部分列取得装置の台数が２台のときに使用する文書番号部分列探索開始アドレス表４１１ａ、３台のときに使用する文書番号部分列探索開始アドレス表４１２ａ、および４台のときに使用する文書番号部分列探索開始アドレス表４１３ａが示されている。
【０１７４】
このように、部分列探索開始アドレスの計算処理を省略することによって、転置インデックスの更新処理に掛かる処理時間を削減することができる。しかも、部分列探索開始アドレスを該当する文書番号が設定された文書番号配列の先頭からの相対値で示したことにより、部分列取得時の空読みの量（部分列探索開始アドレスから順に読み出した文書番号が、部分列探索開始文書番号より小さいと判断される文書番号の数）を減らすことができる。
【０１７５】
すなわち、転置インデックスに多数の文書の文書番号を追加登録すると、転置インデックス記憶装置４２０内のアドレスにおいて後方に位置する文書番号は、文書番号部分列探索開始アドレス表作成時よりもアドレスの値が大きくずれてしまう。そのため、第１の実施の形態のように部分列探索開始アドレスが絶対アドレスで示されていた場合、キーワード文字列の順番で後方に登録されているキーワード文字列の文書番号配列を取得する際には、部分列探索開始アドレスから文書番号を抽出し部分列探索開始文書番号に達するまでに多数の空読みが発生する。
【０１７６】
一方、第５の実施の形態では部分列探索開始アドレスが相対アドレスで示されているため、アドレスのずれがキーワード文字列に関連付けられた文書番号配列内でのみ発生し、上位に登録されたキーワード文字列で発生したアドレスのずれが累積されずに済む。その結果、空読みの量が少なくなり、文書番号部分列の読み出し効率が向上する。
【０１７７】
さらに、部分列探索開始アドレスを相対アドレスにしておけば、転置インデックス内で文書番号配列を再配置した場合でも、文書番号部分列探索開始アドレス表を更新せずに済む。たとえば、転置インデックス内でのキーワード文字列の順番が入れ替わっても、文書番号部分列探索開始アドレス表を更新する必要はない。また、転置インデックス内に新たなキーワード文字列が追加された場合、そのキーワード文字列に対応する部分列探索開始アドレスを文書番号部分列探索開始アドレス表に追加すればよい。
【０１７８】
なお、第５の実施の形態では、追加文書総数が所定値以上となったときに文書番号部分列探索開始アドレス表の更新を行っているが、前回の文書番号部分列探索開始アドレス表の更新時刻からの経過時間が所定値以上となっている場合に文書番号部分列探索開始アドレス表の更新を行ってもよい。
【０１７９】
［第６の実施の形態］
第６の実施の形態は、第５の実施の形態における文書番号部分列探索開始アドレス表作成処理（図１７のステップＳ７７〜Ｓ８２）を、転置インデックスの更新処理（図１７のステップＳ７１〜Ｓ７４）と独立で実行するものである。たとえば、文書検索システムの処理負荷が低いときに、古い値のままとなっている部分列探索開始アドレスを再計算するというものである。処理負荷が低いときとしては、たとえば、文書検索管理装置１００のＣＰＵの負荷を検出し、所定値以下になったときがある。また深夜には処理負荷が低い（文書検索依頼が少ない）ことが予め分かっている場合、予め指定された深夜の時間帯に文書番号部分列探索開始アドレス表作成処理を実行することもできる。
【０１８０】
このように、部分列探索開始アドレスの再計算処理を独立で行うことによって、より柔軟性の高いシステム運用が可能となる。
なお、上記の各実施の形態では、転置インデックス作成部１２６を文書検索管理装置１００の一機能として説明しているが、必ずしも文書検索管理装置１００内にある必要はない。文書ＤＢ１１０、文書番号部分列探索開始アドレス表記憶装置４１０、および転置インデックス記憶装置４２０にアクセス可能なコンピュータであれば、転置インデックス作成部１２６の機能を実装し、上記の実施の形態通りに動作させることができる。たとえば、文書番号部分列取得装置２１０が転置インデックス作成部１２６の機能を有していてもよく、図示していない管理サーバが転置インデックス作成部１２６の機能を有していてもよい。
【０１８１】
ところで、上記各実施の形態を用いれば、文書番号部分列取得装置の増減が容易に短時間で行うことができるが、文書番号部分列取得装置の台数を何台にすべきかについては、運用管理者が任意に決定することができる。その際、文書検索システムの運用状況を監視し、その結果に基づいて適当な文書番号部分列取得装置の台数を決定することもできる。
【０１８２】
たとえば、文書検索管理装置１００において、文書検索処理を行う際に、同時に処理した検索要求の数や、各々の検索要求に対して要した処理時間などの情報を検索実行ログとして記録しておく。運用管理者は、記録された検索実行ログの内容を分析することによって、運用する文書番号部分列取得装置の台数を最適な並列度で決定する。
【０１８３】
また、上記の処理機能は、コンピュータによって実現することができる。その場合、文書検索管理装置１００や文書番号部分列取得装置２１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１８４】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１８５】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１８６】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１８７】
（付記１）  電子化された文書の検索を行う文書検索システムにおいて、
文書番号が付与された複数の文書データを記憶する文書データベースと、
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を１台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、
検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段と、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して文書番号配列を生成する文書番号配列集計手段と、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成する文書リスト作成手段と、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する検索結果通知手段と、を具備する前記文書検索管理装置と、
前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を並列処理台数で除算して１台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書番号部分列として前記文書検索管理装置に送信する部分列取得手段と、を具備する複数の前記文書番号部分列取得装置と、
を有することを特徴とする文書検索システム。
【０１８８】
（付記２）  前記文書番号部分列探索開始アドレス表記憶装置には、前記文書番号部分列取得装置の前記並列運用予定台数が異なる複数の前記文書番号部分列探索開始アドレス表が記憶されており、
前記部分列探索開始位置決定手段は、前記文書番号部分列取得要求で示された前記並列処理台数に対応する前記並列運用予定台数の前記文書番号部分列探索開始アドレス表を参照して、前記部分列探索開始アドレスの抽出を行うことを特徴とする付記１記載の文書検索システム。
【０１８９】
（付記３）  前記文書番号部分列探索開始アドレス表記憶装置には、前記文書番号部分列取得装置の前記並列運用予定台数を複数の数値の公倍数とした前記文書番号部分列探索開始アドレス表が記憶され、前記文書番号部分列探索開始アドレス表の前記部分列探索開始アドレスは、前記公倍数の約数それぞれの台数の前記文書番号部分列取得装置で運用したときの装置番号と対応付けられており、
前記部分列探索開始位置決定手段は、前記並列処理台数で前記文書番号部分列取得装置を運用したときの前記装置番号の中から自己の前記装置番号を検出し、検出した前記装置番号に対応する前記部分列探索開始アドレスを抽出することを特徴とする付記１記載の文書検索システム。
【０１９０】
（付記４）  前記文書番号部分列探索開始アドレス表記憶装置に記憶された前記文書番号部分列探索開始アドレス表には、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で、前記担当文書群頭出し文書番号が記録される位置を前記文書番号の配列における先頭からのアドレスの差分で表した相対アドレスが、前記部分列探索開始アドレスとして登録されており、
前記部分列取得手段は、前記転置インデックス記憶装置内の前記検索キーワードに対応する前記キーワード文字列に関連付けられた文書番号の配列における先頭アドレスに、前記部分列探索開始アドレスで示される前記相対アドレスを加算した位置から、アドレスが大きくなる方向へ向かって前記文書番号の探索を行う、
ことを特徴とする付記１記載の文書検索システム。
【０１９１】
（付記５）  前記文書検索管理装置は、転置インデックス作成指示が入力されると、前記文書データベースを参照して前記転置インデックスを更新すると共に、更新後の前記転置インデックスを参照して前記文書番号部分列探索開始アドレス表を更新する転置インデックス更新手段をさらに有することを特徴とする付記１記載の文書検索システム。
【０１９２】
（付記６）  前記文書検索管理装置は、転置インデックス作成指示が入力されると、前記文書データベースを参照して前記転置インデックスを更新し、前記転置インデックスに新たに情報の反映が行われた前記文書データの総数が所定数以上となった場合、更新後の前記転置インデックスを参照して前記文書番号部分列探索開始アドレス表を更新する転置インデックス更新手段をさらに有することを特徴とする付記１記載の文書検索システム。
【０１９３】
（付記７）  電子化された文書の検索を行う文書検索システムにおいて、
文書番号が付与された複数の文書データを記憶する文書データベースと、
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書番号の最小値から所定間隔の数値に対応する前記文書番号の値を所定間隔頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で、前記所定間隔頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、前記キーワード文字列に対応付けて登録されており、前記部分列探索開始アドレスに対して、前記部分列探索開始アドレスが指し示す位置を含む前記文書番号の配列において前記部分列探索開始アドレスに対応する前記所定間隔頭出し文書番号以下の文書番号のうち最も大きな値が付与された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、
検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書データベースに登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信する文書番号部分列取得要求手段と、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して文書番号配列を生成する文書番号配列集計手段と、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成する文書リスト作成手段と、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する検索結果通知手段と、を具備する前記文書検索管理装置と、
前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して１台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、前記担当文書群の先頭の文書データの文書番号以下の前記文書番号が付与された前記所定間隔頭出し文書番号のうち最も大きな値の前記文書番号が付与された前記所定間隔頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書番号部分列として前記文書検索管理装置に送信する部分列取得手段と、を具備する複数の前記文書番号部分列取得装置と、
を有することを特徴とする文書検索システム。
【０１９４】
（付記８）  複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む文書データの文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を１台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、を用い、
文書検索管理装置からの文書番号部分列取得要求に応じて、前記転置インデックス記憶装置から前記文書番号の配列の一部を取得するための文書番号部分列取得装置において、
前記文書データの数を示す文書総数、前記文書番号部分列取得装置の運用数を示す並列処理台数、および検索キーワードを含む前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して１台当たりの担当文書数を計算し、文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定する担当文書群決定手段と、
前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出する部分列探索開始位置決定手段と、
前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた前記文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を前記文書検索管理装置に送信する部分列取得手段と、
を有することを特徴とする文書番号部分列取得装置。
【０１９５】
（付記９）  電子化された文書の検索を行うための文書検索方法において、
文書番号が付与された複数の文書データを記憶する文書データベースと、
複数のキーワード文字列それぞれに対応付けて、前記キーワード文字列を含む前記文書データの前記文書番号が、前記文書番号の数値に応じて昇順の配列で登録された転置インデックスを記憶する転置インデックス記憶装置と、
前記文書データベースに登録されている文書データの数を示す文書総数を、予定されている並列運用予定台数で除算して得られる値を１台当たりの担当文書数とし、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合の各文書群において前記キーワード文字列を含む先頭の文書データに対応する前記文書番号の値を担当文書群頭出し文書番号とし、前記転置インデックスにおいて前記キーワード文字列それぞれに対応付けられた前記文書番号の配列上で前記担当文書群頭出し文書番号が記録される位置を示す部分列探索開始アドレスが、対応する前記担当文書群頭出し文書番号の値の小さい順に前記キーワード文字列に対応付けて登録された文書番号部分列探索開始アドレス表を記憶する文書番号部分列探索開始アドレス表記憶装置と、が予め用意されており、
文書検索管理装置の文書番号部分列取得要求手段が、検索依頼装置からの検索キーワードを含む文書検索依頼に応答して、前記文書データベースに登録されている文書データの数を示す文書総数、文書番号部分列取得装置の運用数を示す並列処理台数、および前記検索キーワードを含む文書番号部分列取得要求を、複数の前記文書番号部分列取得装置それぞれに送信し、
前記文書番号部分列取得装置それぞれの担当文書群決定手段が、前記文書番号部分列取得要求を前記文書検索管理装置から受け取ると、前記文書総数を前記並列処理台数で除算して１台当たりの担当文書数を計算し、前記文書データベース内の前記文書データを文書番号の小さい順に前記担当文書数ずつの集合に纏めた文書群を順次定義した場合に、予め設定された自装置の装置番号に応じた順番の前記文書群を担当文書群として決定し、
前記文書番号部分列取得装置それぞれの部分列探索開始位置決定手段が、前記文書番号部分列探索開始アドレス表記憶装置内の前記文書番号部分列探索開始アドレス表を参照し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた複数の前記部分列探索開始アドレスの中から、自装置の前記装置番号に応じた順番で登録された前記担当文書群頭出し文書番号に対応する前記部分列探索開始アドレスを抽出し、
前記文書番号部分列取得装置それぞれの部分列取得手段が、前記転置インデックス記憶装置内の前記転置インデックスを参照し、部分列探索開始位置決定手段で抽出された前記部分列探索開始アドレスで示される位置から前記文書番号の配列を昇順に探索し、前記検索キーワードに対応する前記キーワード文字列に関連付けられた文書番号配列内の前記担当文書群に含まれる前記文書番号を取得し、取得した前記文書番号の集合を文書番号部分列として前記文書検索管理装置に送信し、
前記文書検索管理装置の文書番号配列集計手段が、前記文書番号部分列取得要求に応じて複数の前記文書番号部分列取得装置から返される前記文書番号部分列を取得し、前記文書番号部分列に含まれる前記文書番号を集計して前記文書番号配列を生成し、
前記文書検索管理装置の文書リスト作成手段が、前記文書番号配列集計手段が生成した前記文書番号配列に含まれる前記文書番号それぞれに対応する前記文書データを前記文書データベースから抽出し、抽出した前記文書データに関する文書リストを作成し、
前記文書検索管理装置の検索結果通知手段が、前記文書リスト作成手段が作成した前記文書リストを前記検索依頼装置に送信する、
ことを特徴とする文書検索方法。
【図面の簡単な説明】
【０１９６】
【図１】発明の概要を示す図である。
【図２】第１の実施の形態の文書検索システム構成例を示す図である。
【図３】第１の実施の形態に用いる文書検索管理装置のハードウェア構成例を示す図である。
【図４】第１の実施の形態における文書検索機能を示すブロック図である。
【図５】文書ＤＢのデータ構造例を示す図である。
【図６】文書番号部分列探索開始アドレス表記憶装置のデータ構造例を示す図である。
【図７】転置インデックス記憶装置の内部構造およびデータ構造例を示す図である。
【図８】文書番号配列とアドレスの関係を示す図である。
【図９】文書検索処理の手順を示すシーケンス図である。
【図１０】文書番号配列の取得状況を示す図である。
【図１１】転置インデックス作成処理の手順を示すフローチャートである。
【図１２】部分列探索開始位置決定処理の手順を示すフローチャートである。
【図１３】並列運用予定台数候補を２の倍数としたときの文書番号部分列探索開始アドレス表の例を示す図である。
【図１４】並列処理台数が２台と４台との場合に使用可能な文書番号部分列探索開始アドレス表の例を示す図である。
【図１５】第４の実施の形態における転置インデックス作成処理の手順を示すフローチャートである。
【図１６】第４の実施の形態における文書番号部分列探索開始アドレス表の例を示す図である。
【図１７】第５の実施の形態における転置インデックス更新処理の手順を示すフローチャートである。
【図１８】相対アドレスにより部分列探索開始アドレスを指定した文書番号部分列探索開始アドレス表の例を示す図である。
【図１９】従来の文書検索システムの例を示す図である。
【符号の説明】
【０１９７】
１  文書ＤＢ
２  転置インデックス記憶装置
３  文書番号部分列探索開始アドレス表記憶装置
４  検索依頼装置
５  文書検索管理装置
５ａ  文書番号部分列取得要求手段
５ｂ  文書番号配列集計手段
５ｃ  文書リスト作成手段
５ｄ  検索結果通知手段
６ａ，６ｂ，６ｃ，６ｄ  文書番号部分列取得装置
６ａａ  担当文書群決定手段
６ａｂ  部分列探索開始位置決定手段
６ａｃ  部分列取得手段
７ａ  文書検索依頼
７ｂ  文書番号部分列取得要求
７ｃ  担当文書群
７ｄ  部分列探索開始アドレス
７ｅ  文書番号部分列
７ｆ  文書番号配列
７ｇ  文書リスト
【図１】
2008250722.tif 000003
【図２】
2008250722.tif 000004
【図３】
2008250722.tif 000005
【図４】
2008250722.tif 000006
【図５】
2008250722.tif 000007
【図６】
2008250722.tif 000008
【図７】
2008250722.tif 000009
【図８】
2008250722.tif 000010
【図９】
2008250722.tif 000011
【図１０】
2008250722.tif 000012
【図１１】
2008250722.tif 000013
【図１２】
2008250722.tif 000014
【図１３】
2008250722.tif 000015
【図１４】
2008250722.tif 000016
【図１５】
2008250722.tif 000017
【図１６】
2008250722.tif 000018
【図１７】
2008250722.tif 000019
【図１８】
2008250722.tif 000020
【図１９】
2008250722.tif 000021