説明

検索装置、検索システム、方法およびプログラム

【課題】インデックスファイルの更新負荷を減少させる。
【解決手段】抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出部と、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索装置、検索システム、方法およびプログラムに関する。
【背景技術】
【0002】
インターネット上またはファイルサーバ上のファイルにアクセスするための検索エンジンが知られている。検索エンジンは、ユーザからの検索要求を受け付けて、検索条件に適合するファイルのリストを取得して、当該リストをユーザに送信する(例えば、特許文献1および2を参照。)。
(先行技術文献)
(特許文献)
特許文献1 特開2005−122702号公報
特許文献2 特開平9−265420号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
検索エンジンは、ファイル検索を容易にする目的で、ファイルを解析してインデックスファイルを作成する。検索エンジンは、ファイルサーバにファイルが登録される度にインデックスファイルを更新する。しかし、インデックスファイルは、ファイルサーバの全てのファイルに対して、単一のデータベースとして提供される。そのため、ファイルサーバ内のファイル数が増加するにつれて、インデックスファイルの更新負荷が増大する。
【課題を解決するための手段】
【0004】
本発明の第1の態様においては、抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、複数のデータのそれぞれの特徴を示す特徴情報と、複数のデータのそれぞれを識別する識別情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出部と、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部とを備える、検索装置が提供される。
【0005】
上記の検索装置において、特徴情報は、複数のデータのそれぞれの一部に関する特徴を示す情報を含んでよい。上記の検索装置において、インデックスファイルを更新するインデックスファイル更新部をさらに備えてよく、インデックスファイル更新部は、予め定められたイベントが発生するまで、第1のインデックスファイルを更新し、予め定められたイベントが発生すると、第1のインデックスファイルに基づき、第2のインデックスファイルを作成してよい。
【0006】
上記の検索装置において、複数のデータのそれぞれの識別情報と、複数のデータのそれぞれのアクセス先を示すアクセス情報とが対応付けられた管理ファイルを参照して、識別情報リストに含まれる識別情報と一致する識別情報に対応付けられているアクセス情報を、管理ファイルから抽出するアクセス情報抽出部をさらに備えてよい。上記の検索装置において、複数のデータを格納する複数の記憶装置と、管理ファイルを格納し、ネットワークを介して、複数の記憶装置のそれぞれと情報をやり取りする管理サーバとをさらに備えてよい。上記の検索装置において、ユーザから、抽出対象情報を含む検索要求を受け付ける要求受付部と、検索要求に対する検索結果として、ユーザに識別情報リストを提示する出力部とをさらに備えてよい。
【0007】
本発明の第2の態様においては、クライアント端末と、クライアント端末とネットワークを介して情報をやりとりするサーバとを備え、サーバは、抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出部と、識別情報抽出部が抽出した複数の識別情報を、クライアント端末に送信する送信部とを有し、クライアント端末は、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部を有する、検索システムが提供される。
【0008】
本発明の第3の態様においては、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が提供される。
【0009】
上記の方法において、インデックスファイルを更新するインデックスファイル更新段階をさらに備えてよく、インデックスファイル更新段階は、予め定められたイベントが発生するまで、第1のインデックスファイルを更新する段階と、予め定められたイベントが発生すると、第1のインデックスファイルに基づき、第2のインデックスファイルを作成する段階とを有してよい。
【0010】
本発明の第4の態様においては、サーバが、ネットワークを介して、クライアント端末にサービスを提供する方法であって、サービスが、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が提供される。
【0011】
本発明の第4の態様においては、コンピュータに、上記の方法を実行させる、プログラムが提供される。
【0012】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0013】
【図1】情報処理装置100のシステム構成の一例を概略的に示す。
【図2】更新用インデックスファイル152のデータ構造の一例を概略的に示す。
【図3】管理ファイル172のデータ構造の一例を概略的に示す。
【図4】インデックスファイルを更新する方法の一例を概略的に示す。
【図5】データを検索する方法の一例を概略的に示す。
【図6】識別情報リストを作成する方法の一例を概略的に示す。
【図7】情報処理装置700のシステム構成の一例を概略的に示す。
【図8】更新用インデックスファイル752のデータ構造の一例を概略的に示す。
【図9】情報処理装置900のシステム構成の一例を概略的に示す。
【図10】更新用インデックスファイル952のデータ構造の一例を概略的に示す。
【図11】更新用インデックスファイル954のデータ構造の一例を概略的に示す。
【図12】一実施形態に係るコンピュータ1900のハードウエア構成の一例を概略的に示す。
【発明を実施するための形態】
【0014】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、図面を参照して、実施形態について説明するが、図面の記載において、同一または類似の部分には同一の参照番号を付して重複する説明を省く場合がある。
【0015】
図1は、情報処理装置100のシステム構成の一例を概略的に示す。情報処理装置100は、ユーザから検索要求を受け付けて、検索条件に適合するデータファイルのリストを作成し、当該リストをユーザに提示する検索エンジンまたはファイル管理システムであってよい。情報処理装置100は、当該用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ、携帯端末、無線端末等の汎用の情報処理装置であってもよい。
【0016】
情報処理装置100は、入力部110と、要求受付部120と、出力部130と、ファイル管理部140と、アクセス制御部170と、記憶部180とを備える。ファイル管理部140は、インデックスファイル更新部150と、検索部160とを有する。検索部160は、取得部162と、識別情報抽出部164と、リスト作成部166とを含む。情報処理装置100、ファイル管理部140および検索部160は、検索装置の一例であってよい。
【0017】
インデックスファイル更新部150は、更新用インデックスファイル152を保持してよい。アクセス制御部170は、管理ファイル172を保持してよい。記憶部180は、データファイル182と、テンポラリーインデックスファイル192と、マスターインデックスファイル194とを格納してよい。更新用インデックスファイル152、テンポラリーインデックスファイル192およびマスターインデックスファイル194は、複数のインデックスファイルの一例であってよい。記憶部180は、更新用インデックスファイル152および管理ファイル172の少なくとも一方を格納してもよい。
【0018】
更新用インデックスファイル152、テンポラリーインデックスファイル192およびマスターインデックスファイル194は、複数のデータのそれぞれの特徴を示す特徴情報と、複数のデータのそれぞれを識別する識別情報とが対応付けられた情報(インデックス情報と称する場合がある。)を格納する。テンポラリーインデックスファイル192は、更新用インデックスファイル152に基づいて作成される。マスターインデックスファイル194は、複数のテンポラリーインデックスファイル192、または、複数のテンポラリーインデックスファイル192および更新用インデックスファイル152に基づいて作成される。
【0019】
特徴情報は、データファイルに含まれるデータの特徴を示す情報であってよい。データの特徴は、データファイルの属性であってよい。データファイルの属性は、データの形式、データの種類、データの表示もしくは非表示、または、データの作成日時もしくは更新日時であってよい。データの特徴は、当該データに対するユーザの要求を示す情報であってよい。データの特徴は、当該データが削除されたことを示す情報であってよい。特徴情報は、データの一部に関する特徴を示す情報を含んでよい。データがテキストデータの場合、データの特徴は、データに含まれるテキストの一部であってよい。データが画像データまたは映像データの場合、データの特徴は、データに含まれる画像を構成する画素の色相、彩度、明度であってよい。
【0020】
識別情報は、複数のデータファイルのそれぞれを識別する識別情報であってよい。識別情報は、データファイルの名称、データファイルに付された識別番号であってよい。識別情報は、データファイル中におけるデータの位置を示す情報であってもよい。映像データ、サウンドデータのように、データファイルが、時系列に連続する複数のデータを含む場合、識別情報は、時系列に対応付けられてよい。データファイルが映像データである場合、フレームごとに識別情報が付されてよい。
【0021】
管理ファイル172は、複数のデータのそれぞれの識別情報と、複数のデータのそれぞれのアクセス先を示すアクセス情報とが対応付けられた情報を格納してよい。アクセス情報は、データファイルの格納場所または参照先を示す情報であってよい。アクセス情報は、データファイル中の特定のデータの格納場所または参照先を示す情報であってよい。データファイル182は、画像データ、テキストデータ、映像データ、サウンドデータ、各種ソフトウエアにより使用されるデータ、または、ソフトウエアなどのプログラムであってよい。
【0022】
入力部110は、記憶部180に格納するデータが入力される。入力部110は、外部のコンピュータ、記憶装置または記憶媒体との間で情報をやり取りする情報読取装置または通信装置であってよい。入力部110に入力されるデータは、画像データ、テキストデータ、映像データ、サウンドデータ、ソフトウエア、ソフトウエアにより使用されるデータなどのデータファイルであってよい。入力部110は、外部からデータファイル182を受け取り、インデックスファイル更新部150に送信してよい。入力部110は、アクセス制御部170を介して、記憶部180にデータファイル182を格納してよい。
【0023】
要求受付部120は、情報処理装置100に対する要求を受け付ける。要求受付部120は、キーボード、マウス、タッチパネル、マイクなどの入力装置、文字認識装置またはサウンド認識装置であってよい。要求受付部120は、外部のコンピュータ、記憶装置または記憶媒体との間で情報をやり取りする情報読取装置または通信装置であってもよい。
【0024】
要求受付部120は、ユーザから、抽出すべきデータの特徴を示す抽出対象情報が含まれる検索要求を受け付ける。抽出すべきデータの特徴は、抽出すべきデータファイルに含まれるデータの特徴であってもよい。抽出対象情報の例としては、特徴情報の場合と同様の情報を例示することができる。要求受付部120は、抽出対象情報を検索部160に送信してよい。要求受付部120は、取得部の一例であってもよい。
【0025】
出力部130は、検索要求に対する検索結果をユーザに提示する。出力部130は、液晶ディスプレイ、有機ELディスプレイ、CRTディスプレイなどの表示装置、プリンタまたはスピーカであってよい。出力部130は、外部のコンピュータ、記憶装置または記憶媒体との間で情報をやり取りする情報書込装置または通信装置であってもよい。
【0026】
出力部130は、検索部160から、ユーザの検索条件に適合するデータファイルのリストを受け取ってよい。出力部130は、ユーザの検索要求に対する検索結果として、検索部160から受け取ったリストを、ユーザに提示してよい。出力部130は、アクセス制御部170から、データファイル182のアクセス先の情報を受け取り、ユーザに提示してもよい。出力部130は送信部の一例であってもよい。
【0027】
ファイル管理部140は、記憶部180に格納されたデータファイルを管理する。ファイル管理部140は、入力部110から入力されたデータファイル182を記憶部180に格納するときに、インデックスファイルを作成または更新する。ファイル管理部140は、要求受付部120から抽出対象情報を受け取る。ファイル管理部140は、記憶部180に格納された複数のデータファイルの中から、抽出対象情報に適合するデータファイルのリストを作成してよい。ファイル管理部140は、データファイル中における、抽出対象情報に適合するデータの位置を示すリストを作成してもよい。ファイル管理部140は、作成したリストを出力部130に送信する。
【0028】
インデックスファイル更新部150は、インデックスファイルを更新する。インデックスファイル更新部150は、入力部110から入力されたデータファイル182を解析して、データファイル182に含まれるデータの特徴を示す特徴情報を抽出する。インデックスファイル更新部150は、抽出した特徴情報と、データファイル182またはデータファイル182に含まれるデータを識別する識別情報とが対応づけられたインデックス情報を作成する。インデックスファイル更新部150は、作成したインデックス情報と、更新用インデックスファイル152に含まれるインデックス情報とを比較して、インデックス情報の変更、追加、削除などを実行して、更新用インデックスファイル152を更新する。
【0029】
インデックスファイル更新部150は、要求受付部120からデータファイル182を削除する指示を受け取った場合にも、更新用インデックスファイル152を更新してよい。更新用インデックスファイル152は、記憶部180よりも応答速度の速い記憶装置に格納されてよい。更新用インデックスファイル152は、メモリ上に格納されてよい。
【0030】
インデックスファイル更新部150は、予め定められたイベントが発生するまで、入力部110から入力されたデータファイル182を記憶部180に格納するときに、更新用インデックスファイル152を更新する。インデックスファイル更新部150は、予め定められたイベントが発生すると、更新用インデックスファイル152に含まれるインデックス情報をテンポラリーインデックスファイル192として出力して、記憶部180に格納する。更新用インデックスファイル152は、第1のインデックスファイルの一例であってよい。テンポラリーインデックスファイル192は、第2のインデックスファイルの一例であってよい。
【0031】
予め定められたイベントは、更新用インデックスファイル152が作成されてから、予め定められた期間が経過したことであってよい。予め定められたイベントは、前回、更新用インデックスファイル152に含まれるインデックス情報が記憶部180に出力されてから、予め定められた期間が経過したことであってよい。予め定められたイベントは、更新用インデックスファイル152のサイズが予め定められたサイズを超えたことであってよい。予め定められたイベントは、要求受付部120がユーザの検索要求を受け付けたことであってよい。予め定められたイベントは、インデックスファイル更新部150がマスターインデックスファイル194を作成することであってよい。
【0032】
本実施形態によれば、インデックスファイルがファイルサーバの全てのファイルに対して、単一のデータベースとして提供される場合と比較して、更新用インデックスファイル152のサイズを小さくすることができる。そのため、インデックスファイルの更新負荷を劇的に軽減することができる。また、インデックスファイルの更新時間を大幅に短縮することができる。その結果、汎用の機器を用いても十分な処理速度を実現することができ、情報処理装置100を構築するコストを低減させることができる。
【0033】
この特徴を利用して、インデックスファイル更新部150は、複数の更新用インデックスファイル152を作成して、入力部110に入力されたデータファイル182を記憶部180に格納するときに、複数の更新用インデックスファイル152を更新してもよい。インデックスファイル更新部150は、データファイル182のデータ形式に基づいて、更新する更新用インデックスファイル152を選択してよい。インデックスファイル更新部150は、データファイルの作成者、入力者または送信者に基づいて、更新する更新用インデックスファイル152を選択してよい。これにより、検索時に探索対象となるインデックス情報を少なくすることができる。
【0034】
インデックスファイル更新部150は、予め定められたルールに基づいて、更新用インデックスファイル152のデータを、複数のテンポラリーインデックスファイル192に分割して出力してよい。これにより、識別情報抽出部164による複数のテンポラリーインデックスファイル192の探索を並列して実行することができる。その結果、インデックスファイルの更新時間を大幅に短縮することができる。
【0035】
インデックスファイル更新部150は、更新用インデックスファイル152に含まれる複数のインデックス情報を、テンポラリーインデックスファイル192のサイズが予め定められたサイズになるように、複数のテンポラリーインデックスファイル192に分割してよい。インデックスファイル更新部150は、更新用インデックスファイル152に含まれる複数のインデックス情報を、乱数を用いて、複数のテンポラリーインデックスファイル192に分割してよい。
【0036】
インデックスファイル更新部150は、更新用インデックスファイル152に含まれる複数のインデックス情報を、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの分類とが対応付けられた情報に基づいて、複数のテンポラリーインデックスファイル192に分割してよい。インデックスファイル更新部150は、更新用インデックスファイル152に含まれる複数のインデックス情報を、複数の特徴情報と、複数の特徴情報のそれぞれの分類とが対応付けられた情報に基づいて、複数のテンポラリーインデックスファイル192に分割してよい。
【0037】
インデックスファイル更新部150は、現在の更新用インデックスファイル152に含まれるインデックス情報を記憶部180に出力した後、現在の更新用インデックスファイル152を削除して、新たに、更新用インデックスファイル152を作成してよい。インデックスファイル更新部150は、現在の更新用インデックスファイル152に含まれるインデックス情報を記憶部180に出力した後、現在の更新用インデックスファイル152に含まれるインデックス情報をクリアしてもよい。
【0038】
インデックスファイル更新部150は、予め定められたイベントが発生した場合に、複数のテンポラリーインデックスファイル192、または、複数のテンポラリーインデックスファイル192および更新用インデックスファイル152に基づいて、マスターインデックスファイル194を作成または更新してよい。予め定められたイベントは、マスターインデックスファイル194が作成または更新されてから、予め定められた期間が経過したことであってよい。予め定められたイベントは、予め定められた時刻になったことであってよい。マスターインデックスファイル194は、例えば、複数のインデックスファイルに含まれるインデックス情報を一つにまとめて、重複するインデックス情報を削除することで作成または更新することができる。インデックスファイル更新部150は、マスターインデックスファイル194を作成した後、テンポラリーインデックスファイル192を削除してよい。
【0039】
検索部160は、ユーザの検索要求に対する検索結果を作成する。検索部160は、要求受付部120から抽出対象情報を受け取る。検索部160は、記憶部180に格納された複数のデータファイルの中から、抽出対象情報に適合するデータファイルのリストを作成してよい。検索部160は、データファイル中における、抽出対象情報に適合するデータの位置を示すリストを作成してもよい。検索部160は、作成したリストを出力部130に送信する。
【0040】
取得部162は、抽出すべきデータの特徴を示す抽出対象情報を取得する。取得部162は、要求受付部120から抽出対象情報を取得してよい。取得部162は、取得した抽出対象情報を識別情報抽出部164に送信する。
【0041】
識別情報抽出部164は、複数のデータのそれぞれを識別する識別情報と、複数のデータの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する。識別情報抽出部164は、1以上のテンポラリーインデックスファイル192およびマスターインデックスファイル194を参照して、当該インデックスファイルから識別情報を抽出してよい。識別情報抽出部164は、さらに、更新用インデックスファイルを参照して、更新用インデックスファイルから識別情報を抽出してもよい。
【0042】
識別情報抽出部164は、抽出対象情報と同一の特徴情報に対応付けられている識別情報だけでなく、抽出対象情報に類似する特徴情報に対応付けられている識別情報を抽出してもよい。データがテキストデータの場合には、抽出対象情報である文字列の類義語または同意語に対応付けられている識別情報を抽出してよい。データが画像データ、映像データまたはサウンドデータの場合には、抽出対象情報と、インデックスファイルに格納されている特徴情報とを比較して、画像またはサウンドの一致度が予め定められた閾値より大きい場合に、当該特徴情報に対応付けられている識別情報を抽出してよい。
【0043】
リスト作成部166は、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成する。リスト作成部166は、検索要求に対する検索結果として、識別情報リストを出力部130に送信する。
【0044】
本実施形態によれば、インデックスファイルが、単一のデータベースとして提供されない。本実施形態によれば、インデックスファイルが、複数のデータベースとして提供される。これにより、インデックスファイルの更新負荷を劇的に軽減することができる。また、インデックスファイルの探索を並列して実行するができるので、インデックスファイルの更新時間を大幅に短縮することができる。
【0045】
それぞれのインデックスファイルは、検索時に、識別情報が重複して抽出されることがないように作成される。しかし、識別情報抽出部164は、複数のインデックスファイルを参照して、それぞれのインデックスファイルから、検索結果の候補となる識別情報を抽出する。そのため、識別情報抽出部164が抽出した識別情報の中に、同一の識別情報が重複して含まれる場合がある。
【0046】
本実施形態によれば、リスト作成部166が、識別情報抽出部が抽出した複数の識別情報に基づいて、同一の識別情報が重複して含まれていない識別情報リストを作成する。これにより、インデックスファイルが、複数のデータベースとして提供される場合であっても、重複のない検索結果を提供することができる。インデックスファイルの更新頻度と比較して、検索要求を受け付ける頻度が小さい場合に、その効果が大きくなる。データファイルがネットワーク上の分散ストレージに格納されている場合のように、インデックスファイルの更新時間が長い場合に、その効果が大きくなる。
【0047】
アクセス制御部170は、記憶部180へのアクセスを制御する。アクセス制御部170は、管理ファイル172を参照して、識別情報リストに含まれる識別情報と一致する識別情報に対応付けられているアクセス情報を、管理ファイル172から抽出してよい。アクセス制御部170は、アクセス情報抽出部の一例であってよい。
【0048】
アクセス制御部170は、入力部110からデータファイル182を受け取り、記憶部180に格納してよい。このとき、アクセス制御部170は、管理ファイル172を更新してよい。アクセス制御部170は、インデックスファイル更新部150からテンポラリーインデックスファイル192を受け取り、記憶部180に格納してよい。このとき、アクセス制御部170は、管理ファイル172を更新してよい。
【0049】
アクセス制御部170は、識別情報抽出部164からテンポラリーインデックスファイル192およびマスターインデックスファイル194へのアクセス要求を受け取り、識別情報抽出部164に対して、テンポラリーインデックスファイル192およびマスターインデックスファイル194のアクセス先の情報を送信してよい。アクセス制御部170は、要求受付部120から、データファイル182へのアクセス要求を受け取り、出力部130に対して、データファイル182のアクセス先の情報を送信してよい。
【0050】
記憶部180は、データを記憶する。記憶部180は、ハードディスク、CD−ROM、ICカード、フラッシュメモリなどの記憶装置または記憶媒体であってもよい。記憶部180は、仮想化またはクラウド化された記憶装置または記憶媒体であってもよい。記憶部180は、ROM、RAM、キャッシュメモリなどのメモリであってもよい。記憶部180は、記憶装置の一例であってよい。
【0051】
情報処理装置100および情報処理装置100の各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよい。情報処理装置100は、それぞれの用途に特化したシステムであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。上記の特化したシステムおよび情報処理装置は、単一のコンピュータにより構成されてもよく、ネットワーク上に分散した複数のコンピュータにより構成されてもよい。
【0052】
情報処理装置100は、プログラムが実行されることにより、コンピュータが情報処理装置100として機能してもよい。CPU、ROM、RAM、通信インターフェイス等を有するデータ処理装置と、入力装置と、出力装置と、記憶装置とを備えた一般的な構成の情報処理装置において、情報処理装置100の各部の動作を規定したソフトウエアを起動することにより、情報処理装置100が実現されてよい。
【0053】
図2は、テンポラリーインデックスファイル192のデータ構造の一例を概略的に示す。図2は、データファイルがテキストデータである場合のテンポラリーインデックスファイル192のデータ構造の一例を概略的に示す。なお、更新用インデックスファイル152およびマスターインデックスファイル194も、テンポラリーインデックスファイル192と同様のデータ構造を有してよい。
【0054】
テンポラリーインデックスファイル192は、データファイルに含まれる文字列296と、データファイルを識別する識別番号298とが対応付けられたインデックス情報を格納してよい。文字列296は、データファイルに含まれる文字列を文字単位で分解して、得られた文字列であってよい。文字列296は、特徴情報の一例であってよい。識別番号298は、識別情報の一例であってよい。
【0055】
識別情報抽出部164は、例えば、以下の手順で、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、テンポラリーインデックスファイル192から抽出することができる。識別情報抽出部164は、抽出対象情報を、テンポラリーインデックスファイル192に格納された文字列と同じ長さの文字列に分解する。抽出対象情報が「abc」である場合、抽出対象情報には、文字列「ab」および「bc」が含まれる。
【0056】
次に、識別情報抽出部164は、テンポラリーインデックスファイル192を参照して、文字列「ab」が含まれるデータファイルの識別番号を探索する。図2によれば、文字列「ab」が含まれるデータファイルの識別番号は、「10」、「123」、「125」などであることがわかる。また、識別情報抽出部164は、テンポラリーインデックスファイル192を参照して、文字列「bc」が含まれるデータファイルの識別番号を探索する。図2によれば、文字列「bc」が含まれるデータファイルの識別番号は、「100」、「123」、「1050」などであることがわかる。
【0057】
識別情報抽出部164は、文字列「ab」が含まれるデータファイルの識別番号と、文字列「bc」が含まれるデータファイルの識別番号とを比較して、両方の文字列を含む識別番号を、抽出対象情報に関連する特徴情報に対応付けられている識別情報として抽出する。この場合、識別番号が「123」のデータファイルが抽出される。
【0058】
なお、インデックスファイルの内容、データ構造などは、これに限定されない。インデックスファイルは、データの内容を解析して得られる情報の集合であればよい。
【0059】
図3は、管理ファイル172のデータ構造の一例を概略的に示す。管理ファイル172は、データファイルを識別する識別番号376と、データファイルの格納場所378とが対応付けられた情報を格納してよい。識別番号376は、識別情報の一例であってよい。これにより、アクセス制御部170は、識別情報に対応付けられているアクセス情報を、管理ファイル172から抽出することができる。
【0060】
次に、図4、図5および図6を用いて、情報処理装置100における情報処理の概略を説明する。図4は、インデックスファイルを更新する方法の一例を概略的に示す。S402において、入力部110が、データファイル182が入力されたか否かを判断する。入力部110が、データファイル182が入力されていないと判断した(S402のNo)場合には、情報処理装置100は待機する。入力部110が、データファイル182が入力されたと判断した場合(S402のYes)には、S404において、インデックスファイル更新部150が、データファイル182を解析して、更新用インデックスファイル152を更新する。また、S406において、アクセス制御部170が、データファイル182を記憶部180に格納する。このとき、アクセス制御部170は、管理ファイル172を更新してよい。
【0061】
S408において、インデックスファイル更新部150が、予め定められたイベントの発生が発生したか否かを判断する。インデックスファイル更新部150が、予め定められたイベントが発生したか否かを判断する。インデックスファイル更新部150が、予め定められたイベントが発生したと判断した場合(S408のYes)には、S410において、インデックスファイル更新部150が、更新用インデックスファイル152に含まれるインデックス情報を、テンポラリーインデックスファイル192としてアクセス制御部170に出力する。アクセス制御部170は、テンポラリーインデックスファイル192を記憶部180に格納する。このとき、アクセス制御部170は、管理ファイル172を更新してよい。
【0062】
S408において、インデックスファイル更新部150が、予め定められたイベントが発生していないと判断した場合(S408のYes)には、S412において、要求受付部120が、ユーザから終了指示を受信したか否かを判断する。S410において、アクセス制御部170が、テンポラリーインデックスファイル192を記憶部180に格納した場合にも、S412において、要求受付部120が、ユーザから終了指示を受信したか否かを判断する。
【0063】
S412において、要求受付部120が、ユーザから終了指示を受信していないと判断した場合(S412のNo)には、情報処理装置100は、待機する。S412において、要求受付部120が、ユーザから終了指示を受信したと判断した場合(S412のYes)には、情報処理装置100は、処理を終了する。
【0064】
図5は、データを検索する方法の一例を概略的に示す。S502において、要求受付部120が、ユーザから、抽出すべきデータの特徴を示す抽出対象情報が含まれる検索要求を受け付ける。要求受付部120は、抽出対象情報を取得部162に送信する。取得部162は、取得した抽出対象情報を識別情報抽出部164に送信する。
【0065】
S504において、識別情報抽出部164が、複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出して、探索結果を作成する。探索結果には、識別情報抽出部164が抽出した識別情報が含まれる。識別情報抽出部164は、複数のインデックスファイルのそれぞれについて、複数のインデックスファイルのそれぞれを探索して得られた探索結果を作成してよい。識別情報抽出部164は、探索結果をリスト作成部166に送信する。S506において、リスト作成部166が、識別情報抽出部164から、探索結果を受け取る。リスト作成部166は、識別情報抽出部164が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成する。
【0066】
図6は、識別情報リストを作成する方法の一例を概略的に示す。図6は、図5において説明されたS506において、リスト作成部166が、識別情報リストを作成する方法の一例を概略的に示す。上述のとおり、S506において、リスト作成部166は、識別情報抽出部164から、複数のインデックスファイルのそれぞれに対応する、複数の探索結果を受け取る。
【0067】
識別情報抽出部164から受け取った探索結果A、探索結果B、探索結果Cに基づいて、識別情報リストXを作成する場合を例として、識別情報リストを作成する方法の一例について説明する。探索結果Aには、識別情報として、データファイルの識別番号1、3、3、5および6が含まれる。探索結果Bには、識別情報として、データファイルの識別番号3、4、5、7および8が含まれる。探索結果Bには、識別情報として、データファイルの識別番号2、5、6および7が含まれる。
【0068】
S602において、リスト作成部166は、複数の探索結果のそれぞれについて、識別情報を昇順に並べ替える。このとき、それぞれの探索結果の中に、同一の識別情報が重複して含まれている場合には、重複する識別情報を削除してよい。これにより、本実施例において、探索結果Aに含まれる識別番号は、1、3、5、6の順に整列される。他の探索結果も同様に整列される。
【0069】
S604において、リスト作成部166は、複数の探索結果のそれぞれから、最も小さな識別番号を抽出する。本実施例において、リスト作成部166は、探索結果Aの中から、識別番号1を抽出する。同様に、探索結果Bおよび探索結果Cからは、それぞれ、識別番号3および識別番号2が抽出される。
【0070】
S606において、リスト作成部166は、抽出された識別番号の大小を比較して、最も小さな識別番号を、識別情報リストに追加する。本実施例において、リスト作成部166は、探索結果Aから抽出した識別番号1と、探索結果Bから抽出した識別番号3と、探索結果Cから抽出した識別番号2とを比較する。その結果、リスト作成部166は、探索結果Aから抽出した識別番号1を識別情報リストXに追加する。
【0071】
複数の探索結果から抽出された識別番号が一致する場合には、予め定められた優先順位に従って、識別情報リストXに追加する識別番号を決定してよい。例えば、複数の探索結果の間で優先順位を決めておいてよい。本実施例においては、探索結果A、探索結果B、探索結果Cの順に優先順位が定められていると仮定する。
【0072】
S608において、リスト作成部166は、識別情報リストに追加された識別番号を、元の探索結果から削除する。この場合、リスト作成部166は、探索結果Aから識別番号1を削除する。その結果、探索結果Aに含まれる識別番号は3、5、6になる。
【0073】
S610において、リスト作成部166は、比較が完了したか否かを判断する。S610において、リスト作成部166が、比較が完了したと判断した場合(S610のYes)には、S612において、リスト作成部166が、識別情報リストを出力部130に送信して、処理を終了する。S610において、リスト作成部166が、比較が完了していないと判断した場合(S610のNo)には、S602からS610の処理を繰り返す。
【0074】
本実施例において、探索結果A、探索結果B、探索結果Cには、識別番号がまだ含まれているので、リスト作成部166は、比較が完了していないと判断して、S602からS610の処理を繰り返す。その結果、最終的には、リスト作成部166は、識別番号1、2、3、4、5、6、7、8が含まれる識別情報リストXを出力部130に送信する。
【0075】
図7は、情報処理装置700のシステム構成の一例を概略的に示す。図7は、情報処理装置700を、ネットワーク10およびクライアント端末20とともに示す。ネットワーク10は、インターネット、専用回線、無線パケット通信網であってよい。クライアント端末20は、ネットワーク10を介してメールサーバ710および分散ストレージ720と情報を送受できる装置であればよく、Webブラウザソフトが導入されたパーソナルコンピュータ、携帯電話、携帯端末または無線端末であってよい。クライアント端末20は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。
【0076】
情報処理装置700は、受信したメールを格納し、ユーザから検索要求を受け付けて、検索条件に適合するメールのリストを作成し、当該リストをユーザに提示するメール管理システムであってよい。情報処理装置700は、メールサーバ710と、分散ストレージ720とを備える。メールサーバ710は、ファイル管理部140と、通信制御部712とを有する。ファイル管理部140は、更新用インデックスファイル152と、更新用インデックスファイル752とを保持してよい。分散ストレージ720は、管理サーバ730と、1以上のノード740とを有する。管理サーバ730は、アクセス制御部170を含む。1以上のノード740のそれぞれは、記憶部180を含んでよい。
【0077】
記憶部180には、データファイル182、テンポラリーインデックスファイル192およびマスターインデックスファイル194が格納されていてよい。データファイル182、テンポラリーインデックスファイル192およびマスターインデックスファイル194は、複数の記憶部180に分散して格納されてよい。情報処理装置700およびメールサーバ710は、検索装置の一例であってよい。情報処理装置700およびメールサーバ710は、検索システムのサーバの一例であってよい。
【0078】
情報処理装置700は、ファイル管理部140が、ネットワーク10を介して、アクセス制御部170および記憶部180と情報をやり取りする点で、情報処理装置100と相違する。情報処理装置700は、データファイル182、テンポラリーインデックスファイル192およびマスターインデックスファイル194が、分散ストレージ720に格納される点で、情報処理装置100と相違する。情報処理装置700は、ファイル管理部140が、データファイルを解析して、複数の更新用インデックスファイルを更新する点で、情報処理装置100と相違する。
【0079】
その他の点については、情報処理装置700は、情報処理装置100と同様の構成を有してよい。情報処理装置100の各部と同一または類似の部分には同一の参照番号を付して重複する説明を省く。また、情報処理装置100は、情報処理装置700と同様の構成を有してもよい。
【0080】
メールサーバ710は、クライアント端末20、管理サーバ730および複数のノード740と、ネットワーク10を介して情報をやりとりする。メールサーバ710は、メールを受信し、受信したメールを分散ストレージ720に格納する。メールサーバ710は、受信したメールを解析して、更新用インデックスファイル152を更新する。
【0081】
メールサーバ710は、予め定められたイベントが発生すると、更新用インデックスファイル152に含まれるインデックス情報をテンポラリーインデックスファイル192として出力して、分散ストレージ720に送信する。メールサーバ710は、クライアント端末20から検索要求を受け付ける。メールサーバ710は、検索条件に適合するメールの識別情報を含む識別情報リストを作成する。メールサーバ710は、検索要求に対する検索結果として、識別情報リストをユーザに提示する。
【0082】
メールサーバ710は、単一のサーバから構成されてもよく、複数のサーバから構成されてもよい。メールサーバ710は、仮想サーバまたはクラウドシステムであってよい。メールサーバ710は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。メールサーバ710は、通信制御部712を介して、クライアント端末20、管理サーバ730、ノード740と情報をやり取りする。通信制御部712は、ネットワーク10を介して、他のコンピュータ、携帯電話、携帯端末または無線端末、記憶装置、記憶媒体などと情報をやり取りするインターフェイスであってよい。通信制御部712は、送信部の一例であってよい。
【0083】
本実施形態において、インデックスファイル更新部150は、更新用インデックスファイル152の他に、更新用インデックスファイル752を保持する。インデックスファイル更新部150は、データファイル182を解析して、更新用インデックスファイル152および更新用インデックスファイル752を更新する。インデックスファイル更新部150は、更新用インデックスファイル152および更新用インデックスファイル752のそれぞれについて、対応するテンポラリーインデックスファイルおよびマスターインデックスファイルを作成してよい。
【0084】
更新用インデックスファイル752は、更新用インデックスファイル152とは異なる種類の特徴情報と、データの識別情報とが対応付けられたインデックス情報を格納してよい。これにより、様々な検索要求に対応することができる。また、より精度の高い検索結果を提示することができる。
【0085】
例えば、更新用インデックスファイル152が、データファイルに含まれる文字列と、当該データファイルを識別する識別番号とが対応付けられたインデックス情報を格納してよい。更新用インデックスファイル752が、データファイルに対するユーザの要求と、当該データファイルを識別する識別番号とが対応付けられたインデックス情報を格納してよい。
【0086】
メールサーバ710が、文字列「abc」を含むメールを検索する旨の検索要求を受け付けると、識別情報抽出部164は、更新用インデックスファイル152に対応するテンポラリーインデックスファイルおよびマスターインデックスファイルを参照して、文字列「abc」を含むメールの識別情報がリスト化された識別情報リストAを作成してよい。また、識別情報抽出部164は、更新用インデックスファイル752に対応するテンポラリーインデックスファイルおよびマスターインデックスファイルを参照して、例えば、削除されたメールおよび非表示の設定がされているメールの識別情報がリスト化された識別情報リストBを作成してよい。
【0087】
識別情報抽出部164は、識別情報リストAと識別情報リストBとを比較して、識別情報リストAから識別情報リストBに含まれる識別情報を削除して、識別情報リストCを作成してよい。メールサーバ710は、検索要求に対する検索結果として、識別情報リストCをユーザに提示してよい。これにより、ユーザに表示すべき検索結果のみをユーザに提示することができる。
【0088】
分散ストレージ720は、メールサーバ710から受け取ったデータを格納する。分散ストレージ720は、1つのデータファイルを複数のノード740に分散させて格納してよい。管理サーバ730は、複数のノード740に格納されるデータを管理する。管理サーバ730は、管理ファイル172を格納してよい。管理サーバ730は、ネットワーク10を介して、メールサーバ710および複数の記憶部180のそれぞれと情報をやり取りしてよい。管理サーバ730は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。管理サーバ730は、仮想サーバまたはクラウドシステムであってもよい。
【0089】
ノード740は、データを格納する。ノード740は、ネットワーク10を介して、メールサーバ710および管理サーバ730のそれぞれと情報をやり取りしてよい。ノード740は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置、ハードディスクなどの記憶装置または記憶媒体であってよい。ノード740は、仮想化またはクラウド化された記憶装置または記憶媒体であってもよい。
【0090】
従来技術のように、ファイルサーバの全てのファイルに対して単一のデータベースとして提供されるインデックスファイルを分散ストレージ720に格納した場合、当該インデックスファイルをローカルの記憶装置に格納する場合と比較して、当該インデックスファイルの更新時間が非常に長くなる。しかし、本実施形態によれば、インデックスファイルの更新には、メールサーバ710の記憶装置に格納された更新用インデックスファイル152が利用される。一方、テンポラリーインデックスファイル192およびマスターインデックスファイル194は、分散ストレージ720に格納され、通常は更新されない。そのため、インデックスファイルがファイルサーバの全てのファイルに対して単一のデータベースとして提供される場合と比較して、インデックスファイルの更新時間を大幅に短縮することができる。メールサーバ710の記憶装置は、ローカルの記憶装置の一例であってよい。
【0091】
なお、本実施形態において、更新用インデックスファイル152がメールサーバ710に格納され、テンポラリーインデックスファイル192およびマスターインデックスファイル194が分散ストレージ720に格納される場合について説明した。しかし、更新用インデックスファイル152の格納場所は、メールサーバ710に限定されない。更新用インデックスファイル152は、分散ストレージ720に格納されてもよい。この場合であっても、更新用インデックスファイル152のサイズは、インデックスファイルがファイルサーバの全てのファイルに対して単一のデータベースとして提供された場合と比較して小さいので、インデックスファイルの更新時間を短縮することができる。
【0092】
さらに、本実施形態によれば、検索時には、複数のインデックスファイルを参照する。そのため、インデックスファイルの探索を並列して実行することができるので、検索時間を短縮することができる。メール管理システムにおいては、受信するメールの数と比較して、メールを検索する頻度が非常に小さい。そのため、インデックスファイルを複数のデータベースとして提供することの効果が顕著になる。
【0093】
本実施形態においては、メールサーバ710が、ファイル管理部140の全ての構成を備える場合について説明した。しかし、情報処理装置700は、これに限定されない。例えば、ファイル管理部140の構成のうち、検索部160のリスト作成部166が、クライアント端末20に備えられてもよい。
【0094】
この場合、メールサーバ710の識別情報抽出部164は、複数のインデックスファイルから、抽出対象情報に関連する特徴情報に対応付けられている識別情報を抽出する。通信制御部712は、識別情報抽出部164が抽出した1以上の識別情報を、クライアント端末20に送信する。クライアント端末20のリスト作成部166は、識別情報抽出部164が抽出した1以上の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成する。
【0095】
メールサーバ710は、クライアント端末20上で動作するプログラムに対して、識別情報リストを作成するよう指示してもよい。メールサーバ710は、識別情報リストを作成するプログラムを、クライアント端末20に送信してもよい。情報処理装置700と、クライアント端末20とを備えたシステムは、検索システムの一例であってよい。
【0096】
図8は、更新用インデックスファイル752のデータ構造の一例を概略的に示す。更新用インデックスファイル752は、データファイルに対する要求856と、データファイルを識別する識別番号858とが対応付けられたインデックス情報を格納してよい。要求856は、特徴情報の一例であってよい。識別番号858は、識別情報の一例であってよい。
【0097】
図9は、情報処理装置900のシステム構成の一例を概略的に示す。情報処理装置900は、ユーザから検索要求を受け付けて、時系列に連続する複数のデータを含むデータファイルの中から、検索条件に適合するデータを抽出して、ユーザに提示するシステムであってよい。時系列に連続する複数のデータを含むデータファイルとしては、映像データまたはサウンドデータを例示することができる。
【0098】
情報処理装置900は、入力部110と、要求受付部120と、出力部130と、ファイル管理部940と、アクセス制御部170と、記憶部180とを備える。ファイル管理部940は、解析部942と、インデックスファイル更新部150と、検索部160とを有する。インデックスファイル更新部150は、更新用インデックスファイル952および更新用インデックスファイル952を保持してよい。記憶部180には、データファイル182、テンポラリーインデックスファイル192およびマスターインデックスファイル194が格納されていてよい。情報処理装置900およびファイル管理部940は、検索装置の一例であってよい。
【0099】
情報処理装置900は、ファイル管理部940が、解析部942を備える点で、情報処理装置100および情報処理装置700と相違する。その他の点については、情報処理装置900は、情報処理装置100または情報処理装置700と同様の構成を有してよい。情報処理装置100または情報処理装置700の各部と同一または類似の部分には同一の参照番号を付して重複する説明を省く。また、情報処理装置100および情報処理装置700は、情報処理装置900と同様の構成を有してもよい。
【0100】
情報処理装置900は、入力部110に入力されたデータファイル182を、記憶部180に格納する。情報処理装置900は、データファイル182を解析して、更新用インデックスファイル952および更新用インデックスファイル954を更新する。情報処理装置900は、要求受付部120に入力されたユーザからの検索要求を受け付ける。情報処理装置900は、検索条件に適合するデータファイル182の識別情報を含む識別情報リストを作成する。情報処理装置900は、検索要求に対する検索結果として、識別情報リストをユーザに提示する。
【0101】
解析部942は、1つのデータファイルに、複数のデータファイルが含まれる場合に、複数のデータファイルのそれぞれを解析する。1つのデータファイルに複数のデータファイルが含まれる場合としては、1つのデータファイルの中に複数の画像データが含まれる場合、または、データファイルが時系列に連続する複数のデータを含む場合を例示することができる。
【0102】
説明を簡単にする目的で、データファイルが時系列に連続する複数の画像データを含む映像データである場合を例として、解析部942について説明する。解析部942は、入力部110から、入力されたデータファイル182を受け取る。解析部942は、データファイル182が、映像データであるか否かを判断する。解析部942は、データファイルのデータ形式に基づいて、データファイル182が、映像データであるか否かを判断してよい。解析部942は、データファイル182が映像データでないと判断した場合には、データファイル182をインデックスファイル作成部に送信してよい。
【0103】
解析部942は、データファイル182が映像データであると判断した場合には、データファイル182に含まれる複数の画像データのそれぞれに識別情報を付与する。解析部942は、時系列に関する情報と、識別情報とを対応づけてもよい。また、解析部942は、複数の画像データのそれぞれについて特徴情報を解析する。解析部942は、画像データの識別情報と、当該画像データの解析結果とをインデックスファイル更新部150に送信する。解析部942は、画像データの識別情報をアクセス制御部170に送信する。
【0104】
解析部942は、特徴情報として、画像に含まれる画素の色相、彩度もしくは明度の有無または割合を解析してよい。このとき、解析部942は、全画素に対する、特定の特徴を有する画素の割合が予め定められた数よりも大きい場合に、当該画像中に当該特定の特徴を有する画素が存在すると判断してもよい。これにより、例えば、映像データの中から、青みがかった画像データを抽出することができる。
【0105】
解析部942は、複数の画像データ同士を比較して、画像の変化を特徴情報として解析してもよい。解析部942は、現在解析している画像データを、当該画像データよりも時系列が前の画像データと比較して、予め定められた画素数以上の画素が相違するときには、画像に変化が生じていると判断してよい。解析部942は、当該データの特徴情報として、当該変化の有無または当該変化の内容を解析してよい。
【0106】
変化の内容としては、変化が生じた領域を識別する識別番号、変化が生じた領域に含まれる画素を識別する識別番号、および、変化が生じた画素の色相、彩度もしくは明度またはその割合を例示することができる。これにより、例えば、監視カメラの映像データの中から、画面左上に変化があった画像データを抽出することができる。また、監視カメラの映像データの中から、火事が発生した瞬間の画像データを抽出することができる。
【0107】
インデックスファイル更新部150は、解析部942から、画像データの識別情報と、当該画像データの解析結果とを受け取る。インデックスファイル更新部150は、受け取った解析結果に含まれる特徴情報の種類に基づいて、1以上のインデックスファイルを更新してよい。例えば、インデックスファイル更新部150は、解析結果の中に、変化が生じた領域の識別番号または当該領域に含まれる画素の識別番号と、当該画像データの識別情報とを対応付けた情報が含まれている場合に、更新用インデックスファイル952を更新してよい。また、解析結果の中に、変化が生じた画素の色相の識別番号と、当該画像の識別情報とを対応付けた情報が含まれている場合に、更新用インデックスファイル954を更新してよい。
【0108】
アクセス制御部170は、入力部110から入力されたデータファイル182を受け取る。解析部942から、画像データの識別情報を受け取る。アクセス制御部170は、データファイル182を記憶部180に格納するときに、受け取った識別情報を用いて、管理ファイル172を更新する。
【0109】
以上の構成により、情報処理装置900は、検索条件に適合するデータファイル182の識別情報を含む識別情報リストを作成して、ユーザに提供することができる。また、ユーザが識別情報リストに含まれる画像データにアクセスすることを要求した場合に、情報処理装置900は、当該画像データのアクセス先をユーザに提供することができる。監視システムにおいては、記憶されるフレーム数と比較して、画像を検索する頻度が非常に小さい。そのため、インデックスファイルを複数のデータベースとして提供することの効果が顕著になる。
【0110】
図10は、更新用インデックスファイル952のデータ構造の一例を概略的に示す。更新用インデックスファイル952は、変化が生じた領域に含まれる画素の識別番号1056と、データファイルおよび画像データを識別する識別番号1058とが対応付けられたインデックス情報を格納してよい。画素の識別番号1056は、特徴情報の一例であってよい。識別番号1058は、識別情報の一例であってよい。
【0111】
図11は、更新用インデックスファイル954のデータ構造の一例を概略的に示す。更新用インデックスファイル954は、変化が生じた領域に含まれる画素の色相を識別する識別番号1156と、データファイルおよび画像データを識別する識別番号1158とが対応付けられたインデックス情報を格納してよい。色相の識別番号1156は、特徴情報の一例であってよい。識別番号1158は、識別情報の一例であってよい。
【0112】
図12は、一実施形態に係るコンピュータ1900のハードウエア構成の一例を概略的に示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
【0113】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0114】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0115】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウエアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0116】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0117】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0118】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれる。
【0119】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0120】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0121】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0122】
コンピュータ1900にインストールされ、コンピュータ1900を検索装置、検索システムまたは検索装置もしくは検索システムの各部として機能させるプログラムは、各部の動作を規定したモジュールを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、出力制御システムまたは出力制御装置の各部としてそれぞれ機能させる。
【0123】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の検索装置または検索システム、例えば情報処理装置100、情報処理装置700または情報処理装置900を構築できる。
【0124】
以上の記載によれば、本願の明細書には、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が記載されている。また、コンピュータに、上記の方法を実行させるプログラムが記載されている。
【0125】
以上の記載によれば、本願の明細書には、サーバが、ネットワークを介して、クライアント端末にサービスを提供する方法であって、サービスが、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が記載されている。また、コンピュータに、上記の方法を実行させるプログラムが記載されている。
【0126】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0127】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0128】
10 ネットワーク、20 クライアント端末、100 情報処理装置、110 入力部、120 要求受付部、130 出力部、140 ファイル管理部、150 インデックスファイル更新部、152 更新用インデックスファイル、160 検索部、162 取得部、164 識別情報抽出部、166 リスト作成部、170 アクセス制御部、172 管理ファイル、180 記憶部、182 データファイル、192 テンポラリーインデックスファイル、194 マスターインデックスファイル、296 文字列、298 識別番号、376 識別番号、378 格納場所、700 情報処理装置、710 メールサーバ、712 通信制御部、720 分散ストレージ、730 管理サーバ、740 ノード、752 更新用インデックスファイル、856 要求、858 識別番号、900 情報処理装置、940 ファイル管理部、942 解析部、952 更新用インデックスファイル、954 更新用インデックスファイル、1056 識別番号、1058 識別番号、1156 識別番号、1158 識別番号、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 CD−ROMドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 CD−ROM

【特許請求の範囲】
【請求項1】
抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、
複数のデータのそれぞれの特徴を示す特徴情報と、前記複数のデータのそれぞれを識別する識別情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出部と、
前記識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部と、
を備える、検索装置。
【請求項2】
前記特徴情報は、前記複数のデータのそれぞれの一部に関する特徴を示す情報を含む、
請求項1に記載の検索装置。
【請求項3】
インデックスファイルを更新するインデックスファイル更新部をさらに備え、
前記インデックスファイル更新部は、
予め定められたイベントが発生するまで、第1のインデックスファイルを更新し、
予め定められたイベントが発生すると、前記第1のインデックスファイルに基づき、第2のインデックスファイルを作成する、
請求項1または請求項2に記載の検索装置。
【請求項4】
前記複数のデータのそれぞれの前記識別情報と、前記複数のデータのそれぞれのアクセス先を示すアクセス情報とが対応付けられた管理ファイルを参照して、前記識別情報リストに含まれる識別情報と一致する識別情報に対応付けられているアクセス情報を、前記管理ファイルから抽出するアクセス情報抽出部をさらに備える、
請求項1から請求項3までの何れか一項に記載の検索装置。
【請求項5】
前記複数のデータを格納する複数の記憶装置と、
前記管理ファイルを格納し、ネットワークを介して、前記複数の記憶装置のそれぞれと情報をやり取りする管理サーバと、
をさらに備える、
請求項4に記載の検索装置。
【請求項6】
ユーザから、前記抽出対象情報を含む検索要求を受け付ける要求受付部と、
検索要求に対する検索結果として、ユーザに前記識別情報リストを提示する出力部と、
をさらに備える、
請求項1から請求項5までの何れか一項に記載の検索装置。
【請求項7】
クライアント端末と、
前記クライアント端末とネットワークを介して情報をやりとりするサーバと、
を備え、
前記サーバは、
抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、
複数のデータのそれぞれを識別する識別情報と、前記複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出部と、
前記識別情報抽出部が抽出した複数の識別情報を、前記クライアント端末に送信する送信部と、
を有し、
前記クライアント端末は、
前記識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部を有する、
検索システム。
【請求項8】
抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、
複数のデータのそれぞれを識別する識別情報と、前記複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出段階と、
前記抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階と、
を備える、方法。
【請求項9】
インデックスファイルを更新するインデックスファイル更新段階をさらに備え、
前記インデックスファイル更新段階は、
予め定められたイベントが発生するまで、第1のインデックスファイルを更新する段階と、
予め定められたイベントが発生すると、前記第1のインデックスファイルに基づき、第2のインデックスファイルを作成する段階と、
を有する、
請求項8に記載の方法。
【請求項10】
サーバが、ネットワークを介して、クライアント端末にサービスを提供する方法であって、
前記サービスが、
抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、
複数のデータのそれぞれを識別する識別情報と、前記複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出段階と、
前記抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階と、
を備える、
方法。
【請求項11】
コンピュータに、
請求項8から請求項10までの何れか一項に記載の方法を実行させる、
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−203865(P2012−203865A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−70902(P2011−70902)
【出願日】平成23年3月28日(2011.3.28)
【出願人】(500147023)デジタルア−ツ株式会社 (4)