(57)【特許請求の範囲】
【請求項１】
抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、
複数のデータのそれぞれの特徴を示す特徴情報と、前記複数のデータのそれぞれを識別する識別情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出部と、
前記識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部と、
前記複数のインデックスファイルの少なくとも１つを作成又は更新するインデックスファイル更新部と、
を備え、
前記複数のインデックスファイルは、第１のインデックスファイル及び第２のインデックスファイルを含み、
前記インデックスファイル更新部は、
予め定められたイベントが発生するまで、前記複数のデータを格納する記憶装置に新たなデータが格納されるときに、前記第１のインデックスファイルを更新し、
予め定められたイベントが発生すると、前記第１のインデックスファイルに基づき、前記第２のインデックスファイルを作成するとともに、新たな前記第１のインデックスファイルを作成し、又は前記第１のインデックスファイルの内容をクリアし、
前記識別情報抽出部は、
前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記第１のインデックスファイル及び前記第２のインデックスファイルから抽出する、又は複数の前記第２のインデックスファイルから抽出する、
検索装置。
【請求項２】
前記特徴情報は、前記複数のデータのそれぞれの一部に関する特徴を示す情報を含む、
請求項１に記載の検索装置。
【請求項３】
前記第１のインデックスファイルは、複数の更新用インデックスファイルを含み、
前記インデックスファイル更新部は、前記新たなデータの特徴情報の種類、又は前記新たなデータの作成者、入力者若しくは送信者を識別する情報に基づいて、前記複数の更新用インデックスファイルのうち、更新する更新用インデックスファイルを選択する、
請求項１又は請求項２に記載の検索装置。
【請求項４】
前記インデックスファイル更新部は、前記第１のインデックスファイルに基づき、前記複数の第２のインデックスファイルを作成する、
請求項１から請求項３までの何れか一項に記載の検索装置。
【請求項５】
前記第１のインデックスファイルは、前記複数の第２のインデックスファイルの少なくとも１つよりも応答速度の速い記憶装置に格納される、
請求項１から請求項４までの何れか一項に記載の検索装置。
【請求項６】
前記複数のデータのそれぞれの前記識別情報と、前記複数のデータのそれぞれのアクセス先を示すアクセス情報とが対応付けられた管理ファイルを参照して、前記識別情報リストに含まれる識別情報と一致する識別情報に対応付けられているアクセス情報を、前記管理ファイルから抽出するアクセス情報抽出部をさらに備える、
請求項１から請求項５までの何れか一項に記載の検索装置。
【請求項７】
前記複数のデータを格納する複数の記憶装置と、
前記管理ファイルを格納し、ネットワークを介して、前記複数の記憶装置のそれぞれと情報をやり取りする管理サーバと、
をさらに備える、
請求項６に記載の検索装置。
【請求項８】
ユーザから、前記抽出対象情報を含む検索要求を受け付ける要求受付部と、
検索要求に対する検索結果として、ユーザに前記識別情報リストを提示する出力部と、
をさらに備える、
請求項１から請求項７までの何れか一項に記載の検索装置。
【請求項９】
クライアント端末と、
前記クライアント端末とネットワークを介して情報をやりとりするサーバと、
を備え、
前記サーバは、
抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、
複数のデータのそれぞれを識別する識別情報と、前記複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出部と、
前記識別情報抽出部が抽出した複数の識別情報を、前記クライアント端末に送信する送信部と、
前記複数のインデックスファイルの少なくとも１つを作成又は更新するインデックスファイル更新部と、
を有し、
前記複数のインデックスファイルは、第１のインデックスファイル及び第２のインデックスファイルを含み、
前記インデックスファイル更新部は、
予め定められたイベントが発生するまで、前記複数のデータを格納する記憶装置に新たなデータが格納されるときに、前記第１のインデックスファイルを更新し、
予め定められたイベントが発生すると、前記第１のインデックスファイルに基づき、前記第２のインデックスファイルを作成するとともに、新たな前記第１のインデックスファイルを作成し、又は前記第１のインデックスファイルの内容をクリアし、
前記識別情報抽出部は、
前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記第１のインデックスファイル及び前記第２のインデックスファイルから抽出する、又は複数の前記第２のインデックスファイルから抽出し、
前記クライアント端末は、
前記識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部を有する、
検索システム。
【請求項１０】
前記第１のインデックスファイルは、複数の更新用インデックスファイルを含み、
前記インデックスファイル更新部は、前記新たなデータの特徴情報の種類、又は前記新たなデータの作成者、入力者若しくは送信者を識別する情報に基づいて、前記複数の更新用インデックスファイルのうち、更新する更新用インデックスファイルを選択する、
請求項９に記載の検索システム。
【請求項１１】
前記インデックスファイル更新部は、前記第１のインデックスファイルに基づき、前記複数の第２のインデックスファイルを作成する、
請求項９又は請求項１０に記載の検索システム。
【請求項１２】
前記第１のインデックスファイルは、前記複数の第２のインデックスファイルの少なくとも１つよりも応答速度の速い記憶装置に格納される、
請求項９から請求項１１までの何れか一項に記載の検索システム。
【請求項１３】
コンピュータが、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、
コンピュータが、複数のデータのそれぞれを識別する識別情報と、前記複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられ、記憶手段に格納された複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出段階と、
コンピュータが、前記抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階と、
コンピュータが、前記複数のインデックスファイルの少なくとも１つを作成又は更新するインデックスファイル更新段階と、
を備え、
前記複数のインデックスファイルは、第１のインデックスファイル及び第２のインデックスファイルを含み、
前記インデックスファイル更新段階は、
コンピュータが予め定められたイベントが発生したと判断するまで、コンピュータが、前記複数のデータを格納する記憶装置に新たなデータが格納されるときに、前記第１のインデックスファイルを更新する段階と、
コンピュータが予め定められたイベントが発生したと判断すると、コンピュータが、前記第１のインデックスファイルに基づき、前記第２のインデックスファイルを作成するとともに、新たな前記第１のインデックスファイルを作成し、又は前記第１のインデックスファイルの内容をクリアする段階と、
を有し、
前記識別情報抽出段階は、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記第１のインデックスファイル及び前記第２のインデックスファイルから抽出する、又は複数の前記第２のインデックスファイルから抽出する段階を有する、
方法。
【請求項１４】
サーバが、ネットワークを介して、クライアント端末にサービスを提供する方法であって、
前記サービスが、
抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、
複数のデータのそれぞれを識別する識別情報と、前記複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出段階と、
前記抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階と、
前記複数のインデックスファイルの少なくとも１つを作成又は更新するインデックスファイル更新段階と、
を備え、
前記複数のインデックスファイルは、第１のインデックスファイル及び第２のインデックスファイルを含み、
前記インデックスファイル更新段階は、
予め定められたイベントが発生するまで、前記複数のデータを格納する記憶装置に新たなデータが格納されるときに、前記第１のインデックスファイルを更新する段階と、
予め定められたイベントが発生すると、前記第１のインデックスファイルに基づき、前記第２のインデックスファイルを作成するとともに、新たな前記第１のインデックスファイルを作成し、又は前記第１のインデックスファイルの内容をクリアする段階と、
を有し、
前記識別情報抽出段階は、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記第１のインデックスファイル及び前記第２のインデックスファイルから抽出する、又は複数の前記第２のインデックスファイルから抽出する段階を有する、
方法。
【請求項１５】
前記第１のインデックスファイルは、複数の更新用インデックスファイルを含み、
前記インデックスファイル更新段階は、前記新たなデータの特徴情報の種類、又は前記新たなデータの作成者、入力者若しくは送信者を識別する情報に基づいて、前記複数の更新用インデックスファイルのうち、更新する更新用インデックスファイルを選択する段階を含む、
請求項１３又は請求項１４に記載の方法。
【請求項１６】
前記インデックスファイル更新段階は、前記第１のインデックスファイルに基づき、前記複数の第２のインデックスファイルを作成する段階を含む、
請求項１３から請求項１５までの何れか一項に記載の方法。
【請求項１７】
コンピュータを、請求項１から請求項８までの何れか一項に記載の検索装置又は請求項９から請求項１２までの何れか一項に記載の検索システムとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置、検索システム、方法およびプログラムに関する。
【背景技術】
【０００２】
インターネット上またはファイルサーバ上のファイルにアクセスするための検索エンジンが知られている。検索エンジンは、ユーザからの検索要求を受け付けて、検索条件に適合するファイルのリストを取得して、当該リストをユーザに送信する（例えば、特許文献１および２を参照。）。
（先行技術文献）
（特許文献）
特許文献１  特開２００５−１２２７０２号公報
特許文献２  特開平９−２６５４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
検索エンジンは、ファイル検索を容易にする目的で、ファイルを解析してインデックスファイルを作成する。検索エンジンは、ファイルサーバにファイルが登録される度にインデックスファイルを更新する。しかし、インデックスファイルは、ファイルサーバの全てのファイルに対して、単一のデータベースとして提供される。そのため、ファイルサーバ内のファイル数が増加するにつれて、インデックスファイルの更新負荷が増大する。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、複数のデータのそれぞれの特徴を示す特徴情報と、複数のデータのそれぞれを識別する識別情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出部と、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部とを備える、検索装置が提供される。
【０００５】
上記の検索装置において、特徴情報は、複数のデータのそれぞれの一部に関する特徴を示す情報を含んでよい。上記の検索装置において、インデックスファイルを更新するインデックスファイル更新部をさらに備えてよく、インデックスファイル更新部は、予め定められたイベントが発生するまで、第１のインデックスファイルを更新し、予め定められたイベントが発生すると、第１のインデックスファイルに基づき、第２のインデックスファイルを作成してよい。
【０００６】
上記の検索装置において、複数のデータのそれぞれの識別情報と、複数のデータのそれぞれのアクセス先を示すアクセス情報とが対応付けられた管理ファイルを参照して、識別情報リストに含まれる識別情報と一致する識別情報に対応付けられているアクセス情報を、管理ファイルから抽出するアクセス情報抽出部をさらに備えてよい。上記の検索装置において、複数のデータを格納する複数の記憶装置と、管理ファイルを格納し、ネットワークを介して、複数の記憶装置のそれぞれと情報をやり取りする管理サーバとをさらに備えてよい。上記の検索装置において、ユーザから、抽出対象情報を含む検索要求を受け付ける要求受付部と、検索要求に対する検索結果として、ユーザに識別情報リストを提示する出力部とをさらに備えてよい。
【０００７】
本発明の第２の態様においては、クライアント端末と、クライアント端末とネットワークを介して情報をやりとりするサーバとを備え、サーバは、抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出部と、識別情報抽出部が抽出した複数の識別情報を、クライアント端末に送信する送信部とを有し、クライアント端末は、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部を有する、検索システムが提供される。
【０００８】
本発明の第３の態様においては、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が提供される。
【０００９】
上記の方法において、インデックスファイルを更新するインデックスファイル更新段階をさらに備えてよく、インデックスファイル更新段階は、予め定められたイベントが発生するまで、第１のインデックスファイルを更新する段階と、予め定められたイベントが発生すると、第１のインデックスファイルに基づき、第２のインデックスファイルを作成する段階とを有してよい。
【００１０】
本発明の第４の態様においては、サーバが、ネットワークを介して、クライアント端末にサービスを提供する方法であって、サービスが、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が提供される。
【００１１】
本発明の第４の態様においては、コンピュータに、上記の方法を実行させる、プログラムが提供される。
【００１２】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置１００のシステム構成の一例を概略的に示す。
【図２】更新用インデックスファイル１５２のデータ構造の一例を概略的に示す。
【図３】管理ファイル１７２のデータ構造の一例を概略的に示す。
【図４】インデックスファイルを更新する方法の一例を概略的に示す。
【図５】データを検索する方法の一例を概略的に示す。
【図６】識別情報リストを作成する方法の一例を概略的に示す。
【図７】情報処理装置７００のシステム構成の一例を概略的に示す。
【図８】更新用インデックスファイル７５２のデータ構造の一例を概略的に示す。
【図９】情報処理装置９００のシステム構成の一例を概略的に示す。
【図１０】更新用インデックスファイル９５２のデータ構造の一例を概略的に示す。
【図１１】更新用インデックスファイル９５４のデータ構造の一例を概略的に示す。
【図１２】一実施形態に係るコンピュータ１９００のハードウエア構成の一例を概略的に示す。
【発明を実施するための形態】
【００１４】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、図面を参照して、実施形態について説明するが、図面の記載において、同一または類似の部分には同一の参照番号を付して重複する説明を省く場合がある。
【００１５】
図１は、情報処理装置１００のシステム構成の一例を概略的に示す。情報処理装置１００は、ユーザから検索要求を受け付けて、検索条件に適合するデータファイルのリストを作成し、当該リストをユーザに提示する検索エンジンまたはファイル管理システムであってよい。情報処理装置１００は、当該用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ、携帯端末、無線端末等の汎用の情報処理装置であってもよい。
【００１６】
情報処理装置１００は、入力部１１０と、要求受付部１２０と、出力部１３０と、ファイル管理部１４０と、アクセス制御部１７０と、記憶部１８０とを備える。ファイル管理部１４０は、インデックスファイル更新部１５０と、検索部１６０とを有する。検索部１６０は、取得部１６２と、識別情報抽出部１６４と、リスト作成部１６６とを含む。情報処理装置１００、ファイル管理部１４０および検索部１６０は、検索装置の一例であってよい。
【００１７】
インデックスファイル更新部１５０は、更新用インデックスファイル１５２を保持してよい。アクセス制御部１７０は、管理ファイル１７２を保持してよい。記憶部１８０は、データファイル１８２と、テンポラリーインデックスファイル１９２と、マスターインデックスファイル１９４とを格納してよい。更新用インデックスファイル１５２、テンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４は、複数のインデックスファイルの一例であってよい。記憶部１８０は、更新用インデックスファイル１５２および管理ファイル１７２の少なくとも一方を格納してもよい。
【００１８】
更新用インデックスファイル１５２、テンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４は、複数のデータのそれぞれの特徴を示す特徴情報と、複数のデータのそれぞれを識別する識別情報とが対応付けられた情報（インデックス情報と称する場合がある。）を格納する。テンポラリーインデックスファイル１９２は、更新用インデックスファイル１５２に基づいて作成される。マスターインデックスファイル１９４は、複数のテンポラリーインデックスファイル１９２、または、複数のテンポラリーインデックスファイル１９２および更新用インデックスファイル１５２に基づいて作成される。
【００１９】
特徴情報は、データファイルに含まれるデータの特徴を示す情報であってよい。データの特徴は、データファイルの属性であってよい。データファイルの属性は、データの形式、データの種類、データの表示もしくは非表示、または、データの作成日時もしくは更新日時であってよい。データの特徴は、当該データに対するユーザの要求を示す情報であってよい。データの特徴は、当該データが削除されたことを示す情報であってよい。特徴情報は、データの一部に関する特徴を示す情報を含んでよい。データがテキストデータの場合、データの特徴は、データに含まれるテキストの一部であってよい。データが画像データまたは映像データの場合、データの特徴は、データに含まれる画像を構成する画素の色相、彩度、明度であってよい。
【００２０】
識別情報は、複数のデータファイルのそれぞれを識別する識別情報であってよい。識別情報は、データファイルの名称、データファイルに付された識別番号であってよい。識別情報は、データファイル中におけるデータの位置を示す情報であってもよい。映像データ、サウンドデータのように、データファイルが、時系列に連続する複数のデータを含む場合、識別情報は、時系列に対応付けられてよい。データファイルが映像データである場合、フレームごとに識別情報が付されてよい。
【００２１】
管理ファイル１７２は、複数のデータのそれぞれの識別情報と、複数のデータのそれぞれのアクセス先を示すアクセス情報とが対応付けられた情報を格納してよい。アクセス情報は、データファイルの格納場所または参照先を示す情報であってよい。アクセス情報は、データファイル中の特定のデータの格納場所または参照先を示す情報であってよい。データファイル１８２は、画像データ、テキストデータ、映像データ、サウンドデータ、各種ソフトウエアにより使用されるデータ、または、ソフトウエアなどのプログラムであってよい。
【００２２】
入力部１１０は、記憶部１８０に格納するデータが入力される。入力部１１０は、外部のコンピュータ、記憶装置または記憶媒体との間で情報をやり取りする情報読取装置または通信装置であってよい。入力部１１０に入力されるデータは、画像データ、テキストデータ、映像データ、サウンドデータ、ソフトウエア、ソフトウエアにより使用されるデータなどのデータファイルであってよい。入力部１１０は、外部からデータファイル１８２を受け取り、インデックスファイル更新部１５０に送信してよい。入力部１１０は、アクセス制御部１７０を介して、記憶部１８０にデータファイル１８２を格納してよい。
【００２３】
要求受付部１２０は、情報処理装置１００に対する要求を受け付ける。要求受付部１２０は、キーボード、マウス、タッチパネル、マイクなどの入力装置、文字認識装置またはサウンド認識装置であってよい。要求受付部１２０は、外部のコンピュータ、記憶装置または記憶媒体との間で情報をやり取りする情報読取装置または通信装置であってもよい。
【００２４】
要求受付部１２０は、ユーザから、抽出すべきデータの特徴を示す抽出対象情報が含まれる検索要求を受け付ける。抽出すべきデータの特徴は、抽出すべきデータファイルに含まれるデータの特徴であってもよい。抽出対象情報の例としては、特徴情報の場合と同様の情報を例示することができる。要求受付部１２０は、抽出対象情報を検索部１６０に送信してよい。要求受付部１２０は、取得部の一例であってもよい。
【００２５】
出力部１３０は、検索要求に対する検索結果をユーザに提示する。出力部１３０は、液晶ディスプレイ、有機ＥＬディスプレイ、ＣＲＴディスプレイなどの表示装置、プリンタまたはスピーカであってよい。出力部１３０は、外部のコンピュータ、記憶装置または記憶媒体との間で情報をやり取りする情報書込装置または通信装置であってもよい。
【００２６】
出力部１３０は、検索部１６０から、ユーザの検索条件に適合するデータファイルのリストを受け取ってよい。出力部１３０は、ユーザの検索要求に対する検索結果として、検索部１６０から受け取ったリストを、ユーザに提示してよい。出力部１３０は、アクセス制御部１７０から、データファイル１８２のアクセス先の情報を受け取り、ユーザに提示してもよい。出力部１３０は送信部の一例であってもよい。
【００２７】
ファイル管理部１４０は、記憶部１８０に格納されたデータファイルを管理する。ファイル管理部１４０は、入力部１１０から入力されたデータファイル１８２を記憶部１８０に格納するときに、インデックスファイルを作成または更新する。ファイル管理部１４０は、要求受付部１２０から抽出対象情報を受け取る。ファイル管理部１４０は、記憶部１８０に格納された複数のデータファイルの中から、抽出対象情報に適合するデータファイルのリストを作成してよい。ファイル管理部１４０は、データファイル中における、抽出対象情報に適合するデータの位置を示すリストを作成してもよい。ファイル管理部１４０は、作成したリストを出力部１３０に送信する。
【００２８】
インデックスファイル更新部１５０は、インデックスファイルを更新する。インデックスファイル更新部１５０は、入力部１１０から入力されたデータファイル１８２を解析して、データファイル１８２に含まれるデータの特徴を示す特徴情報を抽出する。インデックスファイル更新部１５０は、抽出した特徴情報と、データファイル１８２またはデータファイル１８２に含まれるデータを識別する識別情報とが対応づけられたインデックス情報を作成する。インデックスファイル更新部１５０は、作成したインデックス情報と、更新用インデックスファイル１５２に含まれるインデックス情報とを比較して、インデックス情報の変更、追加、削除などを実行して、更新用インデックスファイル１５２を更新する。
【００２９】
インデックスファイル更新部１５０は、要求受付部１２０からデータファイル１８２を削除する指示を受け取った場合にも、更新用インデックスファイル１５２を更新してよい。更新用インデックスファイル１５２は、記憶部１８０よりも応答速度の速い記憶装置に格納されてよい。更新用インデックスファイル１５２は、メモリ上に格納されてよい。
【００３０】
インデックスファイル更新部１５０は、予め定められたイベントが発生するまで、入力部１１０から入力されたデータファイル１８２を記憶部１８０に格納するときに、更新用インデックスファイル１５２を更新する。インデックスファイル更新部１５０は、予め定められたイベントが発生すると、更新用インデックスファイル１５２に含まれるインデックス情報をテンポラリーインデックスファイル１９２として出力して、記憶部１８０に格納する。更新用インデックスファイル１５２は、第１のインデックスファイルの一例であってよい。テンポラリーインデックスファイル１９２は、第２のインデックスファイルの一例であってよい。
【００３１】
予め定められたイベントは、更新用インデックスファイル１５２が作成されてから、予め定められた期間が経過したことであってよい。予め定められたイベントは、前回、更新用インデックスファイル１５２に含まれるインデックス情報が記憶部１８０に出力されてから、予め定められた期間が経過したことであってよい。予め定められたイベントは、更新用インデックスファイル１５２のサイズが予め定められたサイズを超えたことであってよい。予め定められたイベントは、要求受付部１２０がユーザの検索要求を受け付けたことであってよい。予め定められたイベントは、インデックスファイル更新部１５０がマスターインデックスファイル１９４を作成することであってよい。
【００３２】
本実施形態によれば、インデックスファイルがファイルサーバの全てのファイルに対して、単一のデータベースとして提供される場合と比較して、更新用インデックスファイル１５２のサイズを小さくすることができる。そのため、インデックスファイルの更新負荷を劇的に軽減することができる。また、インデックスファイルの更新時間を大幅に短縮することができる。その結果、汎用の機器を用いても十分な処理速度を実現することができ、情報処理装置１００を構築するコストを低減させることができる。
【００３３】
この特徴を利用して、インデックスファイル更新部１５０は、複数の更新用インデックスファイル１５２を作成して、入力部１１０に入力されたデータファイル１８２を記憶部１８０に格納するときに、複数の更新用インデックスファイル１５２を更新してもよい。インデックスファイル更新部１５０は、データファイル１８２のデータ形式に基づいて、更新する更新用インデックスファイル１５２を選択してよい。インデックスファイル更新部１５０は、データファイルの作成者、入力者または送信者に基づいて、更新する更新用インデックスファイル１５２を選択してよい。これにより、検索時に探索対象となるインデックス情報を少なくすることができる。
【００３４】
インデックスファイル更新部１５０は、予め定められたルールに基づいて、更新用インデックスファイル１５２のデータを、複数のテンポラリーインデックスファイル１９２に分割して出力してよい。これにより、識別情報抽出部１６４による複数のテンポラリーインデックスファイル１９２の探索を並列して実行することができる。その結果、インデックスファイルの更新時間を大幅に短縮することができる。
【００３５】
インデックスファイル更新部１５０は、更新用インデックスファイル１５２に含まれる複数のインデックス情報を、テンポラリーインデックスファイル１９２のサイズが予め定められたサイズになるように、複数のテンポラリーインデックスファイル１９２に分割してよい。インデックスファイル更新部１５０は、更新用インデックスファイル１５２に含まれる複数のインデックス情報を、乱数を用いて、複数のテンポラリーインデックスファイル１９２に分割してよい。
【００３６】
インデックスファイル更新部１５０は、更新用インデックスファイル１５２に含まれる複数のインデックス情報を、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの分類とが対応付けられた情報に基づいて、複数のテンポラリーインデックスファイル１９２に分割してよい。インデックスファイル更新部１５０は、更新用インデックスファイル１５２に含まれる複数のインデックス情報を、複数の特徴情報と、複数の特徴情報のそれぞれの分類とが対応付けられた情報に基づいて、複数のテンポラリーインデックスファイル１９２に分割してよい。
【００３７】
インデックスファイル更新部１５０は、現在の更新用インデックスファイル１５２に含まれるインデックス情報を記憶部１８０に出力した後、現在の更新用インデックスファイル１５２を削除して、新たに、更新用インデックスファイル１５２を作成してよい。インデックスファイル更新部１５０は、現在の更新用インデックスファイル１５２に含まれるインデックス情報を記憶部１８０に出力した後、現在の更新用インデックスファイル１５２に含まれるインデックス情報をクリアしてもよい。
【００３８】
インデックスファイル更新部１５０は、予め定められたイベントが発生した場合に、複数のテンポラリーインデックスファイル１９２、または、複数のテンポラリーインデックスファイル１９２および更新用インデックスファイル１５２に基づいて、マスターインデックスファイル１９４を作成または更新してよい。予め定められたイベントは、マスターインデックスファイル１９４が作成または更新されてから、予め定められた期間が経過したことであってよい。予め定められたイベントは、予め定められた時刻になったことであってよい。マスターインデックスファイル１９４は、例えば、複数のインデックスファイルに含まれるインデックス情報を一つにまとめて、重複するインデックス情報を削除することで作成または更新することができる。インデックスファイル更新部１５０は、マスターインデックスファイル１９４を作成した後、テンポラリーインデックスファイル１９２を削除してよい。
【００３９】
検索部１６０は、ユーザの検索要求に対する検索結果を作成する。検索部１６０は、要求受付部１２０から抽出対象情報を受け取る。検索部１６０は、記憶部１８０に格納された複数のデータファイルの中から、抽出対象情報に適合するデータファイルのリストを作成してよい。検索部１６０は、データファイル中における、抽出対象情報に適合するデータの位置を示すリストを作成してもよい。検索部１６０は、作成したリストを出力部１３０に送信する。
【００４０】
取得部１６２は、抽出すべきデータの特徴を示す抽出対象情報を取得する。取得部１６２は、要求受付部１２０から抽出対象情報を取得してよい。取得部１６２は、取得した抽出対象情報を識別情報抽出部１６４に送信する。
【００４１】
識別情報抽出部１６４は、複数のデータのそれぞれを識別する識別情報と、複数のデータの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する。識別情報抽出部１６４は、１以上のテンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４を参照して、当該インデックスファイルから識別情報を抽出してよい。識別情報抽出部１６４は、さらに、更新用インデックスファイルを参照して、更新用インデックスファイルから識別情報を抽出してもよい。
【００４２】
識別情報抽出部１６４は、抽出対象情報と同一の特徴情報に対応付けられている識別情報だけでなく、抽出対象情報に類似する特徴情報に対応付けられている識別情報を抽出してもよい。データがテキストデータの場合には、抽出対象情報である文字列の類義語または同意語に対応付けられている識別情報を抽出してよい。データが画像データ、映像データまたはサウンドデータの場合には、抽出対象情報と、インデックスファイルに格納されている特徴情報とを比較して、画像またはサウンドの一致度が予め定められた閾値より大きい場合に、当該特徴情報に対応付けられている識別情報を抽出してよい。
【００４３】
リスト作成部１６６は、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成する。リスト作成部１６６は、検索要求に対する検索結果として、識別情報リストを出力部１３０に送信する。
【００４４】
本実施形態によれば、インデックスファイルが、単一のデータベースとして提供されない。本実施形態によれば、インデックスファイルが、複数のデータベースとして提供される。これにより、インデックスファイルの更新負荷を劇的に軽減することができる。また、インデックスファイルの探索を並列して実行するができるので、インデックスファイルの更新時間を大幅に短縮することができる。
【００４５】
それぞれのインデックスファイルは、検索時に、識別情報が重複して抽出されることがないように作成される。しかし、識別情報抽出部１６４は、複数のインデックスファイルを参照して、それぞれのインデックスファイルから、検索結果の候補となる識別情報を抽出する。そのため、識別情報抽出部１６４が抽出した識別情報の中に、同一の識別情報が重複して含まれる場合がある。
【００４６】
本実施形態によれば、リスト作成部１６６が、識別情報抽出部が抽出した複数の識別情報に基づいて、同一の識別情報が重複して含まれていない識別情報リストを作成する。これにより、インデックスファイルが、複数のデータベースとして提供される場合であっても、重複のない検索結果を提供することができる。インデックスファイルの更新頻度と比較して、検索要求を受け付ける頻度が小さい場合に、その効果が大きくなる。データファイルがネットワーク上の分散ストレージに格納されている場合のように、インデックスファイルの更新時間が長い場合に、その効果が大きくなる。
【００４７】
アクセス制御部１７０は、記憶部１８０へのアクセスを制御する。アクセス制御部１７０は、管理ファイル１７２を参照して、識別情報リストに含まれる識別情報と一致する識別情報に対応付けられているアクセス情報を、管理ファイル１７２から抽出してよい。アクセス制御部１７０は、アクセス情報抽出部の一例であってよい。
【００４８】
アクセス制御部１７０は、入力部１１０からデータファイル１８２を受け取り、記憶部１８０に格納してよい。このとき、アクセス制御部１７０は、管理ファイル１７２を更新してよい。アクセス制御部１７０は、インデックスファイル更新部１５０からテンポラリーインデックスファイル１９２を受け取り、記憶部１８０に格納してよい。このとき、アクセス制御部１７０は、管理ファイル１７２を更新してよい。
【００４９】
アクセス制御部１７０は、識別情報抽出部１６４からテンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４へのアクセス要求を受け取り、識別情報抽出部１６４に対して、テンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４のアクセス先の情報を送信してよい。アクセス制御部１７０は、要求受付部１２０から、データファイル１８２へのアクセス要求を受け取り、出力部１３０に対して、データファイル１８２のアクセス先の情報を送信してよい。
【００５０】
記憶部１８０は、データを記憶する。記憶部１８０は、ハードディスク、ＣＤ−ＲＯＭ、ＩＣカード、フラッシュメモリなどの記憶装置または記憶媒体であってもよい。記憶部１８０は、仮想化またはクラウド化された記憶装置または記憶媒体であってもよい。記憶部１８０は、ＲＯＭ、ＲＡＭ、キャッシュメモリなどのメモリであってもよい。記憶部１８０は、記憶装置の一例であってよい。
【００５１】
情報処理装置１００および情報処理装置１００の各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよい。情報処理装置１００は、それぞれの用途に特化したシステムであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。上記の特化したシステムおよび情報処理装置は、単一のコンピュータにより構成されてもよく、ネットワーク上に分散した複数のコンピュータにより構成されてもよい。
【００５２】
情報処理装置１００は、プログラムが実行されることにより、コンピュータが情報処理装置１００として機能してもよい。ＣＰＵ、ＲＯＭ、ＲＡＭ、通信インターフェイス等を有するデータ処理装置と、入力装置と、出力装置と、記憶装置とを備えた一般的な構成の情報処理装置において、情報処理装置１００の各部の動作を規定したソフトウエアを起動することにより、情報処理装置１００が実現されてよい。
【００５３】
図２は、テンポラリーインデックスファイル１９２のデータ構造の一例を概略的に示す。図２は、データファイルがテキストデータである場合のテンポラリーインデックスファイル１９２のデータ構造の一例を概略的に示す。なお、更新用インデックスファイル１５２およびマスターインデックスファイル１９４も、テンポラリーインデックスファイル１９２と同様のデータ構造を有してよい。
【００５４】
テンポラリーインデックスファイル１９２は、データファイルに含まれる文字列２９６と、データファイルを識別する識別番号２９８とが対応付けられたインデックス情報を格納してよい。文字列２９６は、データファイルに含まれる文字列を文字単位で分解して、得られた文字列であってよい。文字列２９６は、特徴情報の一例であってよい。識別番号２９８は、識別情報の一例であってよい。
【００５５】
識別情報抽出部１６４は、例えば、以下の手順で、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、テンポラリーインデックスファイル１９２から抽出することができる。識別情報抽出部１６４は、抽出対象情報を、テンポラリーインデックスファイル１９２に格納された文字列と同じ長さの文字列に分解する。抽出対象情報が「ａｂｃ」である場合、抽出対象情報には、文字列「ａｂ」および「ｂｃ」が含まれる。
【００５６】
次に、識別情報抽出部１６４は、テンポラリーインデックスファイル１９２を参照して、文字列「ａｂ」が含まれるデータファイルの識別番号を探索する。図２によれば、文字列「ａｂ」が含まれるデータファイルの識別番号は、「１０」、「１２３」、「１２５」などであることがわかる。また、識別情報抽出部１６４は、テンポラリーインデックスファイル１９２を参照して、文字列「ｂｃ」が含まれるデータファイルの識別番号を探索する。図２によれば、文字列「ｂｃ」が含まれるデータファイルの識別番号は、「１００」、「１２３」、「１０５０」などであることがわかる。
【００５７】
識別情報抽出部１６４は、文字列「ａｂ」が含まれるデータファイルの識別番号と、文字列「ｂｃ」が含まれるデータファイルの識別番号とを比較して、両方の文字列を含む識別番号を、抽出対象情報に関連する特徴情報に対応付けられている識別情報として抽出する。この場合、識別番号が「１２３」のデータファイルが抽出される。
【００５８】
なお、インデックスファイルの内容、データ構造などは、これに限定されない。インデックスファイルは、データの内容を解析して得られる情報の集合であればよい。
【００５９】
図３は、管理ファイル１７２のデータ構造の一例を概略的に示す。管理ファイル１７２は、データファイルを識別する識別番号３７６と、データファイルの格納場所３７８とが対応付けられた情報を格納してよい。識別番号３７６は、識別情報の一例であってよい。これにより、アクセス制御部１７０は、識別情報に対応付けられているアクセス情報を、管理ファイル１７２から抽出することができる。
【００６０】
次に、図４、図５および図６を用いて、情報処理装置１００における情報処理の概略を説明する。図４は、インデックスファイルを更新する方法の一例を概略的に示す。Ｓ４０２において、入力部１１０が、データファイル１８２が入力されたか否かを判断する。入力部１１０が、データファイル１８２が入力されていないと判断した（Ｓ４０２のＮｏ）場合には、情報処理装置１００は待機する。入力部１１０が、データファイル１８２が入力されたと判断した場合（Ｓ４０２のＹｅｓ）には、Ｓ４０４において、インデックスファイル更新部１５０が、データファイル１８２を解析して、更新用インデックスファイル１５２を更新する。また、Ｓ４０６において、アクセス制御部１７０が、データファイル１８２を記憶部１８０に格納する。このとき、アクセス制御部１７０は、管理ファイル１７２を更新してよい。
【００６１】
Ｓ４０８において、インデックスファイル更新部１５０が、予め定められたイベントの発生が発生したか否かを判断する。インデックスファイル更新部１５０が、予め定められたイベントが発生したか否かを判断する。インデックスファイル更新部１５０が、予め定められたイベントが発生したと判断した場合（Ｓ４０８のＹｅｓ）には、Ｓ４１０において、インデックスファイル更新部１５０が、更新用インデックスファイル１５２に含まれるインデックス情報を、テンポラリーインデックスファイル１９２としてアクセス制御部１７０に出力する。アクセス制御部１７０は、テンポラリーインデックスファイル１９２を記憶部１８０に格納する。このとき、アクセス制御部１７０は、管理ファイル１７２を更新してよい。
【００６２】
Ｓ４０８において、インデックスファイル更新部１５０が、予め定められたイベントが発生していないと判断した場合（Ｓ４０８のＹｅｓ）には、Ｓ４１２において、要求受付部１２０が、ユーザから終了指示を受信したか否かを判断する。Ｓ４１０において、アクセス制御部１７０が、テンポラリーインデックスファイル１９２を記憶部１８０に格納した場合にも、Ｓ４１２において、要求受付部１２０が、ユーザから終了指示を受信したか否かを判断する。
【００６３】
Ｓ４１２において、要求受付部１２０が、ユーザから終了指示を受信していないと判断した場合（Ｓ４１２のＮｏ）には、情報処理装置１００は、待機する。Ｓ４１２において、要求受付部１２０が、ユーザから終了指示を受信したと判断した場合（Ｓ４１２のＹｅｓ）には、情報処理装置１００は、処理を終了する。
【００６４】
図５は、データを検索する方法の一例を概略的に示す。Ｓ５０２において、要求受付部１２０が、ユーザから、抽出すべきデータの特徴を示す抽出対象情報が含まれる検索要求を受け付ける。要求受付部１２０は、抽出対象情報を取得部１６２に送信する。取得部１６２は、取得した抽出対象情報を識別情報抽出部１６４に送信する。
【００６５】
Ｓ５０４において、識別情報抽出部１６４が、複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出して、探索結果を作成する。探索結果には、識別情報抽出部１６４が抽出した識別情報が含まれる。識別情報抽出部１６４は、複数のインデックスファイルのそれぞれについて、複数のインデックスファイルのそれぞれを探索して得られた探索結果を作成してよい。識別情報抽出部１６４は、探索結果をリスト作成部１６６に送信する。Ｓ５０６において、リスト作成部１６６が、識別情報抽出部１６４から、探索結果を受け取る。リスト作成部１６６は、識別情報抽出部１６４が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成する。
【００６６】
図６は、識別情報リストを作成する方法の一例を概略的に示す。図６は、図５において説明されたＳ５０６において、リスト作成部１６６が、識別情報リストを作成する方法の一例を概略的に示す。上述のとおり、Ｓ５０６において、リスト作成部１６６は、識別情報抽出部１６４から、複数のインデックスファイルのそれぞれに対応する、複数の探索結果を受け取る。
【００６７】
識別情報抽出部１６４から受け取った探索結果Ａ、探索結果Ｂ、探索結果Ｃに基づいて、識別情報リストＸを作成する場合を例として、識別情報リストを作成する方法の一例について説明する。探索結果Ａには、識別情報として、データファイルの識別番号１、３、３、５および６が含まれる。探索結果Ｂには、識別情報として、データファイルの識別番号３、４、５、７および８が含まれる。探索結果Ｂには、識別情報として、データファイルの識別番号２、５、６および７が含まれる。
【００６８】
Ｓ６０２において、リスト作成部１６６は、複数の探索結果のそれぞれについて、識別情報を昇順に並べ替える。このとき、それぞれの探索結果の中に、同一の識別情報が重複して含まれている場合には、重複する識別情報を削除してよい。これにより、本実施例において、探索結果Ａに含まれる識別番号は、１、３、５、６の順に整列される。他の探索結果も同様に整列される。
【００６９】
Ｓ６０４において、リスト作成部１６６は、複数の探索結果のそれぞれから、最も小さな識別番号を抽出する。本実施例において、リスト作成部１６６は、探索結果Ａの中から、識別番号１を抽出する。同様に、探索結果Ｂおよび探索結果Ｃからは、それぞれ、識別番号３および識別番号２が抽出される。
【００７０】
Ｓ６０６において、リスト作成部１６６は、抽出された識別番号の大小を比較して、最も小さな識別番号を、識別情報リストに追加する。本実施例において、リスト作成部１６６は、探索結果Ａから抽出した識別番号１と、探索結果Ｂから抽出した識別番号３と、探索結果Ｃから抽出した識別番号２とを比較する。その結果、リスト作成部１６６は、探索結果Ａから抽出した識別番号１を識別情報リストＸに追加する。
【００７１】
複数の探索結果から抽出された識別番号が一致する場合には、予め定められた優先順位に従って、識別情報リストＸに追加する識別番号を決定してよい。例えば、複数の探索結果の間で優先順位を決めておいてよい。本実施例においては、探索結果Ａ、探索結果Ｂ、探索結果Ｃの順に優先順位が定められていると仮定する。
【００７２】
Ｓ６０８において、リスト作成部１６６は、識別情報リストに追加された識別番号を、元の探索結果から削除する。この場合、リスト作成部１６６は、探索結果Ａから識別番号１を削除する。その結果、探索結果Ａに含まれる識別番号は３、５、６になる。
【００７３】
Ｓ６１０において、リスト作成部１６６は、比較が完了したか否かを判断する。Ｓ６１０において、リスト作成部１６６が、比較が完了したと判断した場合（Ｓ６１０のＹｅｓ）には、Ｓ６１２において、リスト作成部１６６が、識別情報リストを出力部１３０に送信して、処理を終了する。Ｓ６１０において、リスト作成部１６６が、比較が完了していないと判断した場合（Ｓ６１０のＮｏ）には、Ｓ６０２からＳ６１０の処理を繰り返す。
【００７４】
本実施例において、探索結果Ａ、探索結果Ｂ、探索結果Ｃには、識別番号がまだ含まれているので、リスト作成部１６６は、比較が完了していないと判断して、Ｓ６０２からＳ６１０の処理を繰り返す。その結果、最終的には、リスト作成部１６６は、識別番号１、２、３、４、５、６、７、８が含まれる識別情報リストＸを出力部１３０に送信する。
【００７５】
図７は、情報処理装置７００のシステム構成の一例を概略的に示す。図７は、情報処理装置７００を、ネットワーク１０およびクライアント端末２０とともに示す。ネットワーク１０は、インターネット、専用回線、無線パケット通信網であってよい。クライアント端末２０は、ネットワーク１０を介してメールサーバ７１０および分散ストレージ７２０と情報を送受できる装置であればよく、Ｗｅｂブラウザソフトが導入されたパーソナルコンピュータ、携帯電話、携帯端末または無線端末であってよい。クライアント端末２０は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。
【００７６】
情報処理装置７００は、受信したメールを格納し、ユーザから検索要求を受け付けて、検索条件に適合するメールのリストを作成し、当該リストをユーザに提示するメール管理システムであってよい。情報処理装置７００は、メールサーバ７１０と、分散ストレージ７２０とを備える。メールサーバ７１０は、ファイル管理部１４０と、通信制御部７１２とを有する。ファイル管理部１４０は、更新用インデックスファイル１５２と、更新用インデックスファイル７５２とを保持してよい。分散ストレージ７２０は、管理サーバ７３０と、１以上のノード７４０とを有する。管理サーバ７３０は、アクセス制御部１７０を含む。１以上のノード７４０のそれぞれは、記憶部１８０を含んでよい。
【００７７】
記憶部１８０には、データファイル１８２、テンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４が格納されていてよい。データファイル１８２、テンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４は、複数の記憶部１８０に分散して格納されてよい。情報処理装置７００およびメールサーバ７１０は、検索装置の一例であってよい。情報処理装置７００およびメールサーバ７１０は、検索システムのサーバの一例であってよい。
【００７８】
情報処理装置７００は、ファイル管理部１４０が、ネットワーク１０を介して、アクセス制御部１７０および記憶部１８０と情報をやり取りする点で、情報処理装置１００と相違する。情報処理装置７００は、データファイル１８２、テンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４が、分散ストレージ７２０に格納される点で、情報処理装置１００と相違する。情報処理装置７００は、ファイル管理部１４０が、データファイルを解析して、複数の更新用インデックスファイルを更新する点で、情報処理装置１００と相違する。
【００７９】
その他の点については、情報処理装置７００は、情報処理装置１００と同様の構成を有してよい。情報処理装置１００の各部と同一または類似の部分には同一の参照番号を付して重複する説明を省く。また、情報処理装置１００は、情報処理装置７００と同様の構成を有してもよい。
【００８０】
メールサーバ７１０は、クライアント端末２０、管理サーバ７３０および複数のノード７４０と、ネットワーク１０を介して情報をやりとりする。メールサーバ７１０は、メールを受信し、受信したメールを分散ストレージ７２０に格納する。メールサーバ７１０は、受信したメールを解析して、更新用インデックスファイル１５２を更新する。
【００８１】
メールサーバ７１０は、予め定められたイベントが発生すると、更新用インデックスファイル１５２に含まれるインデックス情報をテンポラリーインデックスファイル１９２として出力して、分散ストレージ７２０に送信する。メールサーバ７１０は、クライアント端末２０から検索要求を受け付ける。メールサーバ７１０は、検索条件に適合するメールの識別情報を含む識別情報リストを作成する。メールサーバ７１０は、検索要求に対する検索結果として、識別情報リストをユーザに提示する。
【００８２】
メールサーバ７１０は、単一のサーバから構成されてもよく、複数のサーバから構成されてもよい。メールサーバ７１０は、仮想サーバまたはクラウドシステムであってよい。メールサーバ７１０は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。メールサーバ７１０は、通信制御部７１２を介して、クライアント端末２０、管理サーバ７３０、ノード７４０と情報をやり取りする。通信制御部７１２は、ネットワーク１０を介して、他のコンピュータ、携帯電話、携帯端末または無線端末、記憶装置、記憶媒体などと情報をやり取りするインターフェイスであってよい。通信制御部７１２は、送信部の一例であってよい。
【００８３】
本実施形態において、インデックスファイル更新部１５０は、更新用インデックスファイル１５２の他に、更新用インデックスファイル７５２を保持する。インデックスファイル更新部１５０は、データファイル１８２を解析して、更新用インデックスファイル１５２および更新用インデックスファイル７５２を更新する。インデックスファイル更新部１５０は、更新用インデックスファイル１５２および更新用インデックスファイル７５２のそれぞれについて、対応するテンポラリーインデックスファイルおよびマスターインデックスファイルを作成してよい。
【００８４】
更新用インデックスファイル７５２は、更新用インデックスファイル１５２とは異なる種類の特徴情報と、データの識別情報とが対応付けられたインデックス情報を格納してよい。これにより、様々な検索要求に対応することができる。また、より精度の高い検索結果を提示することができる。
【００８５】
例えば、更新用インデックスファイル１５２が、データファイルに含まれる文字列と、当該データファイルを識別する識別番号とが対応付けられたインデックス情報を格納してよい。更新用インデックスファイル７５２が、データファイルに対するユーザの要求と、当該データファイルを識別する識別番号とが対応付けられたインデックス情報を格納してよい。
【００８６】
メールサーバ７１０が、文字列「ａｂｃ」を含むメールを検索する旨の検索要求を受け付けると、識別情報抽出部１６４は、更新用インデックスファイル１５２に対応するテンポラリーインデックスファイルおよびマスターインデックスファイルを参照して、文字列「ａｂｃ」を含むメールの識別情報がリスト化された識別情報リストＡを作成してよい。また、識別情報抽出部１６４は、更新用インデックスファイル７５２に対応するテンポラリーインデックスファイルおよびマスターインデックスファイルを参照して、例えば、削除されたメールおよび非表示の設定がされているメールの識別情報がリスト化された識別情報リストＢを作成してよい。
【００８７】
識別情報抽出部１６４は、識別情報リストＡと識別情報リストＢとを比較して、識別情報リストＡから識別情報リストＢに含まれる識別情報を削除して、識別情報リストＣを作成してよい。メールサーバ７１０は、検索要求に対する検索結果として、識別情報リストＣをユーザに提示してよい。これにより、ユーザに表示すべき検索結果のみをユーザに提示することができる。
【００８８】
分散ストレージ７２０は、メールサーバ７１０から受け取ったデータを格納する。分散ストレージ７２０は、１つのデータファイルを複数のノード７４０に分散させて格納してよい。管理サーバ７３０は、複数のノード７４０に格納されるデータを管理する。管理サーバ７３０は、管理ファイル１７２を格納してよい。管理サーバ７３０は、ネットワーク１０を介して、メールサーバ７１０および複数の記憶部１８０のそれぞれと情報をやり取りしてよい。管理サーバ７３０は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。管理サーバ７３０は、仮想サーバまたはクラウドシステムであってもよい。
【００８９】
ノード７４０は、データを格納する。ノード７４０は、ネットワーク１０を介して、メールサーバ７１０および管理サーバ７３０のそれぞれと情報をやり取りしてよい。ノード７４０は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置、ハードディスクなどの記憶装置または記憶媒体であってよい。ノード７４０は、仮想化またはクラウド化された記憶装置または記憶媒体であってもよい。
【００９０】
従来技術のように、ファイルサーバの全てのファイルに対して単一のデータベースとして提供されるインデックスファイルを分散ストレージ７２０に格納した場合、当該インデックスファイルをローカルの記憶装置に格納する場合と比較して、当該インデックスファイルの更新時間が非常に長くなる。しかし、本実施形態によれば、インデックスファイルの更新には、メールサーバ７１０の記憶装置に格納された更新用インデックスファイル１５２が利用される。一方、テンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４は、分散ストレージ７２０に格納され、通常は更新されない。そのため、インデックスファイルがファイルサーバの全てのファイルに対して単一のデータベースとして提供される場合と比較して、インデックスファイルの更新時間を大幅に短縮することができる。メールサーバ７１０の記憶装置は、ローカルの記憶装置の一例であってよい。
【００９１】
なお、本実施形態において、更新用インデックスファイル１５２がメールサーバ７１０に格納され、テンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４が分散ストレージ７２０に格納される場合について説明した。しかし、更新用インデックスファイル１５２の格納場所は、メールサーバ７１０に限定されない。更新用インデックスファイル１５２は、分散ストレージ７２０に格納されてもよい。この場合であっても、更新用インデックスファイル１５２のサイズは、インデックスファイルがファイルサーバの全てのファイルに対して単一のデータベースとして提供された場合と比較して小さいので、インデックスファイルの更新時間を短縮することができる。
【００９２】
さらに、本実施形態によれば、検索時には、複数のインデックスファイルを参照する。そのため、インデックスファイルの探索を並列して実行することができるので、検索時間を短縮することができる。メール管理システムにおいては、受信するメールの数と比較して、メールを検索する頻度が非常に小さい。そのため、インデックスファイルを複数のデータベースとして提供することの効果が顕著になる。
【００９３】
本実施形態においては、メールサーバ７１０が、ファイル管理部１４０の全ての構成を備える場合について説明した。しかし、情報処理装置７００は、これに限定されない。例えば、ファイル管理部１４０の構成のうち、検索部１６０のリスト作成部１６６が、クライアント端末２０に備えられてもよい。
【００９４】
この場合、メールサーバ７１０の識別情報抽出部１６４は、複数のインデックスファイルから、抽出対象情報に関連する特徴情報に対応付けられている識別情報を抽出する。通信制御部７１２は、識別情報抽出部１６４が抽出した１以上の識別情報を、クライアント端末２０に送信する。クライアント端末２０のリスト作成部１６６は、識別情報抽出部１６４が抽出した１以上の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成する。
【００９５】
メールサーバ７１０は、クライアント端末２０上で動作するプログラムに対して、識別情報リストを作成するよう指示してもよい。メールサーバ７１０は、識別情報リストを作成するプログラムを、クライアント端末２０に送信してもよい。情報処理装置７００と、クライアント端末２０とを備えたシステムは、検索システムの一例であってよい。
【００９６】
図８は、更新用インデックスファイル７５２のデータ構造の一例を概略的に示す。更新用インデックスファイル７５２は、データファイルに対する要求８５６と、データファイルを識別する識別番号８５８とが対応付けられたインデックス情報を格納してよい。要求８５６は、特徴情報の一例であってよい。識別番号８５８は、識別情報の一例であってよい。
【００９７】
図９は、情報処理装置９００のシステム構成の一例を概略的に示す。情報処理装置９００は、ユーザから検索要求を受け付けて、時系列に連続する複数のデータを含むデータファイルの中から、検索条件に適合するデータを抽出して、ユーザに提示するシステムであってよい。時系列に連続する複数のデータを含むデータファイルとしては、映像データまたはサウンドデータを例示することができる。
【００９８】
情報処理装置９００は、入力部１１０と、要求受付部１２０と、出力部１３０と、ファイル管理部９４０と、アクセス制御部１７０と、記憶部１８０とを備える。ファイル管理部９４０は、解析部９４２と、インデックスファイル更新部１５０と、検索部１６０とを有する。インデックスファイル更新部１５０は、更新用インデックスファイル９５２および更新用インデックスファイル９５２を保持してよい。記憶部１８０には、データファイル１８２、テンポラリーインデックスファイル１９２およびマスターインデックスファイル１９４が格納されていてよい。情報処理装置９００およびファイル管理部９４０は、検索装置の一例であってよい。
【００９９】
情報処理装置９００は、ファイル管理部９４０が、解析部９４２を備える点で、情報処理装置１００および情報処理装置７００と相違する。その他の点については、情報処理装置９００は、情報処理装置１００または情報処理装置７００と同様の構成を有してよい。情報処理装置１００または情報処理装置７００の各部と同一または類似の部分には同一の参照番号を付して重複する説明を省く。また、情報処理装置１００および情報処理装置７００は、情報処理装置９００と同様の構成を有してもよい。
【０１００】
情報処理装置９００は、入力部１１０に入力されたデータファイル１８２を、記憶部１８０に格納する。情報処理装置９００は、データファイル１８２を解析して、更新用インデックスファイル９５２および更新用インデックスファイル９５４を更新する。情報処理装置９００は、要求受付部１２０に入力されたユーザからの検索要求を受け付ける。情報処理装置９００は、検索条件に適合するデータファイル１８２の識別情報を含む識別情報リストを作成する。情報処理装置９００は、検索要求に対する検索結果として、識別情報リストをユーザに提示する。
【０１０１】
解析部９４２は、１つのデータファイルに、複数のデータファイルが含まれる場合に、複数のデータファイルのそれぞれを解析する。１つのデータファイルに複数のデータファイルが含まれる場合としては、１つのデータファイルの中に複数の画像データが含まれる場合、または、データファイルが時系列に連続する複数のデータを含む場合を例示することができる。
【０１０２】
説明を簡単にする目的で、データファイルが時系列に連続する複数の画像データを含む映像データである場合を例として、解析部９４２について説明する。解析部９４２は、入力部１１０から、入力されたデータファイル１８２を受け取る。解析部９４２は、データファイル１８２が、映像データであるか否かを判断する。解析部９４２は、データファイルのデータ形式に基づいて、データファイル１８２が、映像データであるか否かを判断してよい。解析部９４２は、データファイル１８２が映像データでないと判断した場合には、データファイル１８２をインデックスファイル作成部に送信してよい。
【０１０３】
解析部９４２は、データファイル１８２が映像データであると判断した場合には、データファイル１８２に含まれる複数の画像データのそれぞれに識別情報を付与する。解析部９４２は、時系列に関する情報と、識別情報とを対応づけてもよい。また、解析部９４２は、複数の画像データのそれぞれについて特徴情報を解析する。解析部９４２は、画像データの識別情報と、当該画像データの解析結果とをインデックスファイル更新部１５０に送信する。解析部９４２は、画像データの識別情報をアクセス制御部１７０に送信する。
【０１０４】
解析部９４２は、特徴情報として、画像に含まれる画素の色相、彩度もしくは明度の有無または割合を解析してよい。このとき、解析部９４２は、全画素に対する、特定の特徴を有する画素の割合が予め定められた数よりも大きい場合に、当該画像中に当該特定の特徴を有する画素が存在すると判断してもよい。これにより、例えば、映像データの中から、青みがかった画像データを抽出することができる。
【０１０５】
解析部９４２は、複数の画像データ同士を比較して、画像の変化を特徴情報として解析してもよい。解析部９４２は、現在解析している画像データを、当該画像データよりも時系列が前の画像データと比較して、予め定められた画素数以上の画素が相違するときには、画像に変化が生じていると判断してよい。解析部９４２は、当該データの特徴情報として、当該変化の有無または当該変化の内容を解析してよい。
【０１０６】
変化の内容としては、変化が生じた領域を識別する識別番号、変化が生じた領域に含まれる画素を識別する識別番号、および、変化が生じた画素の色相、彩度もしくは明度またはその割合を例示することができる。これにより、例えば、監視カメラの映像データの中から、画面左上に変化があった画像データを抽出することができる。また、監視カメラの映像データの中から、火事が発生した瞬間の画像データを抽出することができる。
【０１０７】
インデックスファイル更新部１５０は、解析部９４２から、画像データの識別情報と、当該画像データの解析結果とを受け取る。インデックスファイル更新部１５０は、受け取った解析結果に含まれる特徴情報の種類に基づいて、１以上のインデックスファイルを更新してよい。例えば、インデックスファイル更新部１５０は、解析結果の中に、変化が生じた領域の識別番号または当該領域に含まれる画素の識別番号と、当該画像データの識別情報とを対応付けた情報が含まれている場合に、更新用インデックスファイル９５２を更新してよい。また、解析結果の中に、変化が生じた画素の色相の識別番号と、当該画像の識別情報とを対応付けた情報が含まれている場合に、更新用インデックスファイル９５４を更新してよい。
【０１０８】
アクセス制御部１７０は、入力部１１０から入力されたデータファイル１８２を受け取る。解析部９４２から、画像データの識別情報を受け取る。アクセス制御部１７０は、データファイル１８２を記憶部１８０に格納するときに、受け取った識別情報を用いて、管理ファイル１７２を更新する。
【０１０９】
以上の構成により、情報処理装置９００は、検索条件に適合するデータファイル１８２の識別情報を含む識別情報リストを作成して、ユーザに提供することができる。また、ユーザが識別情報リストに含まれる画像データにアクセスすることを要求した場合に、情報処理装置９００は、当該画像データのアクセス先をユーザに提供することができる。監視システムにおいては、記憶されるフレーム数と比較して、画像を検索する頻度が非常に小さい。そのため、インデックスファイルを複数のデータベースとして提供することの効果が顕著になる。
【０１１０】
図１０は、更新用インデックスファイル９５２のデータ構造の一例を概略的に示す。更新用インデックスファイル９５２は、変化が生じた領域に含まれる画素の識別番号１０５６と、データファイルおよび画像データを識別する識別番号１０５８とが対応付けられたインデックス情報を格納してよい。画素の識別番号１０５６は、特徴情報の一例であってよい。識別番号１０５８は、識別情報の一例であってよい。
【０１１１】
図１１は、更新用インデックスファイル９５４のデータ構造の一例を概略的に示す。更新用インデックスファイル９５４は、変化が生じた領域に含まれる画素の色相を識別する識別番号１１５６と、データファイルおよび画像データを識別する識別番号１１５８とが対応付けられたインデックス情報を格納してよい。色相の識別番号１１５６は、特徴情報の一例であってよい。識別番号１１５８は、識別情報の一例であってよい。
【０１１２】
図１２は、一実施形態に係るコンピュータ１９００のハードウエア構成の一例を概略的に示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【０１１３】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【０１１４】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【０１１５】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウエアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【０１１６】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【０１１７】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【０１１８】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれる。
【０１１９】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１２０】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１２１】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１２２】
コンピュータ１９００にインストールされ、コンピュータ１９００を検索装置、検索システムまたは検索装置もしくは検索システムの各部として機能させるプログラムは、各部の動作を規定したモジュールを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、出力制御システムまたは出力制御装置の各部としてそれぞれ機能させる。
【０１２３】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の検索装置または検索システム、例えば情報処理装置１００、情報処理装置７００または情報処理装置９００を構築できる。
【０１２４】
以上の記載によれば、本願の明細書には、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が記載されている。また、コンピュータに、上記の方法を実行させるプログラムが記載されている。
【０１２５】
以上の記載によれば、本願の明細書には、サーバが、ネットワークを介して、クライアント端末にサービスを提供する方法であって、サービスが、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が記載されている。また、コンピュータに、上記の方法を実行させるプログラムが記載されている。
【０１２６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１２７】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１２８】
１０  ネットワーク、２０  クライアント端末、１００  情報処理装置、１１０  入力部、１２０  要求受付部、１３０  出力部、１４０  ファイル管理部、１５０  インデックスファイル更新部、１５２  更新用インデックスファイル、１６０  検索部、１６２  取得部、１６４  識別情報抽出部、１６６  リスト作成部、１７０  アクセス制御部、１７２  管理ファイル、１８０  記憶部、１８２  データファイル、１９２  テンポラリーインデックスファイル、１９４  マスターインデックスファイル、２９６  文字列、２９８  識別番号、３７６  識別番号、３７８  格納場所、７００  情報処理装置、７１０  メールサーバ、７１２  通信制御部、７２０  分散ストレージ、７３０  管理サーバ、７４０  ノード、７５２  更新用インデックスファイル、８５６  要求、８５８  識別番号、９００  情報処理装置、９４０  ファイル管理部、９４２  解析部、９５２  更新用インデックスファイル、９５４  更新用インデックスファイル、１０５６  識別番号、１０５８  識別番号、１１５６  識別番号、１１５８  識別番号、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＣＤ−ＲＯＭドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＣＤ−ＲＯＭ
【図１】
0005492814.tif 000002
【図２】
0005492814.tif 000003
【図３】
0005492814.tif 000004
【図４】
0005492814.tif 000005
【図５】
0005492814.tif 000006
【図６】
0005492814.tif 000007
【図７】
0005492814.tif 000008
【図８】
0005492814.tif 000009
【図９】
0005492814.tif 000010
【図１０】
0005492814.tif 000011
【図１１】
0005492814.tif 000012
【図１２】
0005492814.tif 000013