ファイル検索装置およびファイル検索プログラム
【課題】全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索する。
【解決手段】インデックス1作成部11は、検索対象ファイル43を参照し、インデックス1ファイル21を作成する。インデックス1ファイル21は、各検索対象ファイル43のファイル名、ファイル内容から抽出したキーワード等を有する複数のインデックス1レコードを含む。また、インデックス2作成部12は、検索対象ファイル43を参照し、インデックス2ファイル22を作成する。インデックス2ファイル22は、各検索対象ファイル43のファイル名、ファイルの内容を代表するメタデータ(文書のタイトル等)を有する複数のインデックス2レコードを含む。検索部13は、全文検索を行う場合には各インデックス1レコードを検索し、全文検索が不要な場合には各インデックス2レコードを検索する。
【解決手段】インデックス1作成部11は、検索対象ファイル43を参照し、インデックス1ファイル21を作成する。インデックス1ファイル21は、各検索対象ファイル43のファイル名、ファイル内容から抽出したキーワード等を有する複数のインデックス1レコードを含む。また、インデックス2作成部12は、検索対象ファイル43を参照し、インデックス2ファイル22を作成する。インデックス2ファイル22は、各検索対象ファイル43のファイル名、ファイルの内容を代表するメタデータ(文書のタイトル等)を有する複数のインデックス2レコードを含む。検索部13は、全文検索を行う場合には各インデックス1レコードを検索し、全文検索が不要な場合には各インデックス2レコードを検索する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索対象のファイルについて予めインデックスファイルを作成し、インデックスファイルを参照してファイルを検索するファイル検索装置およびファイル検索プログラムに関する。
【背景技術】
【0002】
近年、情報のデジタル化が急速に進展している。かつては、銀行の口座や市町村の住民票等、企業・官公庁等のコンピュータシステムが基幹業務を実行するときに参照するファイルを、データベース(Data Base)等に記憶することがデジタル化の中心であった。
【0003】
一方、現在では、企業等の組織において日常業務で作成される各種の書類が、各従業員のクライアントPC(Personal Computer)に文書ファイルとして記憶され、電子メールの添付文書として他のクライアントPCに送信され、あるいは、組織全体の共有情報としてファイルサーバに記憶される。そして、ファイルサーバに記憶された文書ファイルは、さまざまな従業員により参照され、時にはクライアントPCに複製され、更新される。
このようにして、多量の文書ファイルがさまざまなコンピュータに分散記憶されることにより、組織内に、重複あるいは類似した多数の文書ファイルが存在することになる。また、各コンピュータの記憶容量も増大し続けている。
【0004】
一方、組織内において、例えば、既に退職した従業員がかつて作成した文書ファイルが必要になる等、記憶場所が不明な文書ファイルを参照したい場合が多々生ずる。このような場合、文書ファイル内に含まれているはずのキーワードによる全文検索等によって文書ファイルを検索するという方法が広く行われている。
ただし、組織内の全てのコンピュータから文書ファイルを検索しようとすると、各従業員のクライアントPCにも全ての従業員からのアクセスを許可する必要があり、セキュリティ上好ましくない。このため、組織全体で共有すべき文書ファイルについては所定のファイルサーバに記憶しておくということが一般に行われている。
【0005】
しかし、文書ファイルを所定のいくつかのファイルサーバに記憶させたとしても、文書ファイルが必要になるたびにファイルサーバに記憶されている全ての文書ファイルを検索しようとすると、ファイルIO(Input Output)等を行うために膨大な時間を必要とする。
そこで、特許文献1に開示されているファイル検索装置は、ファイルサーバに記憶されているファイルについて、記憶場所やキーワード等、検索に使用するための比較的小容量の情報(インデックス情報)をインデックスファイルとして記憶する。すなわち、このファイル検索装置では、インデックスファイルを作成することで、検索時に、複数ファイルについてのインデックス情報を1回のファイルIOで取得することが可能となり、各ファイルへのファイルIOを不要とすることができる。この結果、ファイル検索時のレスポンスタイムを短くすることができるとともに、ファイルサーバの負荷を軽減することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−162545号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に開示されているファイル検索装置によってファイル検索を行うためには、検索対象としたい全てのファイルについて、インデックスファイルを作成する必要がある。
インデックス情報の記憶容量は、ファイル自体と比べれば比較的小さい。しかし、キーワードによる全文検索を行うことができるようにするためには、ファイルに含まれるキーワードを解析してインデックス情報に記憶しておく必要がある。このため、ファイルに含まれるキーワードの数が多くなれば、それだけ大きな容量を必要とする。従って、検索対象としたいファイルの数が増えるほど、インデックスファイルの記憶容量は大きくなっていく。
【0008】
ここで、例えば組織内におけるファイル検索を検討すると、ファイルを共有のファイルサーバに記憶する場合であっても、部署ごとにアクセス可能なフォルダ等が限定されており、当該限定されたフォルダ等の配下にファイルを記憶し、検索する場合が多い。このような場合、フォルダに、例えば“作業報告書用フォルダ”といったような名称を付けておき、当該フォルダ内には当該名称に合致したファイルを記憶しておくという方法、すなわちフォルダによってファイルを分類するという方法をとる場合が多い。そして、このようにした場合、フォルダのツリー構造を手繰っていくことで必要なファイルが検索できるので、キーワードによる全文検索を必要とすることはまれである。
【0009】
一方、例えば、特許文献、技術論文等、組織外部から入手したファイルや、WEBサーバなど、組織外部のサーバに存在しているファイルについては、入手した時点では意図しなかった用途で参照することも多く、キーワードによる全文検索が必要な場合も多い。
このように組織におけるファイル検索を検討すると、全文検索を可能にすべきファイルと、全文検索が不要なファイルが存在している。これは組織に限ったことではなく、例えば個人的に行うファイル検索についても同じである。
【0010】
本発明の目的は、全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索することができるファイル検索装置およびファイル検索プログラムを提供することである。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明のファイル検索装置は、
記憶装置から、複数の検索対象ファイルからなる第1の検索対象ファイル群と、複数の検索対象ファイルからなる第2の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第1の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス1レコードを所定のタイミングで作成し、当該各インデックス1レコードを含むインデックス1ファイルを記憶するインデックス1ファイル記憶手段と、
前記ファイル取得手段によって取得された第2の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する1以上のメタデータとを有するインデックス2レコードを所定のタイミングで作成し、当該各インデックス2レコードを含むインデックス2ファイルを記憶するインデックス2ファイル記憶手段と、
前記インデックス1ファイルに含まれる各インデックス1レコードを検索し、検索条件を満たすインデックス1レコードを取得するキーワード検索手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索し、検索条件を満たすインデックス2レコードを取得するメタデータ検索手段と、
を備える。
【0012】
好ましくは、本発明のファイル検索装置は、
仮想分類の名称を示す仮想分類表示名と、前記インデックス2ファイルに含まれるいずれかのインデックス2レコードが当該仮想分類に分類される可能性の有無を示すインデックス2レコード有無情報と、前記インデックス2ファイルに含まれる各インデックス2レコードに対応する検索対象ファイルを当該仮想分類に分類するための分類条件と、上位階層の仮想分類の有無を示す上位階層有無情報と、上位階層の仮想分類を識別するための上位階層識別情報とを有する複数の仮想分類定義レコードを含む仮想分類定義ファイルを記憶する仮想分類定義ファイル記憶手段と、
前記仮想分類定義ファイル記憶手段によって記憶された前記仮想分類定義ファイルに含まれる各仮想分類定義レコードのインデックス2レコード有無情報と分類条件と上位階層有無情報と上位階層識別情報とに基づいて、各仮想分類と各インデックス2レコードに対応する検索対象ファイルとによって構成されるツリー状の階層構造を示す仮想分類定義情報を作成する仮想分類定義手段と、
前記仮想分類定義手段によって作成された仮想分類定義情報と、当該仮想分類定義情報によって示されるツリー状の階層構造を構成する各仮想分類の仮想分類表示名および各検索対象ファイルのファイル名とを出力する仮想分類出力手段と、
を備える。
【0013】
好ましくは、本発明のファイル検索装置は、
キーワードと、当該キーワードを識別するためのキーワード識別情報とを有する複数のキーワード辞書レコードを含むキーワード辞書ファイルを記憶するキーワード辞書ファイル記憶手段と、
前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報と、当該キーワード識別情報に関連する1以上の前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報とを有する複数のキーワード関連定義レコードを含むキーワード関連定義ファイルを記憶するキーワード関連定義ファイル記憶手段と、
前記メタデータ検索手段によって検索を行う際に、当該検索の検索条件に含まれるキーワードと、前記キーワード辞書ファイルに含まれる各キーワード辞書レコードのキーワードおよびキーワード識別情報と、前記キーワード関連定義ファイルに含まれる各キーワード関連定義レコードのキーワード識別情報および当該キーワード識別情報に関連する1以上のキーワード識別情報とに基づいて、前記仮想分類定義レコードを生成する仮想分類動的生成手段と、
を備える。
【0014】
好ましくは、本発明のファイル検索装置は、
前記インデックス2レコードが、当該インデックス2レコードを識別するためのインデックス2レコード識別情報を含み、
関連定義レコードを識別するための関連定義レコード識別情報と、関連定義の名称を示す表示名と、インデックス2レコードから検索条件を取得するための検索条件取得条件とを有する1以上の関連定義レコードを含む関連定義ファイルを記憶する関連定義ファイル記憶手段と、
前記関連定義ファイル記憶手段に含まれる各関連定義レコードの関連定義レコード識別情報と表示名とを出力する関連定義情報出力手段と、
前記関連定義情報出力手段によって出力された各関連定義レコード識別情報の中から選択された関連定義レコード識別情報と、インデックス2レコード識別情報とを受け付ける受付手段と、
前記受付手段によって受け付けられたインデックス2レコード識別情報を含むインデックス2レコードから、前記関連定義ファイル記憶手段に含まれる各関連定義レコードの検索条件取得条件に基づいて検索条件を取得する検索条件取得手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索して、前記検索条件取得手段によって取得された検索条件を満たすインデックス2レコードを取得し、取得した当該インデックス2レコードに含まれるファイル名とファイルパスを出力する関連検索手段と、
を備える。
【0015】
また、本発明のファイル検索プログラムは、
コンピュータを、
記憶装置から、複数の検索対象ファイルからなる第1の検索対象ファイル群と、複数の検索対象ファイルからなる第2の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第1の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス1レコードを所定のタイミングで作成し、当該各インデックス1レコードを含むインデックス1ファイルを記憶するインデックス1ファイル記憶手段と、
前記ファイル取得手段によって取得された第2の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する1以上のメタデータとを有するインデックス2レコードを所定のタイミングで作成し、当該各インデックス2レコードを含むインデックス2ファイルを記憶するインデックス2ファイル記憶手段と、
前記インデックス1ファイルに含まれる各インデックス1レコードを検索し、検索条件を満たすインデックス1レコードを取得するキーワード検索手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索し、検索条件を満たすインデックス2レコードを取得するメタデータ検索手段と、
して機能させる。
【発明の効果】
【0016】
本発明によれば、全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索することができる。
【図面の簡単な説明】
【0017】
【図1】第1の実施形態に係るファイル検索システムの構成の一例を示す図である。
【図2】インデックス1ファイルのデータ構成の一例を示す図である。
【図3】インデックス2ファイルのデータ構成の一例を示す図である。
【図4】インデックス2ファイルに含まれるシステムメタデータのデータ構成の一例を示す図である。
【図5】インデックス2ファイルに含まれる標準メタデータのデータ構成の一例を示す図である。
【図6】仮想分類定義ファイルのデータ構成の一例を示す図である。
【図7】関連定義ファイルのデータ構成の一例を示す図である。
【図8】インデックス1作成部の動作の一例を示すフローチャートである。
【図9】インデックス2作成部の動作の一例を示すフローチャートである。
【図10】検索要求部の動作の一例を示すフローチャートである。
【図11】検索部の動作の一例を示すフローチャートである。
【図12】インデックス1検索部の動作の一例を示すフローチャートである。
【図13】ログイン画面を例示した図である。
【図14】検索要求画面を例示した図である。
【図15】検索要求画面を例示した図である。
【図16】複合検索における検索部等の動作の一例を示すフローチャートである。
【図17】検索要求画面での検索結果の表示内容を例示した図である。
【図18】検索要求画面での検索結果の表示内容を例示した図である。
【図19】第2の実施形態に係るファイル検索システムの構成の一例を示す図である。
【図20】キーワード辞書ファイルのデータ構成の一例を示す図である。
【図21】キーワード関連定義ファイルのデータ構成の一例を示す図である。
【図22】仮想分類動的生成における検索部等の動作の一例を示すフローチャートである。
【図23】検索要求画面を例示した図である。
【発明を実施するための形態】
【0018】
以下、本発明の第1の実施形態に係るファイル検索システムについて図面を参照しながら説明する。
なお、本明細書と特許請求の範囲において、特に説明を付さない限り、「ファイル」とは、文書ファイル、画像ファイル等のファイルのみならず、データベース全体やデータベースの各レコード等も含み、閲覧、視聴、メール送受信あるいは外部記憶媒体へのコピー等の対象となりうる電子データを意味する。
【0019】
<ファイル検索システム全体の構成・機能>
図1は、本発明の第1の実施形態に係るファイル検索システムの構成の一例を示す。
第1の実施形態に係るファイル検索システムは、ファイル検索サーバ1と、ファイルサーバ4と、クライアント3とを備える。ファイル検索サーバ1と、ファイルサーバ4と、クライアント3は、LAN(Local Area Network)等の有線又は無線の通信回線9により通信可能に接続されている。
ここで、ファイル検索サーバ1、ファイルサーバ4及びクライアント3はそれぞれ1台ずつ図示しているが、それぞれ2台以上存在していてもよい。また、ファイル検索サーバ1と、ファイルサーバ4と、クライアント3とはそれぞれ異なる装置である必要はなく、例えば、ファイル検索サーバ1とファイルサーバ4とクライアント3の機能を1台の装置によって実現することも可能である。
通信回線9はLANに限定されるものではなく、例えばWAN(Wide Area Network)やインターネットとすることもできるし、これらの組み合わせとすることもできる。
【0020】
後に詳述するように、ファイル検索サーバ1はファイルサーバ4に記憶されているファイルの名称等を収集して、インデックスファイルを作成して記憶しておく。そして、クライアント3がファイル検索サーバ1にファイル検索要求(以下「検索要求」と略記することがある。)を送信すると、ファイル検索サーバ1はそのインデックスファイルを参照してファイル検索を行い、クライアント3にファイル検索結果(以下「検索結果」と略記することがある。)を送信する。
【0021】
<クライアント3の構成・機能>
クライアント3はコンピュータであり、入力装置32、表示装置33、図示しない主記憶装置および記憶装置を備える。
入力装置32はキーボード、マウス等を含む。クライアント3の操作者は、入力装置32を操作することで、クライアント3が実行するべき処理を指示することができる。すなわち入力装置32はクライアント3の入力手段として機能する。
表示装置33は液晶ディスプレイ、プリンタ等を含む。表示装置33は、クライアント3が実行した処理の結果等を表示あるいは印刷する。すなわち表示装置33はクライアント3の表示手段および出力手段として機能する。
主記憶装置はRAM(Random
Access Memory)等を含む。記憶装置は磁気ディスク等を含み、クライアント3に内蔵されるか、または外部接続される。主記憶装置と記憶装置は、クライアント3の記憶手段として機能する。
【0022】
クライアント3は、図示していないがCPU(Central Processing Unit)を備える。主記憶装置には検索要求プログラム等のプログラムが記憶されている。CPUがその命令コードを実行することにより検索要求部31等の機能が実現される。
また、CPUは、検索要求プログラム等の応用プログラムの命令コードを実行する際、OS(Operating System)等のプログラムの命令コードも実行する場合がある。以上のようなプログラム実行にかかわる技術は周知であるので、以降の説明および図面においては、検索要求部31というように、あたかも各種プログラムにより実現される処理を実行するハードウェアが存在するかのように記載する。なお、実際に各部(例えば検索要求部31)をハードウェアで構成することも可能である。
【0023】
検索要求部31は、クライアント3の操作者が入力装置32によって入力したファイル検索条件およびファイル検索指示(例えば、ファイル名が「作業報告」であるファイルを検索するように、という指示)を受けて、検索条件式を作成し、ファイル検索サーバ1に検索条件式を含む検索要求を送信する。
また、ファイル検索サーバ1がクライアント3に送信した検索結果を受信し、表示装置33に表示する。検索要求部31を実現するための検索要求プログラムは、第1の実施形態に係わる独自のプログラムであってもよいし、例えばWEBブラウザのプログラムであってもよい。WEBブラウザを検索要求部31として使用する場合、後述するファイル検索サーバ1の検索部13は、例えばWEBアプリケーションとすればよい。
【0024】
<ファイルサーバ4の構成・機能>
ファイルサーバ4はコンピュータであり、記憶装置42を備える。
記憶装置42は磁気ディスク等を含む。記憶装置42はファイルサーバ4に内蔵され、または外部接続される。図1では、1台の記憶装置42がファイルサーバ4に接続されているかのように例示しているが、実際には、むしろ2台以上の記憶装置42がファイルサーバ4に接続されることが多く、また、2台以上の記憶装置42が2台以上のファイルサーバ4に、切り替え可能に接続されることも多い。
記憶装置42にはさまざまなファイルが記憶されているが、図1では、ファイルのうち後述するファイル検索サーバ1がインデックス作成対象とするものを、「検索対象ファイル43」と記述している。すなわち、検索対象ファイル43という特定のファイルが存在するのではなく、検索対象ファイル43は、例えば記憶装置42に記憶されている全てのファイルであってもよいし、あるいは、特定のフォルダ内の全てのファイル等、記憶装置42に記憶されている一部のファイルであってもよい。
検索対象ファイル43には、オーナー、グループ、その他利用者に対する、参照・更新・実行権限を表すアクセス権限を設定することができる。
【0025】
ファイルサーバ4は、図示していないがCPUと、RAM等で構成された主記憶装置とを備える。主記憶装置にはファイル管理プログラム等のプログラムが記憶されている。CPUがその命令コードを実行することによりファイル管理部41等の機能が実現される。ファイル管理部41は、検索対象ファイル43を含め、記憶装置42に記憶されているファイルの記憶位置等を管理する。また、ファイル管理部41は、ファイル検索サーバ1からファイルの格納場所等を受信し、当該格納場所に記憶された検索対象ファイル43等を読み込み、当該ファイルの記憶内容をファイル検索サーバ1に送信する機能も有している。
【0026】
<ファイル検索サーバ1の構成・機能>
ファイル検索サーバ1はコンピュータであり、記憶装置2と、図示しない主記憶装置とを備える。記憶装置2は磁気ディスク等を含む。記憶装置2はファイルサーバ1に内蔵されるか、または外部接続される。図1では、1台の記憶装置2がファイル検索サーバ1に接続されているかのように例示しているが、2台以上であってもよい。主記憶装置はRAM等で構成される。記憶装置2と主記憶装置は、ファイルサーバ1の記憶手段として機能する。
記憶装置2には、インデックス1ファイル21、インデックス2ファイル22、仮想分類定義ファイル23、関連定義ファイル24、キーワード辞書ファイル25とキーワード関連定義ファイル26が記憶されている。これらのファイルの記憶内容等については、以降のファイル検索サーバ1の機能説明と合わせて説明する。
【0027】
ファイル検索サーバ1は、図示していないがCPUを備える。ファイル検索サーバ1の主記憶装置には、ファイル検索プログラム等のプログラムが記憶されている。CPUがその命令コードを実行することにより、インデックス1作成部11、インデックス2作成部12、検索部13、インデックス1検索部14の各機能が実現される。
インデックス1作成部11は、例えば毎日同じ時刻等の所定のタイミングで、検索対象ファイル43を参照し、インデックス1ファイル21を作成する。インデックス1ファイル21には、後述するように、ファイル名、ファイル内容から抽出したキーワード等が記憶される。
どのファイルを検索対象ファイル43とするかは、例えば、図示していないが、記憶装置2内の所定のファイルに予め記憶装置42のファイルパス(“/etc/usr1/”等)を1以上記憶しておき、当該ファイルパス配下のファイルを検索対象ファイル43とすることができる。なお、記憶装置42が2台以上存在する場合等には、当該ファイルパスがどの記憶装置上に存在するか等も含めて記憶しておけばよい。以上のようにインデックス1ファイル21を作成することで、インデックス1ファイル21を参照してファイル検索することが可能になり、検索の都度、検索対象ファイル43を参照する必要がなくなるので、検索に要する処理時間を短縮することができる。
【0028】
なお、以上のようにして作成されたインデックス1ファイル21を参照して検索するとき、インデックス1ファイル21作成後に検索対象ファイル43が削除され、あるいは変更されている場合がある。このような場合に、インデックス1ファイル21を検索すると、検索対象ファイル43を検索した場合とは異なる検索結果が得られることになる。例えばファイル名が「作業報告」であるファイルについてインデックス1ファイル21が作成された後、当該ファイルが削除された場合、インデックス1ファイル21を参照するとファイル名が「作業報告」のファイルが存在しているように見えるが、検索対象ファイル43には存在していない。
そこで、前述したように、インデックス1作成部11は、例えば毎日同じ時刻等の所定のタイミングで処理を行うようにすることができる。このようにすることで、インデックス1ファイル21が定期的に更新され、検索対象ファイル43と大きく乖離することを防ぐことができる。
【0029】
そして、インデックス1作成部11が処理を行うタイミングの間隔を短くすることで(例えば、1時間おきに処理を行うようにすることで)、インデックス1ファイル21と検索対象ファイル43の乖離を、より小さくすることができる。ただし、インデックス1作成部11が処理を行うタイミングの間隔を短くするということは、検索対象ファイル43の全ファイルに対するIOが発生する間隔も短くなるということなので、ファイルサーバ4の性能等も考慮した上で、インデックス1作成部11が処理を行うタイミングの間隔を決める必要がある。
例えば、ファイルサーバ4において、CPU使用率、一定時間におけるIO頻度等を常時監視するプログラムを走行させておき、CPU使用率、一定時間におけるIO頻度等が所定値以下になった場合に、その旨をインデックス1作成部11に送信し、インデックス1作成部11が処理開始する等も、有効な方法である。あるいは、ファイルサーバ4において、検索対象ファイル43におけるIOを常時監視するプログラムを走行させておき、検索対象ファイル43が更新等されるたびに、インデックス1作成部11にその旨を通知し、インデックス1ファイル21内の当該ファイルについてのインデックス情報が更新されるようにしてもよい。
【0030】
インデックス2作成部12も、インデックス1作成部11と同様に、例えば毎日同じ時刻等の所定のタイミングで、検索対象ファイル43を参照し、インデックス2ファイル22を作成する。第1の実施形態においては、インデックス2ファイル22には、後述するように、たとえば、ファイルの内容から判断したファイルに記憶されている文書のタイトル等が記憶される。すなわち、インデックス1ファイル21の記憶内容と、インデックス2ファイル22の記憶内容は一部が重複するとしても、完全には同一でない。
【0031】
どのファイルを検索対象ファイル43とするかは、インデックス1作成部11と同様に、記憶装置2内の所定のファイルに予め記憶装置42のファイルパス(“/etc/usr1/”等)を1以上記憶しておき、当該ファイルパス配下のファイルを検索対象ファイル43とすることができる。インデックス1作成部11の検索対象ファイル43とインデックス2作成部12の検索対象ファイル43は同一であってもよいし、一部が重複してもよいし、全く異なっていても構わない。
【0032】
なお、以上のようにして作成されたインデックス2ファイル22を参照して検索するとき、インデックス1ファイル21を参照して検索するときと同様に、インデックス2ファイル22の記憶内容と検索対象ファイル43の内容が乖離することがあるという問題が発生する。そして、この問題は、インデックス1作成部11と同様に、インデックス2作成部12が処理を行うタイミングの間隔を短くする等によって解決することができる。
【0033】
さらに、インデックス1ファイル21とインデックス2ファイル22の作成タイミングが異なると、インデックス1ファイル21とインデックス2ファイル22の内容が乖離することがあるという問題も発生する。この問題の解決方法のひとつは、インデックス1作成部11とインデックス2作成部12のインデックスファイル作成処理開始タイミングを一致させることである。具体的には、例えば、インデックス2作成部12がインデックスファイル作成処理を開始する直前に、インデックス1作成部11にインデックス作成処理開始要求を送信し、インデックス1作成部11は当該要求を受信するとインデックス作成処理を開始するようにすればよい。
【0034】
もっとも、インデックスファイル作成処理開始タイミングが一致しても、各検索対象ファイル43を参照するタイミングが一致するとは限らないが、インデックス1ファイル21とインデックス2ファイル22の内容が多少乖離していたとしても、検索目的での使用に大きな支障があるわけではない。従って、インデックスファイル作成処理開始タイミングを一致させれば、ほとんどの場合、実用的には問題はない。
ただし、インデックス1ファイル21とインデックス2ファイル22の内容の乖離を完全に防止する必要がある場合がある。このような場合には、例えば、ファイルサーバ4において、検索対象ファイル43におけるIOを常時監視するプログラムを走行させておき、検索対象ファイル43が更新等されるたびに、インデックス1ファイル21及びインデックス2ファイル22内の当該ファイルについての情報を更新するようにしてもよい。
【0035】
検索部13は、ファイル検索サーバ1がクライアント3からの検索要求を受信した場合に起動され、ファイル検索を実行する。具体的には、インデックス1ファイル21とインデックス2ファイル22の一方又は両方を参照して、検索要求の検索条件式に合致するファイルが存在するかどうか判定し、存在する場合には、合致したファイルのファイル名等からなる検索結果をクライアント3に送信する。
【0036】
ここで、検索部13は、インデックス1ファイル21を参照する必要がある場合、インデックス1検索部14に検索条件式を渡し、インデックス1検索部14は、インデックス1ファイル21を参照して、受け取った検索条件式に合致するファイルが存在するかどうか判定する。インデックス1ファイル21には、ファイル名、ファイル内容から抽出したキーワードが記憶されているため、インデックス1検索部14による検索は、検索部13の検索機能の一部を補完することができる。
後述するように、第1の実施形態においては、クライアント3の操作者がいわゆる全文検索を要求した場合に、インデックス1検索部14による検索を行う。検索部13自体の機能から全文検索機能を分離することにより、インデックス1検索部14を実現するためのプログラムとして、既に存在するさまざまな全文検索プログラムを使用することが可能になり、例えば、検索要求から社会科学分野の文献の検索が求められているのか、自然科学分野の文献の検索が求められているのか等の検索目的を判定して、検索目的に合致したインデックス1検索部14によって全文検索を行うといったことも可能になる。
【0037】
検索部13は、検索対象ファイル43をインデックス2ファイル22に記憶された文書のタイトル等のメタデータ検索キーワードにより分類して、ツリー状の階層を作成する機能(以下「仮想分類機能」という。)、言い換えれば、インデックス2レコード220(図3を参照して後で説明する。)を分類する機能を有しており、仮想分類を行う際には、分類条件等を定義した仮想分類定義ファイル23を参照する。
【0038】
検索部13は、メタデータ検索のキーワードに関連するキーワードにより仮想分類定義を動的に生成する機能(以下「仮想分類動的生成機能」という。)を有している。仮想分類動的生成機能で生成した仮想分類定義を参照し、仮想分類機能を使用することでメタデータ検索キーワードに関連したキーワードによる分類を行うことができる。
仮想分類動的生成を行う際には、キーワードを登録するキーワード辞書ファイル25とキーワード辞書ファイル25に登録されたキーワードの関連を定義したキーワード関連定義ファイル26を参照する。当然ながら、キーワード辞書ファイル25とキーワード関連定義ファイル26を作成・更新等するプログラムも存在するが、本発明とは直接関係がないので、以降の説明ではキーワード辞書ファイル25とキーワード関連定義ファイル26が作成済みであるという前提で説明する。
【0039】
また、検索部13は、インデックス2ファイル22に記憶された、検索対象ファイル43の記憶装置42上の記憶位置を参照して、ツリー状の階層を作成する機能(以下「物理階層作成機能」という。)を有している。
さらに、検索部13は、検索結果と関連するファイルを検索する機能(以下「関連検索機能」という。)を有しており、関連検索を行う際には、関連検索条件等を定義した関連定義ファイル24を参照する。当然ながら、関連定義ファイル24を作成・更新等するプログラムも存在するが、本発明とは直接関係がないので、以降の説明では関連定義ファイル24が作成済みであるという前提で説明する。
【0040】
<各ファイルの構成・機能>
図2は、インデックス1ファイル21のデータ構成の一例を示す。
インデックス1ファイル21は、各検索対象ファイル43と対応するインデックス1レコード210から構成される。すなわち各インデックス1レコード210は、インデックス1レコード210作成時点の検索対象ファイル43と1対1に対応している。
インデックス1レコード210は、ファイル名211、ファイルパス212、アクセス権限213およびキーワード214の各データ項目から構成される。
【0041】
ファイル名211には、対応する検索対象ファイル43のファイル名、例えば“作業報告1.doc”が設定される。
ファイルパス212には、対応する検索対象ファイル43の絶対パス、例えば“//etc/usr1/作業報告1.doc” (ルート直下の”etc“フォルダ内の”usr1“フォルダ内の”作業報告1.doc“)が設定される。なお、ファイルパス212によって検索対象ファイル43の記憶装置42上の記憶位置を識別することができるが、ファイルサーバ4に複数の記憶装置42が接続されている場合、記憶装置42を特定する識別や、論理ボリューム名等も、ファイルパス212の一部として、又はファイルパス212とは別のデータ項目として設定すればよい。また、ファイルの絶対パス以外の情報、例えば予め定めた所定のファイルを基準とする相対パス、あるいはファイルが記憶されている論理ブロック番号によっても、検索対象ファイル43の記憶位置を識別することは可能である。インデックス1レコード210には、ファイルパス212に変えて、又はファイルパス212に加えて、このようなデータ項目を設けてもよい。
【0042】
アクセス権限213には、対応する検索対象ファイル43に対して設定されているアクセス権限が設定される。具体的には、例えばファイルサーバ4のファイル管理部41等によって付与され、ファイルの属性情報として記憶されているアクセス権限(例えば、UNIX(登録商標)等で使われている、オーナー、グループ、その他利用者に対する、参照・更新・実行権限を表す3桁の数値(777等))が設定される。
キーワード214には、対応する検索対象ファイル43の内容から抽出したキーワードが設定される。例えば、検索対象ファイル43の内容に“現場”という文字列が複数個含まれている場合“現場”を抽出する等、さまざまな構文解析手法等によって、1以上のキーワードを抽出し、キーワード214に設定することができる。一般に、キーワード214には多数の語句等が記憶され、インデックス1レコード210のサイズの大部分がキーワード214のために使用される。
なお、以上のほか、ファイル作成者等、他のファイル属性情報についても、インデックス1レコード210のデータ項目とすることができる。
以上のようにして作成されたインデックス1レコード210(インデックス情報)は、インデックス1検索部14により参照される。
【0043】
図3は、インデックス2ファイル22のデータ構成の一例を示す。
インデックス2ファイル22は、各検索対象ファイル43と対応するインデックス2レコード220から構成される。すなわち各インデックス2レコード220は、インデックス2レコード220作成時点の検索対象ファイル43と1対1に対応している。
インデックス2レコード220は、システムメタデータ221、標準メタデータ222及びユーザ定義メタデータ223から構成される。
システムメタデータ221はインデックス2作成部12によって設定され、利用者がその設定内容を直接変更することはできない。
一方、標準メタデータ222にはインデックス2作成部12によってファイルの内容を代表するメタデータが設定される。図1に示していないが、利用者が、ファイル検索サーバ1のCPUにメタデータ変更プログラムを実行させて、標準メタデータ222の設定内容を直接変更することができる。
また、ユーザ定義メタデータ223は利用者がデータ構造を定義し、ファイルの内容を代表するメタデータを設定・変更するデータ項目である。インデックス2作成部12は、ユーザ定義メタデータ223を設定しない。
【0044】
図4は、システムメタデータ221のデータ構成の一例を示す図である。
システムメタデータ221は、ファイルID221a、ファイル名221b及びファイルパス221cから構成される。
ファイルID221aには、対応する検索対象ファイル43を一意に識別可能なID(Identifier)が設定される。具体的には、例えば、新たに検索対象ファイル43のインデックス2レコード220を作成するたびに、1から始まる通番を設定すればよい。
ファイル名221bには、インデックス1レコード210のファイル名211と同様、対応する検索対象ファイル43のファイル名、例えば“作業報告1.doc”が設定される。
ファイルパス221cには、インデックス1レコード210のファイルパス212と同様に、例えば対応する検索対象ファイル43の絶対パス(“//etc/usr1/作業報告1.doc”等)が設定される。
なお、以上のほか、ファイル作成者、アクセス権限等、他のファイル属性情報についても、システムメタデータ221のデータ項目とすることができる。
【0045】
図5は、標準メタデータ222のデータ構成の一例を示す図である。
標準メタデータ222は、タイトル222a、文書記載日222b及びセキュリティランク222cから構成される。
タイトル222aには、対応する検索対象ファイル43に記憶されている文書等の題名が“作業報告書”のように設定される。具体的には、インデックス2作成部12は、例えば、当該ファイルを印刷する場合の表示イメージを構築し、先頭ページ上段に、他の文字より大きな文字サイズで印刷される文字列を文書等の題名とみなし、タイトル222aに設定する。
文書記載日222bには、対応する検索対象ファイル43に記憶されている文書等が記載された日付が“2009年8月5日”のように設定される。具体的には、インデックス2作成部12は、例えば、当該ファイルを印刷したときに先頭ページ上段に印刷される文字列のうち、“年”、“月”、“日”、“作成”を含む等、作成日付らしい文字列を文書等の作成日付とみなし、文書記載日222bに設定する。
【0046】
セキュリティランク222cには、対応する検索対象ファイル43に記憶されている文書等の機密度が“極秘”、“秘密”のように設定される。具体的には、インデックス2作成部12は、例えば、当該ファイルに印刷される文字列のうち、“取扱注意”、“複製禁止”等、機密にする必要があることを示していると思われる文字列を抽出し、抽出した文字列の内容、数等によって機密度を判定し、セキュリティランク222cに設定する。
なお、以上のほか、文書の保管期間等、検索対象ファイル43を印刷した場合の表示イメージ等から判断可能な他の情報についても、標準メタデータ222のデータ項目とすることができる。
以上のようにして作成されたインデックス2レコード220(インデックス情報)は、前述したように、検索部13により参照される。
【0047】
図6は、仮想分類定義ファイル23のデータ構成の一例を示す。
仮想分類定義ファイル23は、1以上の仮想分類定義レコード230から構成される。仮想分類定義レコード230は、仮想分類ID231、表示名232、条件233及び上位仮想分類ID234の各データ項目から構成される。
【0048】
仮想分類ID231には、当該仮想分類定義レコード230を一意に識別可能な値が“1”、“2”、“3”のように設定される。
表示名232には、当該仮想分類の名称が“タイトル”、“作業報告”のように設定される。
条件233には、当該仮想分類による分類条件が“条件なし”、“タイトル222aに「作業報告書」(という文字列)が含まれる”のように設定される。分類条件に“条件なし”が設定されている場合、当該仮想分類に分類されるインデックス2レコード220が存在しないことを意味し、分類条件に何らかの条件が設定されている場合、インデックス2レコード220のうち、当該条件を満足するレコードが当該仮想分類に分類されることを意味する。従って、1つのインデックス2レコード220が2以上の仮想分類に分類される場合もあるし、どの仮想分類にも分類されない場合もある。
上位仮想分類ID234には、当該仮想分類定義レコード230の上位の仮想分類定義レコード230を一意に識別可能な値が“0(上位なし)”、“1”、“2”、“3”のように設定される。
【0049】
図14と図15を参照しながら後で説明するように、仮想分類定義レコード230は検索部13によって参照され、表示名232や、当該表示名232に係わる条件233を満足するインデックス2レコード220のファイル名221bが、表示装置33にツリー状に階層表示される。従って、1つのインデックス2レコード220がツリーの2箇所以上で表示される場合もあるし、ツリーのどこにも表示されない場合もある。
【0050】
図7は、関連定義ファイル24のデータ構成の一例を示す。
関連定義ファイル24は、1以上の関連定義レコード240から構成される。関連定義レコード240は、関連定義ID241、表示名242及び条件243の各データ項目から構成される。
関連定義ID241には、当該関連定義レコード240を一意に識別可能な値が“1”、“2”、“3”のように設定される。
表示名242には、当該関連定義の名称が“タイトル”のように設定される。
条件243には、当該仮想分類による分類条件が“タイトル222aが当該検索結果と等しい”のように設定される。なお、条件243には、例えば、“当該検索ファイルのファイル名の前に「コピー〜」が追加されている”、“当該検索ファイルのファイル名の後ろに数字が追加されている”等、さまざまな条件を設定可能としてもよい。
関連定義ファイル24を用いた関連検索については、図17と図18を参照しながら後で詳細に説明する。
【0051】
図20と図21は、それぞれキーワード辞書ファイル25とキーワード関連定義ファイル26のデータ構成の一例を示す。
上述した仮想分類定義レコード230は、利用者が予め作成しておいてもよいが、メタデータ検索を行う際にキーワード辞書ファイル25とキーワード関連定義ファイル26を用いて動的に作成することが可能である。
キーワード辞書ファイル25は、1以上のキーワード辞書レコード250から構成される。キーワード辞書レコード250は、キーワードID251、言語コード252及びキーワード253の各データ項目から構成される。
キーワードID251には、キーワードを一意に識別可能な値が“1”、“2”、“3”のように設定される。
言語コード252には、キーワード253の言語種別を表す3文字の言語コードが“jpn”や“eng”のように設定される。なお、言語コード“jpn”と“eng”は、それぞれ日本語と英語に対応する。
キーワード253には、当該キーワードが“仕様書”のように設定される。
キーワード辞書レコード250は、キーワードID251と言語コード252で一意に識別できる。また、キーワード辞書ファイル25には、キーワード253が同一のキーワード辞書レコード250は設定できない。
例えば、キーワードID251、言語コード252及びキーワード253に、それぞれ“1”、“jpn”、“仕様書”が設定されたキーワード辞書レコード250と、それぞれ“1”、“eng”、“specifications”が設定されたキーワード辞書レコード250が2レコード存在する場合、この2つのレコードのキーワードは、言語は異なるが同一のキーワードということになる。
【0052】
キーワード関連定義ファイル26は、1以上のキーワード関連定義レコード260から構成される。キーワード関連定義レコード260は、キーワードID261、関連キーワードID262、最大キーワード長263及び言語条件264から構成される。
キーワードID261には、キーワード辞書ファイル25に登録されているキーワード辞書レコード250のキーワードID251の値が設定される。
関連キーワードID262には、キーワードID261と同様にキーワード辞書ファイル25に登録されているキーワード辞書レコード250のキーワードID251の値が1つ以上設定される。キーワード関連定義レコード260は、キーワードID261と値が同一であるキーワードID251のキーワード辞書レコード250に含まれるキーワード253に設定されているキーワードと、関連キーワードID262と値が同一であるキーワードID251のキーワード辞書レコード250に含まれるキーワード253に設定されているキーワードとが関連することを指定する。
なお、関連キーワードID262に2つ以上のキーワードIDを設定する場合、“1, 2”のように「, (カンマ)」で区切って設定する。
【0053】
最大キーワード長263には、キーワード辞書ファイル25から関連キーワードID262のキーワードを取得するときのキーワードの最大文字数の制限が“0(制限しない)”、“10”のように設定される。
言語条件264には、キーワード辞書ファイル25から関連するキーワードを取得するときのキーワードの言語種別を検索キーワードの言語種別と同一に限定するかしないかの値が“0(同一言語のみ)”、“1(限定しない)”のように設定される。
【0054】
例えば、キーワード辞書ファイル25のキーワードID251、言語コード252及びキーワード253に、それぞれ以下のように設定された3つのキーワード辞書レコード250が存在するとする。
(1)“1”、“jpn”、“仕様書”
(2)“1”、“eng”、“specifications”
(3)“2”、“jpn”、“設計書”
そして、キーワード関連定義ファイル260のキーワードID261、関連キーワードID262、最大キーワード長263及び言語条件264に、それぞれ“2”、“1”、“3”、“0(同一言語のみ)”が設定されたキーワード関連定義レコード260が存在するとする。この場合、キーワード“設計書”にキーワード“仕様書”が関連していることになる。しかし、キーワード“specifications”は、キーワード関連定義レコード260の言語条件264が“0(同一言語のみ)”となっているため、関連するキーワードとみなさない。
なお、キーワード辞書ファイル25とキーワード関連定義ファイル26を用いた仮想分類定義レコード230の動的作成(仮想分類動的生成機能)については、図22と図23を参照しつつ後で説明する。
以上で第1の実施形態のファイル検索システムの構成・機能の説明を終了し、以下、各部の処理のフローチャートを参照しつつ、第1の実施形態のファイル検索システムの動作を説明する。
【0055】
<各プログラムの動作>
図8は、インデックス1作成部11の動作の一例を示すフローチャートである。
インデックス1作成部11は、処理を開始すると、検索対象ファイル43のインデックス1レコード210を作成等する(S801)。
具体的には、例えば、ファイル管理部41に、記憶装置2内の所定のファイルに予め記憶されているファイルパス(例えば“/etc/usr1/”)に含まれているファイルを読込、送信するように要求する。そして、ファイル管理部41からファイルを受信すると、取得したファイルのファイルパス(例えば“/etc/usr1/作業報告1.doc”)がファイルパス212に設定されているインデックス1レコード210が存在するか判定する。そして、存在しない場合は、取得したファイルからキーワードを抽出し、当該ファイルのファイル名、ファイルパス、アクセス権限及び抽出したキーワードを、それぞれファイル名211、ファイルパス212、アクセス権限213及びキーワード214に設定して、インデックス1レコード210を追加する。一方、存在する場合は、当該インデックス1レコード210(以下「更新対象レコード」という。)のアクセス権限213及びキーワード214を更新する。
【0056】
以上の処理を、予め設定されているファイルパス配下のファイル全てについて実行した後、新たに作成したインデックス1レコード210以外のレコードで、更新対象レコードにならなかったインデックス1レコード210が存在する場合、当該インデックス1レコード210を削除する。
なお、インデックス1レコード210を作成等する方法は、上述の方法に限られない。例えば、処理開始後、インデックス1ファイル21を削除し、ファイル管理部41に、予め設定されているファイルパス(例えば“/etc/usr1/”)に含まれているファイルを読込、送信するように要求し、受信したファイルについて、インデックス1レコード210を作成してもよい。
【0057】
以上で説明したように、第1の実施形態においては、インデックス1作成部11が処理を行うたびに、処理時点の検索対象ファイル43と1対1に対応するインデックス1レコード210が作成される。
【0058】
図9は、インデックス2作成部12の動作の一例を示すフローチャートである。
インデックス2作成部12は、処理を開始すると、検索対象ファイル43のインデックス2レコード220を作成等する(S901)。具体的な処理内容は、インデックス1作成部11と同様なので、以下、異なる点のみを説明する。
まず、前述したように、インデックス2作成部12の検索対象ファイル43は、インデックス1作成部11の検索対象ファイル43と同一である必要はない。例えば、記憶装置42に記憶されている全てのファイルを、インデックス1作成部11の検索対象ファイル43とし、記憶装置42に記憶されているファイルの一部(例えばクライアント3の操作者が通常参照するファイルのみ)をインデックス2作成部12の検索対象ファイル43とすることができる。このようにすることで、後述する検索処理において、通常はインデックス2ファイル22のみを検索することで検索結果として表示されるファイルの数を抑え、一方、必要に応じてインデックス1ファイル21を検索することで、普段は参照しないファイルも検索結果として表示させることができる。
【0059】
逆に、記憶装置42に記憶されているファイルの一部(例えば論文、判決文等、語句が比較的厳密に使用されている文書ファイル)をインデックス1作成部11の検索対象ファイル43とし、記憶装置42に記憶されている全てのファイルを、インデックス2作成部12の検索対象ファイル43とすることができる。
このようにすることで、定義をあいまいにしたまま使用されている語句等が、インデックス1レコード210のキーワード214に抽出される可能性が減少する。当該語句等が検索キーワードに一致して当該ファイルが検索結果として表示されても、実際には求めるファイルではない可能性が比較的高い。このため、インデックス1ファイル21の容量を比較的小さく抑えることができるとともに、後述する検索処理において、キーワードによる全文検索を行った場合に、検索結果として求めるファイルが含まれる可能性を高めることができる。
【0060】
また、以下のようにすることで、インデックス2レコード220の不要な更新を避けることもできる。
例えば、インデックス2レコード220のデータ項目として更新日時を設け、インデックス2レコード220を作成・更新する際には当該処理を行った年月日時分秒を設定する。そして、インデックス2作成部12がインデックス2レコード220を更新しようとする際に、インデックス2レコード220の更新日時と検索対象ファイル43の更新日時(一般にファイル管理部41が、ファイルの属性情報の一つとして設定する)を比較して、検索対象ファイル43の更新日時の方が新しければ、インデックス2レコード220を作成した後での当該検索対象ファイル43の内容が変わっている可能性があるので、更新対象とする。
また、インデックス2レコード220のデータ項目としてアクセス権限を設けた場合には、インデックス2作成部12がインデックス2レコード220を更新しようとする際に、インデックス2レコード220のアクセス権限と検索対象ファイル43のアクセス権限を比較し、異なっていれば更新対象とすればよい。
【0061】
さらに、インデックス2作成部12は、インデックス2レコード220を更新する際、標準メタデータ222の設定内容が、前述したメタデータ変更プログラムを使用して直接変更されているか判定し、直接変更されている場合は、標準メタデータ222は更新しない。このようにするためには、例えば、標準メタデータ222のデータ項目として「直接変更有無」を設け、インデックス2レコード220を作成する際にはデータ項目「直接変更有無」に“直接変更なし”を設定し、メタデータ変更プログラムを使用して直接変更した場合に、データ項目「直接変更有無」に“直接変更有り”を設定するようにすればよい。なお、インデックス2作成部12は、ユーザ定義メタデータ223を更新しない。
【0062】
標準メタデータ222のデータ項目として、さらに「直接変更後ファイル更新有無」を設けてもよい。インデックス2作成部12がインデックス2レコード220を作成するとき、データ項目「直接変更後ファイル更新有無」に“更新なし”を設定する。そして、インデックス2作成部12がインデックス2レコード220を更新するとき、当該インデックス2レコード220がメタデータ変更プログラムを使用して直接変更されているかどうかを判定し、直接変更されていて、かつ対応する検索対象ファイル43の内容が変わっている場合、データ項目「直接変更後ファイル更新有無」に“更新有り”を設定する。
このようにすることで、クライアント3の操作者がメタデータ変更プログラムを使用して当該インデックス2レコード220を参照する際や、後述するようにファイル検索結果を表示する際に、標準メタデータ222の直接変更を行った後で、表示装置33に表示されるファイルの内容が更新されていることを知らせることができ、クライアント3の操作者は、再度標準メタデータ222の直接変更を行う必要があるかどうか判断することができる。
以上で説明したように、第1の実施形態においては、インデックス2作成部12が処理を行うたびに、処理時点の検索対象ファイル43と1対1に対応するインデックス2レコード220が作成される。
【0063】
図10は、検索要求部31の動作の一例を示すフローチャートである。
検索要求部31は、クライアント3の操作者が入力装置32を使用して起動する。
検索要求部31は、起動されると、ログイン処理を行う(S1001)。具体的には、表示装置33に図13のようなログイン画面を表示し、クライアント3の操作者が入力装置32を使用して利用者IDおよびパスワードを入力し、「実行」ボタンを押すと、入力された利用者IDとパスワードが適切か否か、および検索対象ファイル43に対する利用者IDのアクセス権限を判定する。なお、上記のようなログイン処理自体は周知技術であるので、これ以上の説明は省略する。
【0064】
検索要求部31は、入力された利用者IDとパスワードが適切であると判定した場合、表示装置33に検索要求画面を表示する(S1002)。図14に検索要求画面(D1401)の表示例を示す。図14に示すように、検索要求画面は、仮想分類表示部(D1402)、物理フォルダ表示部(D1403)、検索条件部(D1404)、検索結果部(D1405)および「検索」、「メタデータ編集」、「終了」の各ボタンから構成されている。
【0065】
検索要求部31は、検索要求画面(D1401)を表示する際に、検索部13の仮想分類機能を利用して、仮想分類表示部(D1402)を表示する。具体的には、検索要求部31は検索部13に、仮想分類の初期表示内容を送信するように要求し、検索部13は、仮想分類定義レコード230のうち、上位仮想分類ID234に“0(上位なし)”が設定されているレコード(すなわち最上位の仮想分類定義レコード230)の表示名232を、検索要求部31に送信し、検索要求部31は、受信した表示名を仮想分類表示部(D1402)に表示する。また、検索要求部31は、各表示名232の前に、「+」を四角く囲んだ図形を表示する。後述するように、クライアント3の操作者は、この図形をマウスでクリックする等の操作を行うことで、当該仮想分類に含まれている他の仮想分類やファイルを表示することができる。
【0066】
例えば、仮想分類ID231、表示名232、条件233及び上位仮想分類ID234に、それぞれ“1”、“タイトル”、“条件なし”、“0(上位なし)”が設定された仮想分類定義レコード230と、それぞれ“2”、“作業報告”、“タイトル222aに「作業報告書」が含まれる”、“1”が設定された仮想分類定義レコード230が存在するとする。この場合、仮想分類表示部(D1402)のタイトルの前に表示された「+」を四角く囲んだ図形をクリックすると、図15のD1402に示すように、あたかも“タイトル”という名前のフォルダ内に“作業報告”という名前のフォルダが含まれているかのようなツリー表示がなされる。
更に、タイトル222aに”作業報告書“が含まれているインデックス2レコード220が4レコード存在し、それぞれのファイル名221bが”作業報告1.doc“、”作業報告2.doc“、”作業報告3.doc“及び”報告書.doc“だった場合、作業報告前に表示された「+」を四角く囲んだ図形をクリックすると、図15の仮想分類表示部(D1402)に示すように、“作業報告”という名前のフォルダ内に、”作業報告1.doc“、”作業報告2.doc“、”作業報告3.doc“及び”報告書.doc“の4つのファイルが含まれているかのようなツリー表示がなされる。
【0067】
また、検索要求部31は、検索要求画面(D1401)を表示する際に、検索部13の物理階層作成機能を利用して、物理フォルダ表示部(D1403)を表示する。具体的には、検索要求部31は検索部13に、物理フォルダの初期表示内容を送信するように要求する。検索部13は、インデックス2レコード220のシステムメタデータ221内のファイルパス221cを参照してフォルダのツリー状階層を作成して、そのツリー状階層を検索要求部31に送信する。検索要求部31は、受信したツリー状階層に含まれるフォルダの名称を物理フォルダ表示部(D1403)に表示する。
また、検索要求部31は、各フォルダの名称の前に、「+」を四角く囲んだ図形を表示する。クライアント3の操作者は、この図形をマウスでクリックする等の操作を行うことで、当該フォルダに含まれている他のフォルダやファイルを表示することができる。
【0068】
なお、検索条件部(D1404)及び検索結果部(D1405)の表示内容は図14に示すとおりであり、検索結果部(D1405)には検索結果は表示されていない。
クライアント3の操作者は入力装置32を使用して検索条件部(D1404)の各項目を入力する。検索条件部(D1404)に入力した項目は検索条件となり、例えば、全文に“現場”、タイトルに“作業報告”を入力した場合、インデックス1レコード210のキーワード214に“現場”が設定されており、かつ、インデックス2レコード220のタイトル222aに“作業報告”が設定されているファイルが検索され、検索結果部(D1405)に、検索結果がスクロール表示される。
【0069】
検索条件部(D1404)の各項目については、さまざまな入力方法を可能にすることで検索の利便性を向上させることができる。例えば、全文に“not現場”、“現場 and 作業”等の論理式入力を可能にすればよい。なお、検索条件部(D1404)の入力項目は、図示した項目に限る必要はなく、例えばアクセス権限、セキュリティランク等、インデックス1ファイル21及びインデックス2ファイル22のデータ項目に合せて決めればよい。
検索要求部31は、検索要求画面表示(S1002)後、検索ボタン、メタデータ編集ボタンまたは終了ボタンが押下されるのを待つ(S1003、S1004)。検索ボタンが押された場合、すなわち検索要求を検知した場合(S1003:YES)、検索処理(S1005、S1006、S1007)を行う。また、終了ボタンが押された場合、すなわち終了要求を検知した場合(S1004:YES)、処理を終了する。
【0070】
なお、図10には示していないが、検索要求部31は、メタデータ編集ボタンが押された場合、メタデータ編集処理を行う。具体的には、検索要求部31は、クライアント3の操作者に編集対象のファイルを指定するように要求し、指定されたファイルの標準メタデータ222及びユーザ定義メタデータ223の、その時点での設定内容を表示する。そして、検索要求部31は、クライアント3の操作者が入力した内容で、標準メタデータ222及びユーザ定義メタデータ223の設定内容を変更する。このとき、前述したように、標準メタデータ222の直接変更後ファイル更新有無に“更新有り”が設定されている場合、表示装置33にその旨のメッセージを表示してもよい。
【0071】
検索要求部31は、検索要求を検知した場合、検索条件部(D1404)の入力内容(検索条件)を、検索部13に送信する(S1005)。例えば、全文に“現場”、タイトルに“作業報告”が入力された場合、“全文=現場 タイトル=作業報告”といった検索条件式を作成し、ログイン画面で入力された利用者IDとともに、検索部13に送信する。ここで、検索条件式は検索部13によって解釈される式であり、検索部13が解釈可能な構文規則等に従って作成すればよい。
検索要求部31は、検索条件式を検索部13に送信した後、検索部13から検索結果を受信するまで待つ(S1006)。検索結果を受信する(S1006:YES)と、検索結果を検索要求画面の検索結果部(D1405)に表示し(S1007)、再び、検索ボタン等が押下されるのを待つ(S1003、S1004)。
【0072】
図11は、検索部13の動作の一例を示すフローチャートである。
ファイル検索サーバ1がクライアント3からの検索要求を受信すると、検索部13が起動される。
検索部13は、まず、検索要求に含まれる検索条件式を解析し、メタデータ検索を行うか、すなわち、インデックス2ファイル22のシステムメタデータ221等を参照して検索する必要があるか判定する(S1101)。例えば、検索条件式が“全文=現場 タイトル=作業報告”である場合、標準メタデータ222のタイトル222aを参照して検索する必要があると判定する。また、例えば、検索条件式が“全文=現場”である場合、メタデータ検索を行なわず、全文検索のみ行うと判定する。
検索部13は、メタデータ検索を行うと判定した場合(S1101:YES)、インデックス2ファイル22による検索を行う(S1102)。具体的には、検索条件式から、システムメタデータ221等に関する条件を抽出し、条件に合致するインデックス2レコード220を選択する(以下「メタデータ合致レコード」という。)。例えば、検索条件式が“全文=現場 タイトル=作業報告”である場合、標準メタデータ222のタイトル222aに“作業報告”が設定されているインデックス2レコード220を選択する。
【0073】
検索部13は、メタデータ検索(S1102)を行った後、又はメタデータ検索を行わないと判定した場合(S1101:NO)、全文検索を行うか、すなわち、インデックス1ファイル21のキーワード214を参照して検索する必要があるか判定する(S1103)。例えば、検索条件式が“全文=現場 タイトル=作業報告”または“全文=現場”である場合、キーワード214を参照して検索する必要があると判定する。
検索部13は、全文検索を行うと判定した場合(S1103:YES)、インデックス1ファイル21による全文検索を行う(S1104)。具体的には、検索部13は、検索条件式から、全文検索の条件を抽出し、メタデータ検索(S1102)を行った場合には、メタデータ合致レコードのファイルパス221c、及び検索要求部31から受信した利用者IDとともに、インデックス1検索部14に渡す。また、検索部13は、メタデータ検索を行なわなかった場合には、インデックス2ファイル22の全てのインデックス2レコード220をメタデータ合致レコードとして選択し、当該レコードのファイルパス221cを、全文検索の条件及び検索要求部31から受信した利用者IDとともに、インデックス1検索部14に渡す。
インデックス1検索部14は、後述するように、受け取った全文検索の条件等を参照して検索を行い、最終的に検索結果とすべきインデックス2レコード220(以下「キーワード合致レコード」という。)のファイルパス221cを検索部13に渡す。
【0074】
検索部13は、全文検索を行わないと判定した場合(S1103:NO)は、メタデータ合致レコードを検索要求部31への送信対象とし、一方、全文検索を実行(S1104)した場合は、キーワード合致レコードを検索要求部31への送信対象とする。検索部13は、送信対象としたインデックス2レコード220の各データ項目を検索要求部31に送信する(S1105)。
検索部13は、送信後、処理を終了する。
【0075】
図12は、インデックス1検索部14の動作の一例を示すフローチャートである。
インデックス1検索部14は、例えば、各メタデータ合致レコードに対応するインデックス1レコード210を検索する(S1201)。具体的には、インデックス1検索部14は、検索部13から受け取ったメタデータ合致レコードのファイルパス221c全てにつき、ファイルパス212に同一値が設定されているインデックス1レコード210を参照し、当該レコードのアクセス権限213により、検索部13から受信した利用者IDがアクセス権限を有するか判定する。そして、アクセス権限を有すると判定した場合、当該レコードのキーワード214が、検索部13から受信した全文検索の条件を満足するか判定する。
インデックス1検索部14は、全文検索の条件を満足すると判定されたファイルパス221cを検索部13に渡し(S1202)、処理を終了する。
【0076】
ところで、インデックス1検索部14を実現するプログラムとして、既に存在するさまざまな全文検索プログラムを使用するような場合、インデックス1作成部11も当該インデックス1検索部14に対応したプログラムを使用することになる。その場合、一般的には、インデックス1ファイル21に係わる検索対象ファイル43とインデックス2ファイル22に係わる検索対象ファイル43が異なり、インデックス2ファイル22とは関係なく全文検索の条件によりインデックス1ファイル21が検索されることになる。そうすると、例えば、インデックス2ファイル22に係わる検索対象ファイル43として、クライアント3の操作者が普段よく使用するファイルを設定した場合も、クライアント3の操作者が全文検索のみを要求すると、インデックス1ファイル21が検索されてしまうので、普段よく使用しないファイルも検索結果として表示されることになる。
【0077】
このように検索されるのが好ましい場合もあるが、好ましくない場合もある。そこで、全文検索のみを行う場合に、インデックス2ファイル22が作成された検索対象ファイル43のみを検索対象とするか(すなわち、メタデータ作成済みファイルのみを検索対象とするか)、それとも、インデックス2ファイル22に係わらずインデックス1ファイル21の検索対象ファイル43全てを検索対象とするか(すなわち、メタデータ未作成のファイルも検索対象とするか)を、検索要求画面で指定できるようにしてもよい。
【0078】
このようにした場合、メタデータ未作成のファイルも検索対象とするように指定された場合は、インデックス1検索部14はインデックス2ファイル22とは関係なく全文検索の条件によりインデックス1ファイル21を検索する。一方、メタデータ作成済みファイルのみを検索対象とするように指定された場合は、検索部13は、メタデータ検索が要求されていない場合(図11のS1101でNOの場合)も、インデックス2ファイル22の全てのインデックス2レコード220をメタデータ合致レコードとして選択し、当該レコードのファイルパス221cを、全文検索の条件及び検索要求部31から受信した利用者IDとともに、インデックス1検索部14に渡す。
【0079】
<仮想分類動的生成機能についての補足説明>
図22は、仮想分類動的生成における検索部13等の動作の一例を示すフローチャートである。
検索部13は、まず、検索要求に含まれる検索条件式を解析し、メタデータ検索かどうかを判定する(S1301)。
検索部13は、メタデータ検索を行うと判定した場合(S1301:YES)、キーワード辞書ファイル25の検索を行う(S1302)。具体的には、メタデータ検索のキーワードがキーワード辞書ファイル25のキーワード253に設定されているキーワード辞書レコード250を選択する(以下「キーワード辞書合致レコード」という。)。例えば、検索条件式が“タイトル=設計書”である場合、キーワード辞書ファイル25のキーワード253に“設計書”が設定されているキーワード辞書レコード250を選択する。
検索部13は、メタデータ検索キーワードがキーワード辞書ファイル25に存在する場合(S1303:YES)、キーワード辞書合致レコードのキーワードID251で、キーワード関連定義ファイル26の検索を行う(S1304)。具体的には、キーワード辞書合致レコードのキーワードID251が“1”の場合、キーワード関連定義ファイル26のキーワードID261に“1”が設定されているキーワード関連定義レコード260を選択する(以下「キーワード関連合致レコード」という。)。
【0080】
検索部13は、キーワード辞書合致レコードのキーワードID251がキーワード関連定義ファイル26に存在する場合(S1305:YES)、キーワード関連合致レコードの関連キーワードID262に設定されているキーワードIDの数分、関連キーワードID262に設定されているキーワードIDでキーワード辞書ファイル25を検索する(S1306)。具体的には、キーワード関連合致レコードの関連キーワードID262に“2, 3, 4”が設定されている場合、キーワード辞書ファイル25のキーワードID251に“2”または“3”または“4”が設定されているキーワード辞書レコード250を選択する(以下「関連キーワード辞書合致レコード」という。)。
さらに、図示していないが、キーワード関連合致レコードの最大キーワード長263に設定されている値が“1”以上の場合、関連キーワード辞書合致レコードを関連キーワード辞書合致レコードのキーワードの長さが最大キーワード長263の値以下のレコードのみに絞り込む。
さらに、図示していないが、キーワード関連合致レコードの言語条件264が“0(同一言語のみ)”に設定されている場合、関連キーワード辞書合致レコードを関連キーワード辞書合致レコードの言語コード252とキーワード辞書合致レコードの言語コード252が同一のレコードのみに絞り込む。
【0081】
検索部13は、メタデータ検索キーワードと、上述した方法により選択されて絞り込まれたキーワード辞書レコード250から仮想分類定義レコードを作成する(S1307)。
具体的には、検索部13は、メタデータ検索キーワードを仮想分類定義レコード230の表示名232に設定して、最上位の仮想分類定義レコード230を作成する。例えば、メタデータ検索条件が“タイトル=設計書”である場合、仮想分類ID231、表示名232、条件233及び上位仮想分類ID234に、それぞれ“1”、“設計書”、“条件なし”、“0(上位なし)”を設定し仮想分類定義レコード230を作成する(以下「動的生成ルート仮想分類レコード」という。)。
検索部13は、次に、関連キーワード辞書合致レコードから動的生成ルート仮想分類レコードの下位の仮想分類定義レコード230を作成する。例えば、メタデータ検索条件が“タイトル=設計書”で、メタデータ検索キーワード“設計書”に関連するキーワードが“仕様書”と“定義書”である場合、仮想分類ID231、表示名232、条件233及び上位仮想分類ID234に、それぞれ“2”、“仕様書”、“タイトル=仕様書”、“1”を設定した仮想分類定義レコード230と、それぞれ“3”、“定義書”、“タイトル=定義書”、“1”を設定した仮想分類定義レコード230を作成する(以下「動的生成仮想分類レコード」という。)。このとき、条件233は、「メタデータ検索条件の項目(“タイトル”)=関連するキーワード(“仕様書”もしくは“定義書”)」という条件を作成し設定する。また、上位仮想分類ID234には、動的生成ルート仮想分類レコードの仮想分類ID231の値“1”を設定する。
【0082】
検索部13は、動的生成ルート仮想分類レコードと動的生成仮想分類レコードとに基づいて仮想分類定義を作成する。仮想分類定義の作成が終了すると、検索部13は、作成した仮想分類定義を検索要求部31に送信する(S1308)。なお、検索部13は、動的生成ルート仮想分類レコードと動的生成仮想分類レコードを含む仮想分類定義ファイルを記憶装置2に記憶させず、ファイル検索サーバ1のメモリに記憶するのみとしてもよい。
検索要求部31は、受信した仮想分類定義を、仮想分類機能と同様に図23の仮想分類表示部(D1402)にツリー表示する。
【0083】
<メタデータ検索と全文検索の両方を行う場合の処理についての補足説明>
第1の実施形態のファイル検索システムでは、上述したとおり、クライアント3の操作者が全文検索を要求した場合にのみ、インデックス1ファイル21を利用して検索を行う。ところで、一般に全文検索を行わない場合に比べて、全文検索に要する処理時間は長くなるので、クライアント3の操作者が検索要求してから検索結果が表示されるまでの待ち時間が長くなる。そこで、クライアント3の操作者が思いがけずに長時間待たされることを防止することが望ましい。
以下、メタデータ検索と全文検索の両方を行う場合(以下「複合検索」という。)において、上記の対策を行う場合の検索部13等の動作について説明する。
【0084】
図16は、複合検索における検索部13等の動作の一例を示すフローチャートである。
図16のS1650〜S1655は、複合検索時に、図11のS1104〜S1105において検索部13が行う処理の詳細を示しており、S1601〜S1607は、当該処理に対応して検索要求部31が図10のS1006〜S1007において行う処理の詳細を示している。
【0085】
検索部13は、検索結果件数、すなわちメタデータ検索で検索されたメタデータ合致レコードのレコード数を、予め定めた所定件数(以下「最大検索件数」という。)と比較する(S1650)。
そして、メタデータ合致レコードのレコード数、すなわち全文検索対象数が最大検索件数より大きい場合(S1650:YES)には、検索要求部31に、処理続行有無を確認するメッセージを送信し(S1651)、検索要求部31から検索処理を続行するか否かの確認結果を受信するまで待つ(S1652)。
【0086】
検索要求部31は、検索部13から検索処理を続行するか否かを確認するメッセージを受信すると、当該メッセージを表示装置33に表示し、クライアント3の操作者に検索処理を続行するか否かの応答を要求する(S1601)。具体的には、例えば、ポップアップ画面に、確認メッセージと、「検索続行」及び「中止」のボタンを表示し、いずれかのボタンがクリックされるまで待てばよい。
検索要求部31は、クライアント3の操作者が「中止」のボタンをクリックする等により検索中止を指示した場合(S1602:NO)、検索部13に「検索中止」指示を送信して、処理を終了する(S1603)。従って、検索要求部31は、検索結果を表示することなく、再び、検索要求画面で検索ボタン等が押下されるのを待つ(図10のS1003、S1004)。
検索要求部31は、クライアント3の操作者が「検索続行」のボタンをクリックする等により検索続行を指示した場合(S1602でYESの場合)、検索部13に「検索続行」指示を送信し、図には明示していないが、検索部13から検索結果を受信するまで待つ。
【0087】
検索部13は、検索要求部31から「検索中止」指示又は「検索続行」指示を受信すると、受信した指示によって処理を変える(S1652)。すなわち、「検索中止」指示を受信した場合は(S1652:NO)処理を終了する。一方、「検索続行」指示を受信した場合は(S1652:YES)、メタデータ合致レコードのうち最大検索件数分のレコードのファイルパス221c、全文検索の条件及び検索部31から受信した利用者IDをインデックス1検索部14に渡して、全文検索を実行させる(S1653)。
なお、全文検索対象数が最大検索件数以下の場合(S1650:NO)には、検索要求部31に、処理続行有無を確認するメッセージを送信することなく、メタデータ合致レコードのファイルパス221c、全文検索の条件及び検索要求部31から受信した利用者IDをインデックス1検索部14に送信して、全文検索を実行させる(S1653)。
【0088】
全文検索が終了すると、検索部13は、キーワード合致レコードの各データ項目を検索要求部31に送信する(S1654)。このとき、全てのメタデータ合致レコードについて全文検索を実行したか、それとも全文検索未実行のメタデータ合致レコードが残っているかの識別も送信する。
検索部13は、次に、検索結果部(D1405)に追加表示が可能かどうかを判定する(S1655)。具体的には、メタデータ合致レコードに全文検索未実行のレコードが残っており、かつ検索要求部31に送信した検索結果の累計値が、検索要求画面(D1401)の検索結果部(D1405)に表示可能な件数として予め定めた件数(以下「最大表示件数」という。)より小さい場合(S1655:YES)には、再び、検索要求部31から検索処理を続行するか否かの確認結果を受信するまで待つ(S1652)。一方、検索結果部(D1405)に追加表示できない場合(S1655:NO)には、検索部13は処理を終了する。
【0089】
検索要求部31は、検索部13から検索結果を受信すると、検索結果部(D1405)に検索結果を表示する(S1605)。なお、前述したように、検索結果部(D1405)に追加表示が可能な限り、メタデータ合致レコードを対象とした全文検索が繰り返し実行される。従って、検索結果は検索結果部(D1405)に追加表示する。例えば、1回目の全文検索の結果が3件で、2回目の全文検索の結果が4件の場合、検索結果部(D1405)には7件の検索結果が表示される。
【0090】
検索要求部31は、次に、全文検索未実行のメタデータ合致レコードが残っており(前述したように、検索部13から、全てのメタデータ合致レコードについて全文検索を実行したか、それとも全文検索未実行のメタデータ合致レコードが残っているかの識別が送信される)、かつ検索結果部(D1405)に追加表示が可能かどうか判定する(S1606)。検索要求部31は、全文検索未実行のメタデータ合致レコードが残っており、かつ検索結果部(D1405)に追加表示が可能な場合(S1606:YES)には、処理続行有無を確認するメッセージを表示装置33に表示し(S1607)、再び、クライアント3の操作者に検索処理を続行するか否かの応答を要求する(S1602)。
【0091】
一方、検索要求部31は、全てのメタデータ合致レコードについて全文検索を実行したか、又は検索結果部(D1405)に追加表示ができない場合(S1606:NO)には、処理を終了する。従って、検索要求部31は、検索結果部(D1405)にそれまでの検索結果を表示して、再び、検索ボタン等が押下されるのを待つ(図10のS1003、S1004)。
【0092】
以上のように、全文検索対象数が最大検索件数より大きい場合に、クライアント3の操作者に検索処理を続行するか否かを問い合わせ、「検索続行」が指示された場合に全文検索する。従って、クライアント3の操作者は、検索時間が長くなりそうな場合には、いったん検索処理を中止し、例えば、メタデータの検索条件をさらに絞り込んで検索を行うことができる。
また、全文検索は最大検索件数単位で繰り返し行われ、全文検索を行うたびに、検索結果が追加表示されるので、クライアント3の操作者は、比較的短時間のうちに、検索結果を次々と確認することができる。
【0093】
<関連検索についての補足説明>
図17は、検索要求画面(D1401)に含まれる検索結果部(D1405)の表示内容を例示する。
図17においては、ファイル名とファイルパスが表示されているが、この他に、タイトル、文書記載日等、インデックス2レコード220等のデータ項目を表示してもよいし、例えば、インデックス2レコード220に検索対象ファイル43の内容の一部を設定しておき、これを表示してもよい。
また、図17において点線で囲った関連検索指示部(D1701)には、関連定義レコード240の表示名242に設定された名称が表示される。図17の例においては、表示名242にそれぞれ“タイトル”と“記載日付”が設定された2つの関連定義レコード240が存在しており、この表示名242が表示されている。
【0094】
この状態で、クライアント3の操作者が、例えば“タイトル”と表示された部分をクリックすると、検索要求部31は、検索部13に、“タイトル”に係わる関連検索を行うように要求する。具体的には、表示装置33には表示されていないが、検索結果とともに検索部13から受信した、当該検索結果ファイルに係わるファイルID221a及び“タイトル”に係わる関連定義ID241を、関連検索要求とともに検索部13に送信する。
検索部13は関連検索要求を受信すると、受信した関連定義ID241が設定された関連定義レコード240の条件243を参照し、条件243に設定されている条件に従って、インデックス2レコード220を検索し、検索結果を検索要求部31に送信する。
【0095】
例えば、関連定義ID241、表示名242及び条件243に、それぞれ“1”、“タイトル”、“タイトル222aが当該検索結果と等しい”が設定された関連定義レコード240が存在し、タイトル222aに”作業報告書“が含まれているインデックス2レコード220が4レコード存在し、それぞれのファイル名221bが”作業報告1.doc“、”作業報告2.doc“、”作業報告3.doc“及び”報告書.doc“であり、表示装置33に検索結果として”作業報告1.doc“が表示されているとする。この場合、関連検索指示部(D1701)には、”タイトル“の文字が表示される。クライアント3の操作者が、”タイトル“の文字をクリックすると、検索要求部31は、検索部13に、”作業報告1.doc“のファイルID及び関連定義ID(“1”)を送信する。
すると、検索部13は、関連定義ID241が“1”である関連定義レコード240の条件243を参照し、“タイトル222aが当該検索結果と等しい”が設定されているので、受信したファイルIDによって、”作業報告1.doc“のタイトル222aを取得し、”作業報告1.doc“と同じく、タイトル222aに”作業報告書“が含まれている”作業報告2.doc“、”作業報告3.doc“及び”報告書.doc“の3つのファイルを検索し、検索結果(例えば、ファイル名とファイルパス)を検索要求部31に送信する。そして、検索要求部31は、図18に示すように、検索結果部(D1405)に関連検索結果を表示する。
なお、関連検索結果の表示件数には特に制限を設けないようにしてもよいし、例えば、最大5件だけ表示し、5件を超える場合は、別画面に表示するようにしてもよい。
【0096】
<ファイル検索システムのその他の実施形態>
本発明に係わるファイル検索システムは、第1の実施形態に限られず、さまざまな実施形態とすることができる。その1例を以下に説明する。
【0097】
図19は、本発明の第2の実施形態に係るファイル検索システムの構成の一例を示す。
第2の実施形態においては、第1の実施形態と異なり、ファイル検索サーバ1は、インデックス1作成部11及びインデックス1検索部14を備えていない。
そのかわり、ファイル検索サーバ5が、通信回線9によって、クライアント3、ファイルサーバ4、WEBサーバ7及びファイル検索サーバ1と通信可能に接続されている。ファイル検索サーバ5は、コンピュータであり、図示しないCPUおよび主記憶装置、記憶装置6を備えている。ファイル検索サーバ5の主記憶装置には、所定のプログラムが記憶されている。CPUがその命令コードを実行することにより、インデックス1作成部11、インデックス1検索部14の各機能が実現される。また、インデックス1ファイル21はファイル検索サーバ1の記憶装置2には記憶されず、ファイル検索サーバ5の記憶装置6に記憶される。
第2の実施形態と第1の実施形態の構成上の大きな相違点は以上のとおりである。
【0098】
第2の実施形態のファイル検索システムにおいては、クライアント3、ファイルサーバ4、WEBサーバ7、ファイル検索サーバ1及びファイル検索サーバ5が、通信回線9によって相互に通信可能に接続されている。このような構成により、例えば、ある組織がデータセンタに設置されたファイルサーバ4にファイルを記憶させているとき、ファイルサーバ4に記憶された検索対象ファイル43について、インデックス2ファイル22、仮想分類定義ファイル23、関連定義ファイル24、キーワード辞書ファイル25及びキーワード関連定義ファイル26を作成することで、メタデータ検索、仮想分類表示、物理フォルダ表示及び関連検索を可能にしつつ、当該組織が管理していないWEBサーバ7の記憶装置71に記憶された検索対象ファイル72については、ファイル検索サーバ5のインデックス1作成部11が、いわゆるWEBクローリングにより、例えばApache(Apacheは登録商標)等のWEBサーバプログラムを介して、インデックス1ファイル21を作成して、全文検索を可能にすることができる。
【0099】
また、第2の実施形態においては、ファイル検索サーバ5は、ファイル検索を行おうとする組織が設置する必要はなく、世の中に存在しているファイル検索サーバの機能を使用して全文検索等を行うことができるので、柔軟性・拡張性の高い検索システムを構築することができる。
【0100】
以上説明したように、本発明によれば、全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索することができる。
例えば、組織内において作成された文書等のファイルについては、インデックス2ファイル22を作成しておき、メタデータ検索を行えばよい。メタデータ検索キーワードを用いてインデックス2ファイル22を検索することで検索結果として表示されるファイルの数を抑えることができる。たとえ、ファイルを間違ったフォルダに記憶したような場合でも、ファイルの使用目的、タイトル等が記憶された小容量のインデックス2ファイル22があれば、当該ファイルを検索できる場合が多い。
一方、例えば、特許文献、技術論文等、組織外部から入手したファイルや、WEBサーバなど、組織外部のサーバに存在しているファイルについては、入手した時点では意図しなかった用途で参照することも多く、キーワードによる全文検索が必要な場合も多い。このようなファイルについてはインデックス1ファイル21を作成しておき、全文検索を行えばよい。
【符号の説明】
【0101】
1…ファイル検索サーバ、11…インデックス1作成部、12…インデックス2作成部、13…検索部、14…インデックス1検索部、2…記憶装置、21…インデックス1ファイル、22…インデックス2ファイル、23…仮想分類定義ファイル、24…関連定義ファイル、25…キーワード辞書ファイル、26…キーワード関連定義ファイル、3…クライアント、31…検索要求部、32…入力装置、33…表示装置、4…ファイルサーバ、41…ファイル管理部、42…記憶装置、43…検索対象ファイル、5…ファイル検索サーバ、6…記憶装置、7…WEBサーバ、71…記憶装置、72…検索対象ファイル、9…通信回線
【技術分野】
【0001】
本発明は、検索対象のファイルについて予めインデックスファイルを作成し、インデックスファイルを参照してファイルを検索するファイル検索装置およびファイル検索プログラムに関する。
【背景技術】
【0002】
近年、情報のデジタル化が急速に進展している。かつては、銀行の口座や市町村の住民票等、企業・官公庁等のコンピュータシステムが基幹業務を実行するときに参照するファイルを、データベース(Data Base)等に記憶することがデジタル化の中心であった。
【0003】
一方、現在では、企業等の組織において日常業務で作成される各種の書類が、各従業員のクライアントPC(Personal Computer)に文書ファイルとして記憶され、電子メールの添付文書として他のクライアントPCに送信され、あるいは、組織全体の共有情報としてファイルサーバに記憶される。そして、ファイルサーバに記憶された文書ファイルは、さまざまな従業員により参照され、時にはクライアントPCに複製され、更新される。
このようにして、多量の文書ファイルがさまざまなコンピュータに分散記憶されることにより、組織内に、重複あるいは類似した多数の文書ファイルが存在することになる。また、各コンピュータの記憶容量も増大し続けている。
【0004】
一方、組織内において、例えば、既に退職した従業員がかつて作成した文書ファイルが必要になる等、記憶場所が不明な文書ファイルを参照したい場合が多々生ずる。このような場合、文書ファイル内に含まれているはずのキーワードによる全文検索等によって文書ファイルを検索するという方法が広く行われている。
ただし、組織内の全てのコンピュータから文書ファイルを検索しようとすると、各従業員のクライアントPCにも全ての従業員からのアクセスを許可する必要があり、セキュリティ上好ましくない。このため、組織全体で共有すべき文書ファイルについては所定のファイルサーバに記憶しておくということが一般に行われている。
【0005】
しかし、文書ファイルを所定のいくつかのファイルサーバに記憶させたとしても、文書ファイルが必要になるたびにファイルサーバに記憶されている全ての文書ファイルを検索しようとすると、ファイルIO(Input Output)等を行うために膨大な時間を必要とする。
そこで、特許文献1に開示されているファイル検索装置は、ファイルサーバに記憶されているファイルについて、記憶場所やキーワード等、検索に使用するための比較的小容量の情報(インデックス情報)をインデックスファイルとして記憶する。すなわち、このファイル検索装置では、インデックスファイルを作成することで、検索時に、複数ファイルについてのインデックス情報を1回のファイルIOで取得することが可能となり、各ファイルへのファイルIOを不要とすることができる。この結果、ファイル検索時のレスポンスタイムを短くすることができるとともに、ファイルサーバの負荷を軽減することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−162545号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に開示されているファイル検索装置によってファイル検索を行うためには、検索対象としたい全てのファイルについて、インデックスファイルを作成する必要がある。
インデックス情報の記憶容量は、ファイル自体と比べれば比較的小さい。しかし、キーワードによる全文検索を行うことができるようにするためには、ファイルに含まれるキーワードを解析してインデックス情報に記憶しておく必要がある。このため、ファイルに含まれるキーワードの数が多くなれば、それだけ大きな容量を必要とする。従って、検索対象としたいファイルの数が増えるほど、インデックスファイルの記憶容量は大きくなっていく。
【0008】
ここで、例えば組織内におけるファイル検索を検討すると、ファイルを共有のファイルサーバに記憶する場合であっても、部署ごとにアクセス可能なフォルダ等が限定されており、当該限定されたフォルダ等の配下にファイルを記憶し、検索する場合が多い。このような場合、フォルダに、例えば“作業報告書用フォルダ”といったような名称を付けておき、当該フォルダ内には当該名称に合致したファイルを記憶しておくという方法、すなわちフォルダによってファイルを分類するという方法をとる場合が多い。そして、このようにした場合、フォルダのツリー構造を手繰っていくことで必要なファイルが検索できるので、キーワードによる全文検索を必要とすることはまれである。
【0009】
一方、例えば、特許文献、技術論文等、組織外部から入手したファイルや、WEBサーバなど、組織外部のサーバに存在しているファイルについては、入手した時点では意図しなかった用途で参照することも多く、キーワードによる全文検索が必要な場合も多い。
このように組織におけるファイル検索を検討すると、全文検索を可能にすべきファイルと、全文検索が不要なファイルが存在している。これは組織に限ったことではなく、例えば個人的に行うファイル検索についても同じである。
【0010】
本発明の目的は、全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索することができるファイル検索装置およびファイル検索プログラムを提供することである。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明のファイル検索装置は、
記憶装置から、複数の検索対象ファイルからなる第1の検索対象ファイル群と、複数の検索対象ファイルからなる第2の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第1の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス1レコードを所定のタイミングで作成し、当該各インデックス1レコードを含むインデックス1ファイルを記憶するインデックス1ファイル記憶手段と、
前記ファイル取得手段によって取得された第2の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する1以上のメタデータとを有するインデックス2レコードを所定のタイミングで作成し、当該各インデックス2レコードを含むインデックス2ファイルを記憶するインデックス2ファイル記憶手段と、
前記インデックス1ファイルに含まれる各インデックス1レコードを検索し、検索条件を満たすインデックス1レコードを取得するキーワード検索手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索し、検索条件を満たすインデックス2レコードを取得するメタデータ検索手段と、
を備える。
【0012】
好ましくは、本発明のファイル検索装置は、
仮想分類の名称を示す仮想分類表示名と、前記インデックス2ファイルに含まれるいずれかのインデックス2レコードが当該仮想分類に分類される可能性の有無を示すインデックス2レコード有無情報と、前記インデックス2ファイルに含まれる各インデックス2レコードに対応する検索対象ファイルを当該仮想分類に分類するための分類条件と、上位階層の仮想分類の有無を示す上位階層有無情報と、上位階層の仮想分類を識別するための上位階層識別情報とを有する複数の仮想分類定義レコードを含む仮想分類定義ファイルを記憶する仮想分類定義ファイル記憶手段と、
前記仮想分類定義ファイル記憶手段によって記憶された前記仮想分類定義ファイルに含まれる各仮想分類定義レコードのインデックス2レコード有無情報と分類条件と上位階層有無情報と上位階層識別情報とに基づいて、各仮想分類と各インデックス2レコードに対応する検索対象ファイルとによって構成されるツリー状の階層構造を示す仮想分類定義情報を作成する仮想分類定義手段と、
前記仮想分類定義手段によって作成された仮想分類定義情報と、当該仮想分類定義情報によって示されるツリー状の階層構造を構成する各仮想分類の仮想分類表示名および各検索対象ファイルのファイル名とを出力する仮想分類出力手段と、
を備える。
【0013】
好ましくは、本発明のファイル検索装置は、
キーワードと、当該キーワードを識別するためのキーワード識別情報とを有する複数のキーワード辞書レコードを含むキーワード辞書ファイルを記憶するキーワード辞書ファイル記憶手段と、
前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報と、当該キーワード識別情報に関連する1以上の前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報とを有する複数のキーワード関連定義レコードを含むキーワード関連定義ファイルを記憶するキーワード関連定義ファイル記憶手段と、
前記メタデータ検索手段によって検索を行う際に、当該検索の検索条件に含まれるキーワードと、前記キーワード辞書ファイルに含まれる各キーワード辞書レコードのキーワードおよびキーワード識別情報と、前記キーワード関連定義ファイルに含まれる各キーワード関連定義レコードのキーワード識別情報および当該キーワード識別情報に関連する1以上のキーワード識別情報とに基づいて、前記仮想分類定義レコードを生成する仮想分類動的生成手段と、
を備える。
【0014】
好ましくは、本発明のファイル検索装置は、
前記インデックス2レコードが、当該インデックス2レコードを識別するためのインデックス2レコード識別情報を含み、
関連定義レコードを識別するための関連定義レコード識別情報と、関連定義の名称を示す表示名と、インデックス2レコードから検索条件を取得するための検索条件取得条件とを有する1以上の関連定義レコードを含む関連定義ファイルを記憶する関連定義ファイル記憶手段と、
前記関連定義ファイル記憶手段に含まれる各関連定義レコードの関連定義レコード識別情報と表示名とを出力する関連定義情報出力手段と、
前記関連定義情報出力手段によって出力された各関連定義レコード識別情報の中から選択された関連定義レコード識別情報と、インデックス2レコード識別情報とを受け付ける受付手段と、
前記受付手段によって受け付けられたインデックス2レコード識別情報を含むインデックス2レコードから、前記関連定義ファイル記憶手段に含まれる各関連定義レコードの検索条件取得条件に基づいて検索条件を取得する検索条件取得手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索して、前記検索条件取得手段によって取得された検索条件を満たすインデックス2レコードを取得し、取得した当該インデックス2レコードに含まれるファイル名とファイルパスを出力する関連検索手段と、
を備える。
【0015】
また、本発明のファイル検索プログラムは、
コンピュータを、
記憶装置から、複数の検索対象ファイルからなる第1の検索対象ファイル群と、複数の検索対象ファイルからなる第2の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第1の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス1レコードを所定のタイミングで作成し、当該各インデックス1レコードを含むインデックス1ファイルを記憶するインデックス1ファイル記憶手段と、
前記ファイル取得手段によって取得された第2の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する1以上のメタデータとを有するインデックス2レコードを所定のタイミングで作成し、当該各インデックス2レコードを含むインデックス2ファイルを記憶するインデックス2ファイル記憶手段と、
前記インデックス1ファイルに含まれる各インデックス1レコードを検索し、検索条件を満たすインデックス1レコードを取得するキーワード検索手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索し、検索条件を満たすインデックス2レコードを取得するメタデータ検索手段と、
して機能させる。
【発明の効果】
【0016】
本発明によれば、全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索することができる。
【図面の簡単な説明】
【0017】
【図1】第1の実施形態に係るファイル検索システムの構成の一例を示す図である。
【図2】インデックス1ファイルのデータ構成の一例を示す図である。
【図3】インデックス2ファイルのデータ構成の一例を示す図である。
【図4】インデックス2ファイルに含まれるシステムメタデータのデータ構成の一例を示す図である。
【図5】インデックス2ファイルに含まれる標準メタデータのデータ構成の一例を示す図である。
【図6】仮想分類定義ファイルのデータ構成の一例を示す図である。
【図7】関連定義ファイルのデータ構成の一例を示す図である。
【図8】インデックス1作成部の動作の一例を示すフローチャートである。
【図9】インデックス2作成部の動作の一例を示すフローチャートである。
【図10】検索要求部の動作の一例を示すフローチャートである。
【図11】検索部の動作の一例を示すフローチャートである。
【図12】インデックス1検索部の動作の一例を示すフローチャートである。
【図13】ログイン画面を例示した図である。
【図14】検索要求画面を例示した図である。
【図15】検索要求画面を例示した図である。
【図16】複合検索における検索部等の動作の一例を示すフローチャートである。
【図17】検索要求画面での検索結果の表示内容を例示した図である。
【図18】検索要求画面での検索結果の表示内容を例示した図である。
【図19】第2の実施形態に係るファイル検索システムの構成の一例を示す図である。
【図20】キーワード辞書ファイルのデータ構成の一例を示す図である。
【図21】キーワード関連定義ファイルのデータ構成の一例を示す図である。
【図22】仮想分類動的生成における検索部等の動作の一例を示すフローチャートである。
【図23】検索要求画面を例示した図である。
【発明を実施するための形態】
【0018】
以下、本発明の第1の実施形態に係るファイル検索システムについて図面を参照しながら説明する。
なお、本明細書と特許請求の範囲において、特に説明を付さない限り、「ファイル」とは、文書ファイル、画像ファイル等のファイルのみならず、データベース全体やデータベースの各レコード等も含み、閲覧、視聴、メール送受信あるいは外部記憶媒体へのコピー等の対象となりうる電子データを意味する。
【0019】
<ファイル検索システム全体の構成・機能>
図1は、本発明の第1の実施形態に係るファイル検索システムの構成の一例を示す。
第1の実施形態に係るファイル検索システムは、ファイル検索サーバ1と、ファイルサーバ4と、クライアント3とを備える。ファイル検索サーバ1と、ファイルサーバ4と、クライアント3は、LAN(Local Area Network)等の有線又は無線の通信回線9により通信可能に接続されている。
ここで、ファイル検索サーバ1、ファイルサーバ4及びクライアント3はそれぞれ1台ずつ図示しているが、それぞれ2台以上存在していてもよい。また、ファイル検索サーバ1と、ファイルサーバ4と、クライアント3とはそれぞれ異なる装置である必要はなく、例えば、ファイル検索サーバ1とファイルサーバ4とクライアント3の機能を1台の装置によって実現することも可能である。
通信回線9はLANに限定されるものではなく、例えばWAN(Wide Area Network)やインターネットとすることもできるし、これらの組み合わせとすることもできる。
【0020】
後に詳述するように、ファイル検索サーバ1はファイルサーバ4に記憶されているファイルの名称等を収集して、インデックスファイルを作成して記憶しておく。そして、クライアント3がファイル検索サーバ1にファイル検索要求(以下「検索要求」と略記することがある。)を送信すると、ファイル検索サーバ1はそのインデックスファイルを参照してファイル検索を行い、クライアント3にファイル検索結果(以下「検索結果」と略記することがある。)を送信する。
【0021】
<クライアント3の構成・機能>
クライアント3はコンピュータであり、入力装置32、表示装置33、図示しない主記憶装置および記憶装置を備える。
入力装置32はキーボード、マウス等を含む。クライアント3の操作者は、入力装置32を操作することで、クライアント3が実行するべき処理を指示することができる。すなわち入力装置32はクライアント3の入力手段として機能する。
表示装置33は液晶ディスプレイ、プリンタ等を含む。表示装置33は、クライアント3が実行した処理の結果等を表示あるいは印刷する。すなわち表示装置33はクライアント3の表示手段および出力手段として機能する。
主記憶装置はRAM(Random
Access Memory)等を含む。記憶装置は磁気ディスク等を含み、クライアント3に内蔵されるか、または外部接続される。主記憶装置と記憶装置は、クライアント3の記憶手段として機能する。
【0022】
クライアント3は、図示していないがCPU(Central Processing Unit)を備える。主記憶装置には検索要求プログラム等のプログラムが記憶されている。CPUがその命令コードを実行することにより検索要求部31等の機能が実現される。
また、CPUは、検索要求プログラム等の応用プログラムの命令コードを実行する際、OS(Operating System)等のプログラムの命令コードも実行する場合がある。以上のようなプログラム実行にかかわる技術は周知であるので、以降の説明および図面においては、検索要求部31というように、あたかも各種プログラムにより実現される処理を実行するハードウェアが存在するかのように記載する。なお、実際に各部(例えば検索要求部31)をハードウェアで構成することも可能である。
【0023】
検索要求部31は、クライアント3の操作者が入力装置32によって入力したファイル検索条件およびファイル検索指示(例えば、ファイル名が「作業報告」であるファイルを検索するように、という指示)を受けて、検索条件式を作成し、ファイル検索サーバ1に検索条件式を含む検索要求を送信する。
また、ファイル検索サーバ1がクライアント3に送信した検索結果を受信し、表示装置33に表示する。検索要求部31を実現するための検索要求プログラムは、第1の実施形態に係わる独自のプログラムであってもよいし、例えばWEBブラウザのプログラムであってもよい。WEBブラウザを検索要求部31として使用する場合、後述するファイル検索サーバ1の検索部13は、例えばWEBアプリケーションとすればよい。
【0024】
<ファイルサーバ4の構成・機能>
ファイルサーバ4はコンピュータであり、記憶装置42を備える。
記憶装置42は磁気ディスク等を含む。記憶装置42はファイルサーバ4に内蔵され、または外部接続される。図1では、1台の記憶装置42がファイルサーバ4に接続されているかのように例示しているが、実際には、むしろ2台以上の記憶装置42がファイルサーバ4に接続されることが多く、また、2台以上の記憶装置42が2台以上のファイルサーバ4に、切り替え可能に接続されることも多い。
記憶装置42にはさまざまなファイルが記憶されているが、図1では、ファイルのうち後述するファイル検索サーバ1がインデックス作成対象とするものを、「検索対象ファイル43」と記述している。すなわち、検索対象ファイル43という特定のファイルが存在するのではなく、検索対象ファイル43は、例えば記憶装置42に記憶されている全てのファイルであってもよいし、あるいは、特定のフォルダ内の全てのファイル等、記憶装置42に記憶されている一部のファイルであってもよい。
検索対象ファイル43には、オーナー、グループ、その他利用者に対する、参照・更新・実行権限を表すアクセス権限を設定することができる。
【0025】
ファイルサーバ4は、図示していないがCPUと、RAM等で構成された主記憶装置とを備える。主記憶装置にはファイル管理プログラム等のプログラムが記憶されている。CPUがその命令コードを実行することによりファイル管理部41等の機能が実現される。ファイル管理部41は、検索対象ファイル43を含め、記憶装置42に記憶されているファイルの記憶位置等を管理する。また、ファイル管理部41は、ファイル検索サーバ1からファイルの格納場所等を受信し、当該格納場所に記憶された検索対象ファイル43等を読み込み、当該ファイルの記憶内容をファイル検索サーバ1に送信する機能も有している。
【0026】
<ファイル検索サーバ1の構成・機能>
ファイル検索サーバ1はコンピュータであり、記憶装置2と、図示しない主記憶装置とを備える。記憶装置2は磁気ディスク等を含む。記憶装置2はファイルサーバ1に内蔵されるか、または外部接続される。図1では、1台の記憶装置2がファイル検索サーバ1に接続されているかのように例示しているが、2台以上であってもよい。主記憶装置はRAM等で構成される。記憶装置2と主記憶装置は、ファイルサーバ1の記憶手段として機能する。
記憶装置2には、インデックス1ファイル21、インデックス2ファイル22、仮想分類定義ファイル23、関連定義ファイル24、キーワード辞書ファイル25とキーワード関連定義ファイル26が記憶されている。これらのファイルの記憶内容等については、以降のファイル検索サーバ1の機能説明と合わせて説明する。
【0027】
ファイル検索サーバ1は、図示していないがCPUを備える。ファイル検索サーバ1の主記憶装置には、ファイル検索プログラム等のプログラムが記憶されている。CPUがその命令コードを実行することにより、インデックス1作成部11、インデックス2作成部12、検索部13、インデックス1検索部14の各機能が実現される。
インデックス1作成部11は、例えば毎日同じ時刻等の所定のタイミングで、検索対象ファイル43を参照し、インデックス1ファイル21を作成する。インデックス1ファイル21には、後述するように、ファイル名、ファイル内容から抽出したキーワード等が記憶される。
どのファイルを検索対象ファイル43とするかは、例えば、図示していないが、記憶装置2内の所定のファイルに予め記憶装置42のファイルパス(“/etc/usr1/”等)を1以上記憶しておき、当該ファイルパス配下のファイルを検索対象ファイル43とすることができる。なお、記憶装置42が2台以上存在する場合等には、当該ファイルパスがどの記憶装置上に存在するか等も含めて記憶しておけばよい。以上のようにインデックス1ファイル21を作成することで、インデックス1ファイル21を参照してファイル検索することが可能になり、検索の都度、検索対象ファイル43を参照する必要がなくなるので、検索に要する処理時間を短縮することができる。
【0028】
なお、以上のようにして作成されたインデックス1ファイル21を参照して検索するとき、インデックス1ファイル21作成後に検索対象ファイル43が削除され、あるいは変更されている場合がある。このような場合に、インデックス1ファイル21を検索すると、検索対象ファイル43を検索した場合とは異なる検索結果が得られることになる。例えばファイル名が「作業報告」であるファイルについてインデックス1ファイル21が作成された後、当該ファイルが削除された場合、インデックス1ファイル21を参照するとファイル名が「作業報告」のファイルが存在しているように見えるが、検索対象ファイル43には存在していない。
そこで、前述したように、インデックス1作成部11は、例えば毎日同じ時刻等の所定のタイミングで処理を行うようにすることができる。このようにすることで、インデックス1ファイル21が定期的に更新され、検索対象ファイル43と大きく乖離することを防ぐことができる。
【0029】
そして、インデックス1作成部11が処理を行うタイミングの間隔を短くすることで(例えば、1時間おきに処理を行うようにすることで)、インデックス1ファイル21と検索対象ファイル43の乖離を、より小さくすることができる。ただし、インデックス1作成部11が処理を行うタイミングの間隔を短くするということは、検索対象ファイル43の全ファイルに対するIOが発生する間隔も短くなるということなので、ファイルサーバ4の性能等も考慮した上で、インデックス1作成部11が処理を行うタイミングの間隔を決める必要がある。
例えば、ファイルサーバ4において、CPU使用率、一定時間におけるIO頻度等を常時監視するプログラムを走行させておき、CPU使用率、一定時間におけるIO頻度等が所定値以下になった場合に、その旨をインデックス1作成部11に送信し、インデックス1作成部11が処理開始する等も、有効な方法である。あるいは、ファイルサーバ4において、検索対象ファイル43におけるIOを常時監視するプログラムを走行させておき、検索対象ファイル43が更新等されるたびに、インデックス1作成部11にその旨を通知し、インデックス1ファイル21内の当該ファイルについてのインデックス情報が更新されるようにしてもよい。
【0030】
インデックス2作成部12も、インデックス1作成部11と同様に、例えば毎日同じ時刻等の所定のタイミングで、検索対象ファイル43を参照し、インデックス2ファイル22を作成する。第1の実施形態においては、インデックス2ファイル22には、後述するように、たとえば、ファイルの内容から判断したファイルに記憶されている文書のタイトル等が記憶される。すなわち、インデックス1ファイル21の記憶内容と、インデックス2ファイル22の記憶内容は一部が重複するとしても、完全には同一でない。
【0031】
どのファイルを検索対象ファイル43とするかは、インデックス1作成部11と同様に、記憶装置2内の所定のファイルに予め記憶装置42のファイルパス(“/etc/usr1/”等)を1以上記憶しておき、当該ファイルパス配下のファイルを検索対象ファイル43とすることができる。インデックス1作成部11の検索対象ファイル43とインデックス2作成部12の検索対象ファイル43は同一であってもよいし、一部が重複してもよいし、全く異なっていても構わない。
【0032】
なお、以上のようにして作成されたインデックス2ファイル22を参照して検索するとき、インデックス1ファイル21を参照して検索するときと同様に、インデックス2ファイル22の記憶内容と検索対象ファイル43の内容が乖離することがあるという問題が発生する。そして、この問題は、インデックス1作成部11と同様に、インデックス2作成部12が処理を行うタイミングの間隔を短くする等によって解決することができる。
【0033】
さらに、インデックス1ファイル21とインデックス2ファイル22の作成タイミングが異なると、インデックス1ファイル21とインデックス2ファイル22の内容が乖離することがあるという問題も発生する。この問題の解決方法のひとつは、インデックス1作成部11とインデックス2作成部12のインデックスファイル作成処理開始タイミングを一致させることである。具体的には、例えば、インデックス2作成部12がインデックスファイル作成処理を開始する直前に、インデックス1作成部11にインデックス作成処理開始要求を送信し、インデックス1作成部11は当該要求を受信するとインデックス作成処理を開始するようにすればよい。
【0034】
もっとも、インデックスファイル作成処理開始タイミングが一致しても、各検索対象ファイル43を参照するタイミングが一致するとは限らないが、インデックス1ファイル21とインデックス2ファイル22の内容が多少乖離していたとしても、検索目的での使用に大きな支障があるわけではない。従って、インデックスファイル作成処理開始タイミングを一致させれば、ほとんどの場合、実用的には問題はない。
ただし、インデックス1ファイル21とインデックス2ファイル22の内容の乖離を完全に防止する必要がある場合がある。このような場合には、例えば、ファイルサーバ4において、検索対象ファイル43におけるIOを常時監視するプログラムを走行させておき、検索対象ファイル43が更新等されるたびに、インデックス1ファイル21及びインデックス2ファイル22内の当該ファイルについての情報を更新するようにしてもよい。
【0035】
検索部13は、ファイル検索サーバ1がクライアント3からの検索要求を受信した場合に起動され、ファイル検索を実行する。具体的には、インデックス1ファイル21とインデックス2ファイル22の一方又は両方を参照して、検索要求の検索条件式に合致するファイルが存在するかどうか判定し、存在する場合には、合致したファイルのファイル名等からなる検索結果をクライアント3に送信する。
【0036】
ここで、検索部13は、インデックス1ファイル21を参照する必要がある場合、インデックス1検索部14に検索条件式を渡し、インデックス1検索部14は、インデックス1ファイル21を参照して、受け取った検索条件式に合致するファイルが存在するかどうか判定する。インデックス1ファイル21には、ファイル名、ファイル内容から抽出したキーワードが記憶されているため、インデックス1検索部14による検索は、検索部13の検索機能の一部を補完することができる。
後述するように、第1の実施形態においては、クライアント3の操作者がいわゆる全文検索を要求した場合に、インデックス1検索部14による検索を行う。検索部13自体の機能から全文検索機能を分離することにより、インデックス1検索部14を実現するためのプログラムとして、既に存在するさまざまな全文検索プログラムを使用することが可能になり、例えば、検索要求から社会科学分野の文献の検索が求められているのか、自然科学分野の文献の検索が求められているのか等の検索目的を判定して、検索目的に合致したインデックス1検索部14によって全文検索を行うといったことも可能になる。
【0037】
検索部13は、検索対象ファイル43をインデックス2ファイル22に記憶された文書のタイトル等のメタデータ検索キーワードにより分類して、ツリー状の階層を作成する機能(以下「仮想分類機能」という。)、言い換えれば、インデックス2レコード220(図3を参照して後で説明する。)を分類する機能を有しており、仮想分類を行う際には、分類条件等を定義した仮想分類定義ファイル23を参照する。
【0038】
検索部13は、メタデータ検索のキーワードに関連するキーワードにより仮想分類定義を動的に生成する機能(以下「仮想分類動的生成機能」という。)を有している。仮想分類動的生成機能で生成した仮想分類定義を参照し、仮想分類機能を使用することでメタデータ検索キーワードに関連したキーワードによる分類を行うことができる。
仮想分類動的生成を行う際には、キーワードを登録するキーワード辞書ファイル25とキーワード辞書ファイル25に登録されたキーワードの関連を定義したキーワード関連定義ファイル26を参照する。当然ながら、キーワード辞書ファイル25とキーワード関連定義ファイル26を作成・更新等するプログラムも存在するが、本発明とは直接関係がないので、以降の説明ではキーワード辞書ファイル25とキーワード関連定義ファイル26が作成済みであるという前提で説明する。
【0039】
また、検索部13は、インデックス2ファイル22に記憶された、検索対象ファイル43の記憶装置42上の記憶位置を参照して、ツリー状の階層を作成する機能(以下「物理階層作成機能」という。)を有している。
さらに、検索部13は、検索結果と関連するファイルを検索する機能(以下「関連検索機能」という。)を有しており、関連検索を行う際には、関連検索条件等を定義した関連定義ファイル24を参照する。当然ながら、関連定義ファイル24を作成・更新等するプログラムも存在するが、本発明とは直接関係がないので、以降の説明では関連定義ファイル24が作成済みであるという前提で説明する。
【0040】
<各ファイルの構成・機能>
図2は、インデックス1ファイル21のデータ構成の一例を示す。
インデックス1ファイル21は、各検索対象ファイル43と対応するインデックス1レコード210から構成される。すなわち各インデックス1レコード210は、インデックス1レコード210作成時点の検索対象ファイル43と1対1に対応している。
インデックス1レコード210は、ファイル名211、ファイルパス212、アクセス権限213およびキーワード214の各データ項目から構成される。
【0041】
ファイル名211には、対応する検索対象ファイル43のファイル名、例えば“作業報告1.doc”が設定される。
ファイルパス212には、対応する検索対象ファイル43の絶対パス、例えば“//etc/usr1/作業報告1.doc” (ルート直下の”etc“フォルダ内の”usr1“フォルダ内の”作業報告1.doc“)が設定される。なお、ファイルパス212によって検索対象ファイル43の記憶装置42上の記憶位置を識別することができるが、ファイルサーバ4に複数の記憶装置42が接続されている場合、記憶装置42を特定する識別や、論理ボリューム名等も、ファイルパス212の一部として、又はファイルパス212とは別のデータ項目として設定すればよい。また、ファイルの絶対パス以外の情報、例えば予め定めた所定のファイルを基準とする相対パス、あるいはファイルが記憶されている論理ブロック番号によっても、検索対象ファイル43の記憶位置を識別することは可能である。インデックス1レコード210には、ファイルパス212に変えて、又はファイルパス212に加えて、このようなデータ項目を設けてもよい。
【0042】
アクセス権限213には、対応する検索対象ファイル43に対して設定されているアクセス権限が設定される。具体的には、例えばファイルサーバ4のファイル管理部41等によって付与され、ファイルの属性情報として記憶されているアクセス権限(例えば、UNIX(登録商標)等で使われている、オーナー、グループ、その他利用者に対する、参照・更新・実行権限を表す3桁の数値(777等))が設定される。
キーワード214には、対応する検索対象ファイル43の内容から抽出したキーワードが設定される。例えば、検索対象ファイル43の内容に“現場”という文字列が複数個含まれている場合“現場”を抽出する等、さまざまな構文解析手法等によって、1以上のキーワードを抽出し、キーワード214に設定することができる。一般に、キーワード214には多数の語句等が記憶され、インデックス1レコード210のサイズの大部分がキーワード214のために使用される。
なお、以上のほか、ファイル作成者等、他のファイル属性情報についても、インデックス1レコード210のデータ項目とすることができる。
以上のようにして作成されたインデックス1レコード210(インデックス情報)は、インデックス1検索部14により参照される。
【0043】
図3は、インデックス2ファイル22のデータ構成の一例を示す。
インデックス2ファイル22は、各検索対象ファイル43と対応するインデックス2レコード220から構成される。すなわち各インデックス2レコード220は、インデックス2レコード220作成時点の検索対象ファイル43と1対1に対応している。
インデックス2レコード220は、システムメタデータ221、標準メタデータ222及びユーザ定義メタデータ223から構成される。
システムメタデータ221はインデックス2作成部12によって設定され、利用者がその設定内容を直接変更することはできない。
一方、標準メタデータ222にはインデックス2作成部12によってファイルの内容を代表するメタデータが設定される。図1に示していないが、利用者が、ファイル検索サーバ1のCPUにメタデータ変更プログラムを実行させて、標準メタデータ222の設定内容を直接変更することができる。
また、ユーザ定義メタデータ223は利用者がデータ構造を定義し、ファイルの内容を代表するメタデータを設定・変更するデータ項目である。インデックス2作成部12は、ユーザ定義メタデータ223を設定しない。
【0044】
図4は、システムメタデータ221のデータ構成の一例を示す図である。
システムメタデータ221は、ファイルID221a、ファイル名221b及びファイルパス221cから構成される。
ファイルID221aには、対応する検索対象ファイル43を一意に識別可能なID(Identifier)が設定される。具体的には、例えば、新たに検索対象ファイル43のインデックス2レコード220を作成するたびに、1から始まる通番を設定すればよい。
ファイル名221bには、インデックス1レコード210のファイル名211と同様、対応する検索対象ファイル43のファイル名、例えば“作業報告1.doc”が設定される。
ファイルパス221cには、インデックス1レコード210のファイルパス212と同様に、例えば対応する検索対象ファイル43の絶対パス(“//etc/usr1/作業報告1.doc”等)が設定される。
なお、以上のほか、ファイル作成者、アクセス権限等、他のファイル属性情報についても、システムメタデータ221のデータ項目とすることができる。
【0045】
図5は、標準メタデータ222のデータ構成の一例を示す図である。
標準メタデータ222は、タイトル222a、文書記載日222b及びセキュリティランク222cから構成される。
タイトル222aには、対応する検索対象ファイル43に記憶されている文書等の題名が“作業報告書”のように設定される。具体的には、インデックス2作成部12は、例えば、当該ファイルを印刷する場合の表示イメージを構築し、先頭ページ上段に、他の文字より大きな文字サイズで印刷される文字列を文書等の題名とみなし、タイトル222aに設定する。
文書記載日222bには、対応する検索対象ファイル43に記憶されている文書等が記載された日付が“2009年8月5日”のように設定される。具体的には、インデックス2作成部12は、例えば、当該ファイルを印刷したときに先頭ページ上段に印刷される文字列のうち、“年”、“月”、“日”、“作成”を含む等、作成日付らしい文字列を文書等の作成日付とみなし、文書記載日222bに設定する。
【0046】
セキュリティランク222cには、対応する検索対象ファイル43に記憶されている文書等の機密度が“極秘”、“秘密”のように設定される。具体的には、インデックス2作成部12は、例えば、当該ファイルに印刷される文字列のうち、“取扱注意”、“複製禁止”等、機密にする必要があることを示していると思われる文字列を抽出し、抽出した文字列の内容、数等によって機密度を判定し、セキュリティランク222cに設定する。
なお、以上のほか、文書の保管期間等、検索対象ファイル43を印刷した場合の表示イメージ等から判断可能な他の情報についても、標準メタデータ222のデータ項目とすることができる。
以上のようにして作成されたインデックス2レコード220(インデックス情報)は、前述したように、検索部13により参照される。
【0047】
図6は、仮想分類定義ファイル23のデータ構成の一例を示す。
仮想分類定義ファイル23は、1以上の仮想分類定義レコード230から構成される。仮想分類定義レコード230は、仮想分類ID231、表示名232、条件233及び上位仮想分類ID234の各データ項目から構成される。
【0048】
仮想分類ID231には、当該仮想分類定義レコード230を一意に識別可能な値が“1”、“2”、“3”のように設定される。
表示名232には、当該仮想分類の名称が“タイトル”、“作業報告”のように設定される。
条件233には、当該仮想分類による分類条件が“条件なし”、“タイトル222aに「作業報告書」(という文字列)が含まれる”のように設定される。分類条件に“条件なし”が設定されている場合、当該仮想分類に分類されるインデックス2レコード220が存在しないことを意味し、分類条件に何らかの条件が設定されている場合、インデックス2レコード220のうち、当該条件を満足するレコードが当該仮想分類に分類されることを意味する。従って、1つのインデックス2レコード220が2以上の仮想分類に分類される場合もあるし、どの仮想分類にも分類されない場合もある。
上位仮想分類ID234には、当該仮想分類定義レコード230の上位の仮想分類定義レコード230を一意に識別可能な値が“0(上位なし)”、“1”、“2”、“3”のように設定される。
【0049】
図14と図15を参照しながら後で説明するように、仮想分類定義レコード230は検索部13によって参照され、表示名232や、当該表示名232に係わる条件233を満足するインデックス2レコード220のファイル名221bが、表示装置33にツリー状に階層表示される。従って、1つのインデックス2レコード220がツリーの2箇所以上で表示される場合もあるし、ツリーのどこにも表示されない場合もある。
【0050】
図7は、関連定義ファイル24のデータ構成の一例を示す。
関連定義ファイル24は、1以上の関連定義レコード240から構成される。関連定義レコード240は、関連定義ID241、表示名242及び条件243の各データ項目から構成される。
関連定義ID241には、当該関連定義レコード240を一意に識別可能な値が“1”、“2”、“3”のように設定される。
表示名242には、当該関連定義の名称が“タイトル”のように設定される。
条件243には、当該仮想分類による分類条件が“タイトル222aが当該検索結果と等しい”のように設定される。なお、条件243には、例えば、“当該検索ファイルのファイル名の前に「コピー〜」が追加されている”、“当該検索ファイルのファイル名の後ろに数字が追加されている”等、さまざまな条件を設定可能としてもよい。
関連定義ファイル24を用いた関連検索については、図17と図18を参照しながら後で詳細に説明する。
【0051】
図20と図21は、それぞれキーワード辞書ファイル25とキーワード関連定義ファイル26のデータ構成の一例を示す。
上述した仮想分類定義レコード230は、利用者が予め作成しておいてもよいが、メタデータ検索を行う際にキーワード辞書ファイル25とキーワード関連定義ファイル26を用いて動的に作成することが可能である。
キーワード辞書ファイル25は、1以上のキーワード辞書レコード250から構成される。キーワード辞書レコード250は、キーワードID251、言語コード252及びキーワード253の各データ項目から構成される。
キーワードID251には、キーワードを一意に識別可能な値が“1”、“2”、“3”のように設定される。
言語コード252には、キーワード253の言語種別を表す3文字の言語コードが“jpn”や“eng”のように設定される。なお、言語コード“jpn”と“eng”は、それぞれ日本語と英語に対応する。
キーワード253には、当該キーワードが“仕様書”のように設定される。
キーワード辞書レコード250は、キーワードID251と言語コード252で一意に識別できる。また、キーワード辞書ファイル25には、キーワード253が同一のキーワード辞書レコード250は設定できない。
例えば、キーワードID251、言語コード252及びキーワード253に、それぞれ“1”、“jpn”、“仕様書”が設定されたキーワード辞書レコード250と、それぞれ“1”、“eng”、“specifications”が設定されたキーワード辞書レコード250が2レコード存在する場合、この2つのレコードのキーワードは、言語は異なるが同一のキーワードということになる。
【0052】
キーワード関連定義ファイル26は、1以上のキーワード関連定義レコード260から構成される。キーワード関連定義レコード260は、キーワードID261、関連キーワードID262、最大キーワード長263及び言語条件264から構成される。
キーワードID261には、キーワード辞書ファイル25に登録されているキーワード辞書レコード250のキーワードID251の値が設定される。
関連キーワードID262には、キーワードID261と同様にキーワード辞書ファイル25に登録されているキーワード辞書レコード250のキーワードID251の値が1つ以上設定される。キーワード関連定義レコード260は、キーワードID261と値が同一であるキーワードID251のキーワード辞書レコード250に含まれるキーワード253に設定されているキーワードと、関連キーワードID262と値が同一であるキーワードID251のキーワード辞書レコード250に含まれるキーワード253に設定されているキーワードとが関連することを指定する。
なお、関連キーワードID262に2つ以上のキーワードIDを設定する場合、“1, 2”のように「, (カンマ)」で区切って設定する。
【0053】
最大キーワード長263には、キーワード辞書ファイル25から関連キーワードID262のキーワードを取得するときのキーワードの最大文字数の制限が“0(制限しない)”、“10”のように設定される。
言語条件264には、キーワード辞書ファイル25から関連するキーワードを取得するときのキーワードの言語種別を検索キーワードの言語種別と同一に限定するかしないかの値が“0(同一言語のみ)”、“1(限定しない)”のように設定される。
【0054】
例えば、キーワード辞書ファイル25のキーワードID251、言語コード252及びキーワード253に、それぞれ以下のように設定された3つのキーワード辞書レコード250が存在するとする。
(1)“1”、“jpn”、“仕様書”
(2)“1”、“eng”、“specifications”
(3)“2”、“jpn”、“設計書”
そして、キーワード関連定義ファイル260のキーワードID261、関連キーワードID262、最大キーワード長263及び言語条件264に、それぞれ“2”、“1”、“3”、“0(同一言語のみ)”が設定されたキーワード関連定義レコード260が存在するとする。この場合、キーワード“設計書”にキーワード“仕様書”が関連していることになる。しかし、キーワード“specifications”は、キーワード関連定義レコード260の言語条件264が“0(同一言語のみ)”となっているため、関連するキーワードとみなさない。
なお、キーワード辞書ファイル25とキーワード関連定義ファイル26を用いた仮想分類定義レコード230の動的作成(仮想分類動的生成機能)については、図22と図23を参照しつつ後で説明する。
以上で第1の実施形態のファイル検索システムの構成・機能の説明を終了し、以下、各部の処理のフローチャートを参照しつつ、第1の実施形態のファイル検索システムの動作を説明する。
【0055】
<各プログラムの動作>
図8は、インデックス1作成部11の動作の一例を示すフローチャートである。
インデックス1作成部11は、処理を開始すると、検索対象ファイル43のインデックス1レコード210を作成等する(S801)。
具体的には、例えば、ファイル管理部41に、記憶装置2内の所定のファイルに予め記憶されているファイルパス(例えば“/etc/usr1/”)に含まれているファイルを読込、送信するように要求する。そして、ファイル管理部41からファイルを受信すると、取得したファイルのファイルパス(例えば“/etc/usr1/作業報告1.doc”)がファイルパス212に設定されているインデックス1レコード210が存在するか判定する。そして、存在しない場合は、取得したファイルからキーワードを抽出し、当該ファイルのファイル名、ファイルパス、アクセス権限及び抽出したキーワードを、それぞれファイル名211、ファイルパス212、アクセス権限213及びキーワード214に設定して、インデックス1レコード210を追加する。一方、存在する場合は、当該インデックス1レコード210(以下「更新対象レコード」という。)のアクセス権限213及びキーワード214を更新する。
【0056】
以上の処理を、予め設定されているファイルパス配下のファイル全てについて実行した後、新たに作成したインデックス1レコード210以外のレコードで、更新対象レコードにならなかったインデックス1レコード210が存在する場合、当該インデックス1レコード210を削除する。
なお、インデックス1レコード210を作成等する方法は、上述の方法に限られない。例えば、処理開始後、インデックス1ファイル21を削除し、ファイル管理部41に、予め設定されているファイルパス(例えば“/etc/usr1/”)に含まれているファイルを読込、送信するように要求し、受信したファイルについて、インデックス1レコード210を作成してもよい。
【0057】
以上で説明したように、第1の実施形態においては、インデックス1作成部11が処理を行うたびに、処理時点の検索対象ファイル43と1対1に対応するインデックス1レコード210が作成される。
【0058】
図9は、インデックス2作成部12の動作の一例を示すフローチャートである。
インデックス2作成部12は、処理を開始すると、検索対象ファイル43のインデックス2レコード220を作成等する(S901)。具体的な処理内容は、インデックス1作成部11と同様なので、以下、異なる点のみを説明する。
まず、前述したように、インデックス2作成部12の検索対象ファイル43は、インデックス1作成部11の検索対象ファイル43と同一である必要はない。例えば、記憶装置42に記憶されている全てのファイルを、インデックス1作成部11の検索対象ファイル43とし、記憶装置42に記憶されているファイルの一部(例えばクライアント3の操作者が通常参照するファイルのみ)をインデックス2作成部12の検索対象ファイル43とすることができる。このようにすることで、後述する検索処理において、通常はインデックス2ファイル22のみを検索することで検索結果として表示されるファイルの数を抑え、一方、必要に応じてインデックス1ファイル21を検索することで、普段は参照しないファイルも検索結果として表示させることができる。
【0059】
逆に、記憶装置42に記憶されているファイルの一部(例えば論文、判決文等、語句が比較的厳密に使用されている文書ファイル)をインデックス1作成部11の検索対象ファイル43とし、記憶装置42に記憶されている全てのファイルを、インデックス2作成部12の検索対象ファイル43とすることができる。
このようにすることで、定義をあいまいにしたまま使用されている語句等が、インデックス1レコード210のキーワード214に抽出される可能性が減少する。当該語句等が検索キーワードに一致して当該ファイルが検索結果として表示されても、実際には求めるファイルではない可能性が比較的高い。このため、インデックス1ファイル21の容量を比較的小さく抑えることができるとともに、後述する検索処理において、キーワードによる全文検索を行った場合に、検索結果として求めるファイルが含まれる可能性を高めることができる。
【0060】
また、以下のようにすることで、インデックス2レコード220の不要な更新を避けることもできる。
例えば、インデックス2レコード220のデータ項目として更新日時を設け、インデックス2レコード220を作成・更新する際には当該処理を行った年月日時分秒を設定する。そして、インデックス2作成部12がインデックス2レコード220を更新しようとする際に、インデックス2レコード220の更新日時と検索対象ファイル43の更新日時(一般にファイル管理部41が、ファイルの属性情報の一つとして設定する)を比較して、検索対象ファイル43の更新日時の方が新しければ、インデックス2レコード220を作成した後での当該検索対象ファイル43の内容が変わっている可能性があるので、更新対象とする。
また、インデックス2レコード220のデータ項目としてアクセス権限を設けた場合には、インデックス2作成部12がインデックス2レコード220を更新しようとする際に、インデックス2レコード220のアクセス権限と検索対象ファイル43のアクセス権限を比較し、異なっていれば更新対象とすればよい。
【0061】
さらに、インデックス2作成部12は、インデックス2レコード220を更新する際、標準メタデータ222の設定内容が、前述したメタデータ変更プログラムを使用して直接変更されているか判定し、直接変更されている場合は、標準メタデータ222は更新しない。このようにするためには、例えば、標準メタデータ222のデータ項目として「直接変更有無」を設け、インデックス2レコード220を作成する際にはデータ項目「直接変更有無」に“直接変更なし”を設定し、メタデータ変更プログラムを使用して直接変更した場合に、データ項目「直接変更有無」に“直接変更有り”を設定するようにすればよい。なお、インデックス2作成部12は、ユーザ定義メタデータ223を更新しない。
【0062】
標準メタデータ222のデータ項目として、さらに「直接変更後ファイル更新有無」を設けてもよい。インデックス2作成部12がインデックス2レコード220を作成するとき、データ項目「直接変更後ファイル更新有無」に“更新なし”を設定する。そして、インデックス2作成部12がインデックス2レコード220を更新するとき、当該インデックス2レコード220がメタデータ変更プログラムを使用して直接変更されているかどうかを判定し、直接変更されていて、かつ対応する検索対象ファイル43の内容が変わっている場合、データ項目「直接変更後ファイル更新有無」に“更新有り”を設定する。
このようにすることで、クライアント3の操作者がメタデータ変更プログラムを使用して当該インデックス2レコード220を参照する際や、後述するようにファイル検索結果を表示する際に、標準メタデータ222の直接変更を行った後で、表示装置33に表示されるファイルの内容が更新されていることを知らせることができ、クライアント3の操作者は、再度標準メタデータ222の直接変更を行う必要があるかどうか判断することができる。
以上で説明したように、第1の実施形態においては、インデックス2作成部12が処理を行うたびに、処理時点の検索対象ファイル43と1対1に対応するインデックス2レコード220が作成される。
【0063】
図10は、検索要求部31の動作の一例を示すフローチャートである。
検索要求部31は、クライアント3の操作者が入力装置32を使用して起動する。
検索要求部31は、起動されると、ログイン処理を行う(S1001)。具体的には、表示装置33に図13のようなログイン画面を表示し、クライアント3の操作者が入力装置32を使用して利用者IDおよびパスワードを入力し、「実行」ボタンを押すと、入力された利用者IDとパスワードが適切か否か、および検索対象ファイル43に対する利用者IDのアクセス権限を判定する。なお、上記のようなログイン処理自体は周知技術であるので、これ以上の説明は省略する。
【0064】
検索要求部31は、入力された利用者IDとパスワードが適切であると判定した場合、表示装置33に検索要求画面を表示する(S1002)。図14に検索要求画面(D1401)の表示例を示す。図14に示すように、検索要求画面は、仮想分類表示部(D1402)、物理フォルダ表示部(D1403)、検索条件部(D1404)、検索結果部(D1405)および「検索」、「メタデータ編集」、「終了」の各ボタンから構成されている。
【0065】
検索要求部31は、検索要求画面(D1401)を表示する際に、検索部13の仮想分類機能を利用して、仮想分類表示部(D1402)を表示する。具体的には、検索要求部31は検索部13に、仮想分類の初期表示内容を送信するように要求し、検索部13は、仮想分類定義レコード230のうち、上位仮想分類ID234に“0(上位なし)”が設定されているレコード(すなわち最上位の仮想分類定義レコード230)の表示名232を、検索要求部31に送信し、検索要求部31は、受信した表示名を仮想分類表示部(D1402)に表示する。また、検索要求部31は、各表示名232の前に、「+」を四角く囲んだ図形を表示する。後述するように、クライアント3の操作者は、この図形をマウスでクリックする等の操作を行うことで、当該仮想分類に含まれている他の仮想分類やファイルを表示することができる。
【0066】
例えば、仮想分類ID231、表示名232、条件233及び上位仮想分類ID234に、それぞれ“1”、“タイトル”、“条件なし”、“0(上位なし)”が設定された仮想分類定義レコード230と、それぞれ“2”、“作業報告”、“タイトル222aに「作業報告書」が含まれる”、“1”が設定された仮想分類定義レコード230が存在するとする。この場合、仮想分類表示部(D1402)のタイトルの前に表示された「+」を四角く囲んだ図形をクリックすると、図15のD1402に示すように、あたかも“タイトル”という名前のフォルダ内に“作業報告”という名前のフォルダが含まれているかのようなツリー表示がなされる。
更に、タイトル222aに”作業報告書“が含まれているインデックス2レコード220が4レコード存在し、それぞれのファイル名221bが”作業報告1.doc“、”作業報告2.doc“、”作業報告3.doc“及び”報告書.doc“だった場合、作業報告前に表示された「+」を四角く囲んだ図形をクリックすると、図15の仮想分類表示部(D1402)に示すように、“作業報告”という名前のフォルダ内に、”作業報告1.doc“、”作業報告2.doc“、”作業報告3.doc“及び”報告書.doc“の4つのファイルが含まれているかのようなツリー表示がなされる。
【0067】
また、検索要求部31は、検索要求画面(D1401)を表示する際に、検索部13の物理階層作成機能を利用して、物理フォルダ表示部(D1403)を表示する。具体的には、検索要求部31は検索部13に、物理フォルダの初期表示内容を送信するように要求する。検索部13は、インデックス2レコード220のシステムメタデータ221内のファイルパス221cを参照してフォルダのツリー状階層を作成して、そのツリー状階層を検索要求部31に送信する。検索要求部31は、受信したツリー状階層に含まれるフォルダの名称を物理フォルダ表示部(D1403)に表示する。
また、検索要求部31は、各フォルダの名称の前に、「+」を四角く囲んだ図形を表示する。クライアント3の操作者は、この図形をマウスでクリックする等の操作を行うことで、当該フォルダに含まれている他のフォルダやファイルを表示することができる。
【0068】
なお、検索条件部(D1404)及び検索結果部(D1405)の表示内容は図14に示すとおりであり、検索結果部(D1405)には検索結果は表示されていない。
クライアント3の操作者は入力装置32を使用して検索条件部(D1404)の各項目を入力する。検索条件部(D1404)に入力した項目は検索条件となり、例えば、全文に“現場”、タイトルに“作業報告”を入力した場合、インデックス1レコード210のキーワード214に“現場”が設定されており、かつ、インデックス2レコード220のタイトル222aに“作業報告”が設定されているファイルが検索され、検索結果部(D1405)に、検索結果がスクロール表示される。
【0069】
検索条件部(D1404)の各項目については、さまざまな入力方法を可能にすることで検索の利便性を向上させることができる。例えば、全文に“not現場”、“現場 and 作業”等の論理式入力を可能にすればよい。なお、検索条件部(D1404)の入力項目は、図示した項目に限る必要はなく、例えばアクセス権限、セキュリティランク等、インデックス1ファイル21及びインデックス2ファイル22のデータ項目に合せて決めればよい。
検索要求部31は、検索要求画面表示(S1002)後、検索ボタン、メタデータ編集ボタンまたは終了ボタンが押下されるのを待つ(S1003、S1004)。検索ボタンが押された場合、すなわち検索要求を検知した場合(S1003:YES)、検索処理(S1005、S1006、S1007)を行う。また、終了ボタンが押された場合、すなわち終了要求を検知した場合(S1004:YES)、処理を終了する。
【0070】
なお、図10には示していないが、検索要求部31は、メタデータ編集ボタンが押された場合、メタデータ編集処理を行う。具体的には、検索要求部31は、クライアント3の操作者に編集対象のファイルを指定するように要求し、指定されたファイルの標準メタデータ222及びユーザ定義メタデータ223の、その時点での設定内容を表示する。そして、検索要求部31は、クライアント3の操作者が入力した内容で、標準メタデータ222及びユーザ定義メタデータ223の設定内容を変更する。このとき、前述したように、標準メタデータ222の直接変更後ファイル更新有無に“更新有り”が設定されている場合、表示装置33にその旨のメッセージを表示してもよい。
【0071】
検索要求部31は、検索要求を検知した場合、検索条件部(D1404)の入力内容(検索条件)を、検索部13に送信する(S1005)。例えば、全文に“現場”、タイトルに“作業報告”が入力された場合、“全文=現場 タイトル=作業報告”といった検索条件式を作成し、ログイン画面で入力された利用者IDとともに、検索部13に送信する。ここで、検索条件式は検索部13によって解釈される式であり、検索部13が解釈可能な構文規則等に従って作成すればよい。
検索要求部31は、検索条件式を検索部13に送信した後、検索部13から検索結果を受信するまで待つ(S1006)。検索結果を受信する(S1006:YES)と、検索結果を検索要求画面の検索結果部(D1405)に表示し(S1007)、再び、検索ボタン等が押下されるのを待つ(S1003、S1004)。
【0072】
図11は、検索部13の動作の一例を示すフローチャートである。
ファイル検索サーバ1がクライアント3からの検索要求を受信すると、検索部13が起動される。
検索部13は、まず、検索要求に含まれる検索条件式を解析し、メタデータ検索を行うか、すなわち、インデックス2ファイル22のシステムメタデータ221等を参照して検索する必要があるか判定する(S1101)。例えば、検索条件式が“全文=現場 タイトル=作業報告”である場合、標準メタデータ222のタイトル222aを参照して検索する必要があると判定する。また、例えば、検索条件式が“全文=現場”である場合、メタデータ検索を行なわず、全文検索のみ行うと判定する。
検索部13は、メタデータ検索を行うと判定した場合(S1101:YES)、インデックス2ファイル22による検索を行う(S1102)。具体的には、検索条件式から、システムメタデータ221等に関する条件を抽出し、条件に合致するインデックス2レコード220を選択する(以下「メタデータ合致レコード」という。)。例えば、検索条件式が“全文=現場 タイトル=作業報告”である場合、標準メタデータ222のタイトル222aに“作業報告”が設定されているインデックス2レコード220を選択する。
【0073】
検索部13は、メタデータ検索(S1102)を行った後、又はメタデータ検索を行わないと判定した場合(S1101:NO)、全文検索を行うか、すなわち、インデックス1ファイル21のキーワード214を参照して検索する必要があるか判定する(S1103)。例えば、検索条件式が“全文=現場 タイトル=作業報告”または“全文=現場”である場合、キーワード214を参照して検索する必要があると判定する。
検索部13は、全文検索を行うと判定した場合(S1103:YES)、インデックス1ファイル21による全文検索を行う(S1104)。具体的には、検索部13は、検索条件式から、全文検索の条件を抽出し、メタデータ検索(S1102)を行った場合には、メタデータ合致レコードのファイルパス221c、及び検索要求部31から受信した利用者IDとともに、インデックス1検索部14に渡す。また、検索部13は、メタデータ検索を行なわなかった場合には、インデックス2ファイル22の全てのインデックス2レコード220をメタデータ合致レコードとして選択し、当該レコードのファイルパス221cを、全文検索の条件及び検索要求部31から受信した利用者IDとともに、インデックス1検索部14に渡す。
インデックス1検索部14は、後述するように、受け取った全文検索の条件等を参照して検索を行い、最終的に検索結果とすべきインデックス2レコード220(以下「キーワード合致レコード」という。)のファイルパス221cを検索部13に渡す。
【0074】
検索部13は、全文検索を行わないと判定した場合(S1103:NO)は、メタデータ合致レコードを検索要求部31への送信対象とし、一方、全文検索を実行(S1104)した場合は、キーワード合致レコードを検索要求部31への送信対象とする。検索部13は、送信対象としたインデックス2レコード220の各データ項目を検索要求部31に送信する(S1105)。
検索部13は、送信後、処理を終了する。
【0075】
図12は、インデックス1検索部14の動作の一例を示すフローチャートである。
インデックス1検索部14は、例えば、各メタデータ合致レコードに対応するインデックス1レコード210を検索する(S1201)。具体的には、インデックス1検索部14は、検索部13から受け取ったメタデータ合致レコードのファイルパス221c全てにつき、ファイルパス212に同一値が設定されているインデックス1レコード210を参照し、当該レコードのアクセス権限213により、検索部13から受信した利用者IDがアクセス権限を有するか判定する。そして、アクセス権限を有すると判定した場合、当該レコードのキーワード214が、検索部13から受信した全文検索の条件を満足するか判定する。
インデックス1検索部14は、全文検索の条件を満足すると判定されたファイルパス221cを検索部13に渡し(S1202)、処理を終了する。
【0076】
ところで、インデックス1検索部14を実現するプログラムとして、既に存在するさまざまな全文検索プログラムを使用するような場合、インデックス1作成部11も当該インデックス1検索部14に対応したプログラムを使用することになる。その場合、一般的には、インデックス1ファイル21に係わる検索対象ファイル43とインデックス2ファイル22に係わる検索対象ファイル43が異なり、インデックス2ファイル22とは関係なく全文検索の条件によりインデックス1ファイル21が検索されることになる。そうすると、例えば、インデックス2ファイル22に係わる検索対象ファイル43として、クライアント3の操作者が普段よく使用するファイルを設定した場合も、クライアント3の操作者が全文検索のみを要求すると、インデックス1ファイル21が検索されてしまうので、普段よく使用しないファイルも検索結果として表示されることになる。
【0077】
このように検索されるのが好ましい場合もあるが、好ましくない場合もある。そこで、全文検索のみを行う場合に、インデックス2ファイル22が作成された検索対象ファイル43のみを検索対象とするか(すなわち、メタデータ作成済みファイルのみを検索対象とするか)、それとも、インデックス2ファイル22に係わらずインデックス1ファイル21の検索対象ファイル43全てを検索対象とするか(すなわち、メタデータ未作成のファイルも検索対象とするか)を、検索要求画面で指定できるようにしてもよい。
【0078】
このようにした場合、メタデータ未作成のファイルも検索対象とするように指定された場合は、インデックス1検索部14はインデックス2ファイル22とは関係なく全文検索の条件によりインデックス1ファイル21を検索する。一方、メタデータ作成済みファイルのみを検索対象とするように指定された場合は、検索部13は、メタデータ検索が要求されていない場合(図11のS1101でNOの場合)も、インデックス2ファイル22の全てのインデックス2レコード220をメタデータ合致レコードとして選択し、当該レコードのファイルパス221cを、全文検索の条件及び検索要求部31から受信した利用者IDとともに、インデックス1検索部14に渡す。
【0079】
<仮想分類動的生成機能についての補足説明>
図22は、仮想分類動的生成における検索部13等の動作の一例を示すフローチャートである。
検索部13は、まず、検索要求に含まれる検索条件式を解析し、メタデータ検索かどうかを判定する(S1301)。
検索部13は、メタデータ検索を行うと判定した場合(S1301:YES)、キーワード辞書ファイル25の検索を行う(S1302)。具体的には、メタデータ検索のキーワードがキーワード辞書ファイル25のキーワード253に設定されているキーワード辞書レコード250を選択する(以下「キーワード辞書合致レコード」という。)。例えば、検索条件式が“タイトル=設計書”である場合、キーワード辞書ファイル25のキーワード253に“設計書”が設定されているキーワード辞書レコード250を選択する。
検索部13は、メタデータ検索キーワードがキーワード辞書ファイル25に存在する場合(S1303:YES)、キーワード辞書合致レコードのキーワードID251で、キーワード関連定義ファイル26の検索を行う(S1304)。具体的には、キーワード辞書合致レコードのキーワードID251が“1”の場合、キーワード関連定義ファイル26のキーワードID261に“1”が設定されているキーワード関連定義レコード260を選択する(以下「キーワード関連合致レコード」という。)。
【0080】
検索部13は、キーワード辞書合致レコードのキーワードID251がキーワード関連定義ファイル26に存在する場合(S1305:YES)、キーワード関連合致レコードの関連キーワードID262に設定されているキーワードIDの数分、関連キーワードID262に設定されているキーワードIDでキーワード辞書ファイル25を検索する(S1306)。具体的には、キーワード関連合致レコードの関連キーワードID262に“2, 3, 4”が設定されている場合、キーワード辞書ファイル25のキーワードID251に“2”または“3”または“4”が設定されているキーワード辞書レコード250を選択する(以下「関連キーワード辞書合致レコード」という。)。
さらに、図示していないが、キーワード関連合致レコードの最大キーワード長263に設定されている値が“1”以上の場合、関連キーワード辞書合致レコードを関連キーワード辞書合致レコードのキーワードの長さが最大キーワード長263の値以下のレコードのみに絞り込む。
さらに、図示していないが、キーワード関連合致レコードの言語条件264が“0(同一言語のみ)”に設定されている場合、関連キーワード辞書合致レコードを関連キーワード辞書合致レコードの言語コード252とキーワード辞書合致レコードの言語コード252が同一のレコードのみに絞り込む。
【0081】
検索部13は、メタデータ検索キーワードと、上述した方法により選択されて絞り込まれたキーワード辞書レコード250から仮想分類定義レコードを作成する(S1307)。
具体的には、検索部13は、メタデータ検索キーワードを仮想分類定義レコード230の表示名232に設定して、最上位の仮想分類定義レコード230を作成する。例えば、メタデータ検索条件が“タイトル=設計書”である場合、仮想分類ID231、表示名232、条件233及び上位仮想分類ID234に、それぞれ“1”、“設計書”、“条件なし”、“0(上位なし)”を設定し仮想分類定義レコード230を作成する(以下「動的生成ルート仮想分類レコード」という。)。
検索部13は、次に、関連キーワード辞書合致レコードから動的生成ルート仮想分類レコードの下位の仮想分類定義レコード230を作成する。例えば、メタデータ検索条件が“タイトル=設計書”で、メタデータ検索キーワード“設計書”に関連するキーワードが“仕様書”と“定義書”である場合、仮想分類ID231、表示名232、条件233及び上位仮想分類ID234に、それぞれ“2”、“仕様書”、“タイトル=仕様書”、“1”を設定した仮想分類定義レコード230と、それぞれ“3”、“定義書”、“タイトル=定義書”、“1”を設定した仮想分類定義レコード230を作成する(以下「動的生成仮想分類レコード」という。)。このとき、条件233は、「メタデータ検索条件の項目(“タイトル”)=関連するキーワード(“仕様書”もしくは“定義書”)」という条件を作成し設定する。また、上位仮想分類ID234には、動的生成ルート仮想分類レコードの仮想分類ID231の値“1”を設定する。
【0082】
検索部13は、動的生成ルート仮想分類レコードと動的生成仮想分類レコードとに基づいて仮想分類定義を作成する。仮想分類定義の作成が終了すると、検索部13は、作成した仮想分類定義を検索要求部31に送信する(S1308)。なお、検索部13は、動的生成ルート仮想分類レコードと動的生成仮想分類レコードを含む仮想分類定義ファイルを記憶装置2に記憶させず、ファイル検索サーバ1のメモリに記憶するのみとしてもよい。
検索要求部31は、受信した仮想分類定義を、仮想分類機能と同様に図23の仮想分類表示部(D1402)にツリー表示する。
【0083】
<メタデータ検索と全文検索の両方を行う場合の処理についての補足説明>
第1の実施形態のファイル検索システムでは、上述したとおり、クライアント3の操作者が全文検索を要求した場合にのみ、インデックス1ファイル21を利用して検索を行う。ところで、一般に全文検索を行わない場合に比べて、全文検索に要する処理時間は長くなるので、クライアント3の操作者が検索要求してから検索結果が表示されるまでの待ち時間が長くなる。そこで、クライアント3の操作者が思いがけずに長時間待たされることを防止することが望ましい。
以下、メタデータ検索と全文検索の両方を行う場合(以下「複合検索」という。)において、上記の対策を行う場合の検索部13等の動作について説明する。
【0084】
図16は、複合検索における検索部13等の動作の一例を示すフローチャートである。
図16のS1650〜S1655は、複合検索時に、図11のS1104〜S1105において検索部13が行う処理の詳細を示しており、S1601〜S1607は、当該処理に対応して検索要求部31が図10のS1006〜S1007において行う処理の詳細を示している。
【0085】
検索部13は、検索結果件数、すなわちメタデータ検索で検索されたメタデータ合致レコードのレコード数を、予め定めた所定件数(以下「最大検索件数」という。)と比較する(S1650)。
そして、メタデータ合致レコードのレコード数、すなわち全文検索対象数が最大検索件数より大きい場合(S1650:YES)には、検索要求部31に、処理続行有無を確認するメッセージを送信し(S1651)、検索要求部31から検索処理を続行するか否かの確認結果を受信するまで待つ(S1652)。
【0086】
検索要求部31は、検索部13から検索処理を続行するか否かを確認するメッセージを受信すると、当該メッセージを表示装置33に表示し、クライアント3の操作者に検索処理を続行するか否かの応答を要求する(S1601)。具体的には、例えば、ポップアップ画面に、確認メッセージと、「検索続行」及び「中止」のボタンを表示し、いずれかのボタンがクリックされるまで待てばよい。
検索要求部31は、クライアント3の操作者が「中止」のボタンをクリックする等により検索中止を指示した場合(S1602:NO)、検索部13に「検索中止」指示を送信して、処理を終了する(S1603)。従って、検索要求部31は、検索結果を表示することなく、再び、検索要求画面で検索ボタン等が押下されるのを待つ(図10のS1003、S1004)。
検索要求部31は、クライアント3の操作者が「検索続行」のボタンをクリックする等により検索続行を指示した場合(S1602でYESの場合)、検索部13に「検索続行」指示を送信し、図には明示していないが、検索部13から検索結果を受信するまで待つ。
【0087】
検索部13は、検索要求部31から「検索中止」指示又は「検索続行」指示を受信すると、受信した指示によって処理を変える(S1652)。すなわち、「検索中止」指示を受信した場合は(S1652:NO)処理を終了する。一方、「検索続行」指示を受信した場合は(S1652:YES)、メタデータ合致レコードのうち最大検索件数分のレコードのファイルパス221c、全文検索の条件及び検索部31から受信した利用者IDをインデックス1検索部14に渡して、全文検索を実行させる(S1653)。
なお、全文検索対象数が最大検索件数以下の場合(S1650:NO)には、検索要求部31に、処理続行有無を確認するメッセージを送信することなく、メタデータ合致レコードのファイルパス221c、全文検索の条件及び検索要求部31から受信した利用者IDをインデックス1検索部14に送信して、全文検索を実行させる(S1653)。
【0088】
全文検索が終了すると、検索部13は、キーワード合致レコードの各データ項目を検索要求部31に送信する(S1654)。このとき、全てのメタデータ合致レコードについて全文検索を実行したか、それとも全文検索未実行のメタデータ合致レコードが残っているかの識別も送信する。
検索部13は、次に、検索結果部(D1405)に追加表示が可能かどうかを判定する(S1655)。具体的には、メタデータ合致レコードに全文検索未実行のレコードが残っており、かつ検索要求部31に送信した検索結果の累計値が、検索要求画面(D1401)の検索結果部(D1405)に表示可能な件数として予め定めた件数(以下「最大表示件数」という。)より小さい場合(S1655:YES)には、再び、検索要求部31から検索処理を続行するか否かの確認結果を受信するまで待つ(S1652)。一方、検索結果部(D1405)に追加表示できない場合(S1655:NO)には、検索部13は処理を終了する。
【0089】
検索要求部31は、検索部13から検索結果を受信すると、検索結果部(D1405)に検索結果を表示する(S1605)。なお、前述したように、検索結果部(D1405)に追加表示が可能な限り、メタデータ合致レコードを対象とした全文検索が繰り返し実行される。従って、検索結果は検索結果部(D1405)に追加表示する。例えば、1回目の全文検索の結果が3件で、2回目の全文検索の結果が4件の場合、検索結果部(D1405)には7件の検索結果が表示される。
【0090】
検索要求部31は、次に、全文検索未実行のメタデータ合致レコードが残っており(前述したように、検索部13から、全てのメタデータ合致レコードについて全文検索を実行したか、それとも全文検索未実行のメタデータ合致レコードが残っているかの識別が送信される)、かつ検索結果部(D1405)に追加表示が可能かどうか判定する(S1606)。検索要求部31は、全文検索未実行のメタデータ合致レコードが残っており、かつ検索結果部(D1405)に追加表示が可能な場合(S1606:YES)には、処理続行有無を確認するメッセージを表示装置33に表示し(S1607)、再び、クライアント3の操作者に検索処理を続行するか否かの応答を要求する(S1602)。
【0091】
一方、検索要求部31は、全てのメタデータ合致レコードについて全文検索を実行したか、又は検索結果部(D1405)に追加表示ができない場合(S1606:NO)には、処理を終了する。従って、検索要求部31は、検索結果部(D1405)にそれまでの検索結果を表示して、再び、検索ボタン等が押下されるのを待つ(図10のS1003、S1004)。
【0092】
以上のように、全文検索対象数が最大検索件数より大きい場合に、クライアント3の操作者に検索処理を続行するか否かを問い合わせ、「検索続行」が指示された場合に全文検索する。従って、クライアント3の操作者は、検索時間が長くなりそうな場合には、いったん検索処理を中止し、例えば、メタデータの検索条件をさらに絞り込んで検索を行うことができる。
また、全文検索は最大検索件数単位で繰り返し行われ、全文検索を行うたびに、検索結果が追加表示されるので、クライアント3の操作者は、比較的短時間のうちに、検索結果を次々と確認することができる。
【0093】
<関連検索についての補足説明>
図17は、検索要求画面(D1401)に含まれる検索結果部(D1405)の表示内容を例示する。
図17においては、ファイル名とファイルパスが表示されているが、この他に、タイトル、文書記載日等、インデックス2レコード220等のデータ項目を表示してもよいし、例えば、インデックス2レコード220に検索対象ファイル43の内容の一部を設定しておき、これを表示してもよい。
また、図17において点線で囲った関連検索指示部(D1701)には、関連定義レコード240の表示名242に設定された名称が表示される。図17の例においては、表示名242にそれぞれ“タイトル”と“記載日付”が設定された2つの関連定義レコード240が存在しており、この表示名242が表示されている。
【0094】
この状態で、クライアント3の操作者が、例えば“タイトル”と表示された部分をクリックすると、検索要求部31は、検索部13に、“タイトル”に係わる関連検索を行うように要求する。具体的には、表示装置33には表示されていないが、検索結果とともに検索部13から受信した、当該検索結果ファイルに係わるファイルID221a及び“タイトル”に係わる関連定義ID241を、関連検索要求とともに検索部13に送信する。
検索部13は関連検索要求を受信すると、受信した関連定義ID241が設定された関連定義レコード240の条件243を参照し、条件243に設定されている条件に従って、インデックス2レコード220を検索し、検索結果を検索要求部31に送信する。
【0095】
例えば、関連定義ID241、表示名242及び条件243に、それぞれ“1”、“タイトル”、“タイトル222aが当該検索結果と等しい”が設定された関連定義レコード240が存在し、タイトル222aに”作業報告書“が含まれているインデックス2レコード220が4レコード存在し、それぞれのファイル名221bが”作業報告1.doc“、”作業報告2.doc“、”作業報告3.doc“及び”報告書.doc“であり、表示装置33に検索結果として”作業報告1.doc“が表示されているとする。この場合、関連検索指示部(D1701)には、”タイトル“の文字が表示される。クライアント3の操作者が、”タイトル“の文字をクリックすると、検索要求部31は、検索部13に、”作業報告1.doc“のファイルID及び関連定義ID(“1”)を送信する。
すると、検索部13は、関連定義ID241が“1”である関連定義レコード240の条件243を参照し、“タイトル222aが当該検索結果と等しい”が設定されているので、受信したファイルIDによって、”作業報告1.doc“のタイトル222aを取得し、”作業報告1.doc“と同じく、タイトル222aに”作業報告書“が含まれている”作業報告2.doc“、”作業報告3.doc“及び”報告書.doc“の3つのファイルを検索し、検索結果(例えば、ファイル名とファイルパス)を検索要求部31に送信する。そして、検索要求部31は、図18に示すように、検索結果部(D1405)に関連検索結果を表示する。
なお、関連検索結果の表示件数には特に制限を設けないようにしてもよいし、例えば、最大5件だけ表示し、5件を超える場合は、別画面に表示するようにしてもよい。
【0096】
<ファイル検索システムのその他の実施形態>
本発明に係わるファイル検索システムは、第1の実施形態に限られず、さまざまな実施形態とすることができる。その1例を以下に説明する。
【0097】
図19は、本発明の第2の実施形態に係るファイル検索システムの構成の一例を示す。
第2の実施形態においては、第1の実施形態と異なり、ファイル検索サーバ1は、インデックス1作成部11及びインデックス1検索部14を備えていない。
そのかわり、ファイル検索サーバ5が、通信回線9によって、クライアント3、ファイルサーバ4、WEBサーバ7及びファイル検索サーバ1と通信可能に接続されている。ファイル検索サーバ5は、コンピュータであり、図示しないCPUおよび主記憶装置、記憶装置6を備えている。ファイル検索サーバ5の主記憶装置には、所定のプログラムが記憶されている。CPUがその命令コードを実行することにより、インデックス1作成部11、インデックス1検索部14の各機能が実現される。また、インデックス1ファイル21はファイル検索サーバ1の記憶装置2には記憶されず、ファイル検索サーバ5の記憶装置6に記憶される。
第2の実施形態と第1の実施形態の構成上の大きな相違点は以上のとおりである。
【0098】
第2の実施形態のファイル検索システムにおいては、クライアント3、ファイルサーバ4、WEBサーバ7、ファイル検索サーバ1及びファイル検索サーバ5が、通信回線9によって相互に通信可能に接続されている。このような構成により、例えば、ある組織がデータセンタに設置されたファイルサーバ4にファイルを記憶させているとき、ファイルサーバ4に記憶された検索対象ファイル43について、インデックス2ファイル22、仮想分類定義ファイル23、関連定義ファイル24、キーワード辞書ファイル25及びキーワード関連定義ファイル26を作成することで、メタデータ検索、仮想分類表示、物理フォルダ表示及び関連検索を可能にしつつ、当該組織が管理していないWEBサーバ7の記憶装置71に記憶された検索対象ファイル72については、ファイル検索サーバ5のインデックス1作成部11が、いわゆるWEBクローリングにより、例えばApache(Apacheは登録商標)等のWEBサーバプログラムを介して、インデックス1ファイル21を作成して、全文検索を可能にすることができる。
【0099】
また、第2の実施形態においては、ファイル検索サーバ5は、ファイル検索を行おうとする組織が設置する必要はなく、世の中に存在しているファイル検索サーバの機能を使用して全文検索等を行うことができるので、柔軟性・拡張性の高い検索システムを構築することができる。
【0100】
以上説明したように、本発明によれば、全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索することができる。
例えば、組織内において作成された文書等のファイルについては、インデックス2ファイル22を作成しておき、メタデータ検索を行えばよい。メタデータ検索キーワードを用いてインデックス2ファイル22を検索することで検索結果として表示されるファイルの数を抑えることができる。たとえ、ファイルを間違ったフォルダに記憶したような場合でも、ファイルの使用目的、タイトル等が記憶された小容量のインデックス2ファイル22があれば、当該ファイルを検索できる場合が多い。
一方、例えば、特許文献、技術論文等、組織外部から入手したファイルや、WEBサーバなど、組織外部のサーバに存在しているファイルについては、入手した時点では意図しなかった用途で参照することも多く、キーワードによる全文検索が必要な場合も多い。このようなファイルについてはインデックス1ファイル21を作成しておき、全文検索を行えばよい。
【符号の説明】
【0101】
1…ファイル検索サーバ、11…インデックス1作成部、12…インデックス2作成部、13…検索部、14…インデックス1検索部、2…記憶装置、21…インデックス1ファイル、22…インデックス2ファイル、23…仮想分類定義ファイル、24…関連定義ファイル、25…キーワード辞書ファイル、26…キーワード関連定義ファイル、3…クライアント、31…検索要求部、32…入力装置、33…表示装置、4…ファイルサーバ、41…ファイル管理部、42…記憶装置、43…検索対象ファイル、5…ファイル検索サーバ、6…記憶装置、7…WEBサーバ、71…記憶装置、72…検索対象ファイル、9…通信回線
【特許請求の範囲】
【請求項1】
記憶装置から、複数の検索対象ファイルからなる第1の検索対象ファイル群と、複数の検索対象ファイルからなる第2の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第1の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス1レコードを所定のタイミングで作成し、当該各インデックス1レコードを含むインデックス1ファイルを記憶するインデックス1ファイル記憶手段と、
前記ファイル取得手段によって取得された第2の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する1以上のメタデータとを有するインデックス2レコードを所定のタイミングで作成し、当該各インデックス2レコードを含むインデックス2ファイルを記憶するインデックス2ファイル記憶手段と、
前記インデックス1ファイルに含まれる各インデックス1レコードを検索し、検索条件を満たすインデックス1レコードを取得するキーワード検索手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索し、検索条件を満たすインデックス2レコードを取得するメタデータ検索手段と、
を備えることを特徴とするファイル検索装置。
【請求項2】
仮想分類の名称を示す仮想分類表示名と、前記インデックス2ファイルに含まれるいずれかのインデックス2レコードが当該仮想分類に分類される可能性の有無を示すインデックス2レコード有無情報と、前記インデックス2ファイルに含まれる各インデックス2レコードに対応する検索対象ファイルを当該仮想分類に分類するための分類条件と、上位階層の仮想分類の有無を示す上位階層有無情報と、上位階層の仮想分類を識別するための上位階層識別情報とを有する複数の仮想分類定義レコードを含む仮想分類定義ファイルを記憶する仮想分類定義ファイル記憶手段と、
前記仮想分類定義ファイル記憶手段によって記憶された前記仮想分類定義ファイルに含まれる各仮想分類定義レコードのインデックス2レコード有無情報と分類条件と上位階層有無情報と上位階層識別情報とに基づいて、各仮想分類と各インデックス2レコードに対応する検索対象ファイルとによって構成されるツリー状の階層構造を示す仮想分類定義情報を作成する仮想分類定義手段と、
前記仮想分類定義手段によって作成された仮想分類定義情報と、当該仮想分類定義情報によって示されるツリー状の階層構造を構成する各仮想分類の仮想分類表示名および各検索対象ファイルのファイル名とを出力する仮想分類出力手段と、
を備えることを特徴とする請求項1に記載のファイル検索装置。
【請求項3】
キーワードと、当該キーワードを識別するためのキーワード識別情報とを有する複数のキーワード辞書レコードを含むキーワード辞書ファイルを記憶するキーワード辞書ファイル記憶手段と、
前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報と、当該キーワード識別情報に関連する1以上の前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報とを有する複数のキーワード関連定義レコードを含むキーワード関連定義ファイルを記憶するキーワード関連定義ファイル記憶手段と、
前記メタデータ検索手段によって検索を行う際に、当該検索の検索条件に含まれるキーワードと、前記キーワード辞書ファイルに含まれる各キーワード辞書レコードのキーワードおよびキーワード識別情報と、前記キーワード関連定義ファイルに含まれる各キーワード関連定義レコードのキーワード識別情報および当該キーワード識別情報に関連する1以上のキーワード識別情報とに基づいて、前記仮想分類定義レコードを生成する仮想分類動的生成手段と、
を備えることを特徴とする請求項3に記載のファイル検索装置。
【請求項4】
前記インデックス2レコードが、当該インデックス2レコードを識別するためのインデックス2レコード識別情報を含み、
関連定義レコードを識別するための関連定義レコード識別情報と、関連定義の名称を示す表示名と、インデックス2レコードから検索条件を取得するための検索条件取得条件とを有する1以上の関連定義レコードを含む関連定義ファイルを記憶する関連定義ファイル記憶手段と、
前記関連定義ファイル記憶手段に含まれる各関連定義レコードの関連定義レコード識別情報と表示名とを出力する関連定義情報出力手段と、
前記関連定義情報出力手段によって出力された各関連定義レコード識別情報の中から選択された関連定義レコード識別情報と、インデックス2レコード識別情報とを受け付ける受付手段と、
前記受付手段によって受け付けられたインデックス2レコード識別情報を含むインデックス2レコードから、前記関連定義ファイル記憶手段に含まれる各関連定義レコードの検索条件取得条件に基づいて検索条件を取得する検索条件取得手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索して、前記検索条件取得手段によって取得された検索条件を満たすインデックス2レコードを取得し、取得した当該インデックス2レコードに含まれるファイル名とファイルパスを出力する関連検索手段と、
を備えることを特徴とする請求項1乃至3のいずれか1項に記載のファイル検索装置。
【請求項5】
コンピュータを、
記憶装置から、複数の検索対象ファイルからなる第1の検索対象ファイル群と、複数の検索対象ファイルからなる第2の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第1の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス1レコードを所定のタイミングで作成し、当該各インデックス1レコードを含むインデックス1ファイルを記憶するインデックス1ファイル記憶手段と、
前記ファイル取得手段によって取得された第2の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する1以上のメタデータとを有するインデックス2レコードを所定のタイミングで作成し、当該各インデックス2レコードを含むインデックス2ファイルを記憶するインデックス2ファイル記憶手段と、
前記インデックス1ファイルに含まれる各インデックス1レコードを検索し、検索条件を満たすインデックス1レコードを取得するキーワード検索手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索し、検索条件を満たすインデックス2レコードを取得するメタデータ検索手段と、
して機能させるためのファイル検索プログラム。
【請求項1】
記憶装置から、複数の検索対象ファイルからなる第1の検索対象ファイル群と、複数の検索対象ファイルからなる第2の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第1の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス1レコードを所定のタイミングで作成し、当該各インデックス1レコードを含むインデックス1ファイルを記憶するインデックス1ファイル記憶手段と、
前記ファイル取得手段によって取得された第2の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する1以上のメタデータとを有するインデックス2レコードを所定のタイミングで作成し、当該各インデックス2レコードを含むインデックス2ファイルを記憶するインデックス2ファイル記憶手段と、
前記インデックス1ファイルに含まれる各インデックス1レコードを検索し、検索条件を満たすインデックス1レコードを取得するキーワード検索手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索し、検索条件を満たすインデックス2レコードを取得するメタデータ検索手段と、
を備えることを特徴とするファイル検索装置。
【請求項2】
仮想分類の名称を示す仮想分類表示名と、前記インデックス2ファイルに含まれるいずれかのインデックス2レコードが当該仮想分類に分類される可能性の有無を示すインデックス2レコード有無情報と、前記インデックス2ファイルに含まれる各インデックス2レコードに対応する検索対象ファイルを当該仮想分類に分類するための分類条件と、上位階層の仮想分類の有無を示す上位階層有無情報と、上位階層の仮想分類を識別するための上位階層識別情報とを有する複数の仮想分類定義レコードを含む仮想分類定義ファイルを記憶する仮想分類定義ファイル記憶手段と、
前記仮想分類定義ファイル記憶手段によって記憶された前記仮想分類定義ファイルに含まれる各仮想分類定義レコードのインデックス2レコード有無情報と分類条件と上位階層有無情報と上位階層識別情報とに基づいて、各仮想分類と各インデックス2レコードに対応する検索対象ファイルとによって構成されるツリー状の階層構造を示す仮想分類定義情報を作成する仮想分類定義手段と、
前記仮想分類定義手段によって作成された仮想分類定義情報と、当該仮想分類定義情報によって示されるツリー状の階層構造を構成する各仮想分類の仮想分類表示名および各検索対象ファイルのファイル名とを出力する仮想分類出力手段と、
を備えることを特徴とする請求項1に記載のファイル検索装置。
【請求項3】
キーワードと、当該キーワードを識別するためのキーワード識別情報とを有する複数のキーワード辞書レコードを含むキーワード辞書ファイルを記憶するキーワード辞書ファイル記憶手段と、
前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報と、当該キーワード識別情報に関連する1以上の前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報とを有する複数のキーワード関連定義レコードを含むキーワード関連定義ファイルを記憶するキーワード関連定義ファイル記憶手段と、
前記メタデータ検索手段によって検索を行う際に、当該検索の検索条件に含まれるキーワードと、前記キーワード辞書ファイルに含まれる各キーワード辞書レコードのキーワードおよびキーワード識別情報と、前記キーワード関連定義ファイルに含まれる各キーワード関連定義レコードのキーワード識別情報および当該キーワード識別情報に関連する1以上のキーワード識別情報とに基づいて、前記仮想分類定義レコードを生成する仮想分類動的生成手段と、
を備えることを特徴とする請求項3に記載のファイル検索装置。
【請求項4】
前記インデックス2レコードが、当該インデックス2レコードを識別するためのインデックス2レコード識別情報を含み、
関連定義レコードを識別するための関連定義レコード識別情報と、関連定義の名称を示す表示名と、インデックス2レコードから検索条件を取得するための検索条件取得条件とを有する1以上の関連定義レコードを含む関連定義ファイルを記憶する関連定義ファイル記憶手段と、
前記関連定義ファイル記憶手段に含まれる各関連定義レコードの関連定義レコード識別情報と表示名とを出力する関連定義情報出力手段と、
前記関連定義情報出力手段によって出力された各関連定義レコード識別情報の中から選択された関連定義レコード識別情報と、インデックス2レコード識別情報とを受け付ける受付手段と、
前記受付手段によって受け付けられたインデックス2レコード識別情報を含むインデックス2レコードから、前記関連定義ファイル記憶手段に含まれる各関連定義レコードの検索条件取得条件に基づいて検索条件を取得する検索条件取得手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索して、前記検索条件取得手段によって取得された検索条件を満たすインデックス2レコードを取得し、取得した当該インデックス2レコードに含まれるファイル名とファイルパスを出力する関連検索手段と、
を備えることを特徴とする請求項1乃至3のいずれか1項に記載のファイル検索装置。
【請求項5】
コンピュータを、
記憶装置から、複数の検索対象ファイルからなる第1の検索対象ファイル群と、複数の検索対象ファイルからなる第2の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第1の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス1レコードを所定のタイミングで作成し、当該各インデックス1レコードを含むインデックス1ファイルを記憶するインデックス1ファイル記憶手段と、
前記ファイル取得手段によって取得された第2の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する1以上のメタデータとを有するインデックス2レコードを所定のタイミングで作成し、当該各インデックス2レコードを含むインデックス2ファイルを記憶するインデックス2ファイル記憶手段と、
前記インデックス1ファイルに含まれる各インデックス1レコードを検索し、検索条件を満たすインデックス1レコードを取得するキーワード検索手段と、
前記インデックス2ファイルに含まれる各インデックス2レコードを検索し、検索条件を満たすインデックス2レコードを取得するメタデータ検索手段と、
して機能させるためのファイル検索プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2012−83929(P2012−83929A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−229198(P2010−229198)
【出願日】平成22年10月12日(2010.10.12)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願日】平成22年10月12日(2010.10.12)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】
[ Back to top ]