(57)【要約】【課題】検索しようとする文書ファイル等がどのようなキーワード等を含んでいるかが明らかでない場合にも検索することができるファイル検索プログラムを提供する。【解決手段】本発明に係るファイル検索プログラムは、ファイル検索サーバと、検索対象ファイルと検索対象ファイルについてのインデックスファイルを備えたファイルサーバと、クライアントとからなる、ファイル検索システムにおいて、ファイル検索サーバを、検索対象ファイルからインデックスファイルを作成するインデックスファイル作成手段と、インデックスファイルを参照して、少なくともハッシュ値を使用したファイル検索を行う検索手段として動作させることを特徴とする。【選択図】図１
2009211403.tif 000002
【特許請求の範囲】
【請求項１】
ファイル検索サーバと、検索対象ファイルと検索対象ファイルについてのインデックスファイルを備えたファイルサーバと、クライアントとからなる、ファイル検索システムにおいて、前記ファイル検索サーバを、前記検索対象ファイルから前記インデックスファイルを作成するインデックスファイル作成手段と、前記インデックスファイルを参照して、少なくともハッシュ値を使用したファイル検索を行う検索手段として動作させる、ファイル検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索対象ファイルについて予めインデックスファイルを作成し、インデックスファイルを参照して指定されたファイルを検索する、ファイル検索プログラムに関するものである。
【背景技術】
【０００２】
近年、情報のデジタル化が急速に進展している。かつては、銀行の口座や市町村の住民票等、企業・官公庁等のコンピュータシステムが基幹業務を実行するために参照するためのデータを、ファイルやＤＢ（Data Base）に記憶するというのがデジタル化の中心だった。
【０００３】
一方、現在では、企業等の組織において日常業務で作成される各種の書類が、各従業員のクライアントＰＣ（Personal Computer）に文書ファイルとして記憶され、電子メールの添付文書として他のクライアントＰＣに送信され、あるいは、組織全体の共有情報としてファイルサーバに記憶される。そして、ファイルサーバに記憶された文書ファイルは、さまざまな従業員により参照され、時にはクライアントＰＣに複製され、更新される。
【０００４】
このようにして、多量のデジタル情報がさまざまなコンピュータに分散記憶されることにより、組織内に、重複あるいは類似した多数のデジタル情報が存在することになる。また、各デジタル情報の記憶容量も増大し続けている。
【０００５】
一方、組織内において、例えば、既に退職した従業員がかつて作成した文書ファイルが必要になる等、記憶場所が不明なデジタル情報を参照したい場合が多々生ずる。このような場合、文書ファイル内に含まれているはずのキーワードやファイル作成者を指定し、指定キーワードを含む文書ファイル等を検索するという方法が広く行われている。
【０００６】
しかしながら、組織内の全てのコンピュータからデジタル情報を検索しようとすると、各従業員のクライアントＰＣにも全ての従業員からのアクセスを許可する必要があり、セキュリティ上好ましくない。このため、組織全体で共有すべきデジタル情報については所定のファイルサーバに記憶しておくということが、一般に行われている。
【０００７】
しかしながら、文書ファイル等を所定のいくつかのファイルサーバに記憶させたとしても、文書ファイルが必要になるたびにファイルサーバに記憶されている全てのファイルを検索しようとすると、ファイルＩＯ（Input Output）等を行うための膨大な時間を必要とする。
【０００８】
このため、特許文献１のように、ファイルサーバに記憶されている文書ファイル等について、記憶場所やキーワード等、検索に使用するための小容量の情報（インデックス情報）をインデックスファイルとして記憶するという技術が知られている。すなわち、インデックスファイルを作成することで、検索時に、複数ファイルについてのインデックス情報を１回のファイルＩＯで取得することが可能となり、各文書ファイル等へのファイルＩＯを不要とすることができる。この結果、ファイル検索時のレスポンスタイムを短くすることができるとともに、ファイルサーバの負荷を軽減することができる。
【０００９】
【特許文献１】特開２００３−１６２５４５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に開示された技術によっては、検索時の処理時間を短くすることができるものの、検索されるのはキーワード等によって指定された文書ファイル等のみであり、例えばファイル名が変更された場合や、使用していると思ったキーワードが含まれていないような場合には、検索しようとした文書ファイル等を探し出すことはできない。
【００１１】
本発明は、検索しようとする文書ファイル等がどのようなキーワード等を含んでいるかが明らかでない場合にも検索することができるファイル検索プログラムを提供するものである。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明に係るファイル検索プログラムは、ファイル検索サーバと、検索対象ファイルと検索対象ファイルについてのインデックスファイルを備えたファイルサーバと、クライアントとからなる、ファイル検索システムにおいて、ファイル検索サーバを、検索対象ファイルからインデックスファイルを作成するインデックスファイル作成手段と、インデックスファイルを参照して、少なくともハッシュ値を使用したファイル検索を行う検索手段として動作させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、検索しようとする文書ファイル等がどのようなキーワード等を含んでいるかが明らかでない場合にも検索することができるファイル検索プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して本発明の各実施形態について説明する。ただし、各実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
【００１５】
＜第１の実施形態＞
図１は、本発明に係る第１の実施形態における、ファイル検索システムのシステム構成図である。
【００１６】
ファイル検索システムは、クライアント３とファイルサーバ１を、ＬＡＮ（Local Area Network）４等の有線又は無線の通信回線により通信可能に接続したシステムである。ここで、クライアント３、ファイルサーバ１は１台ずつ図示しているが、それぞれ２以上存在していてもよい。
【００１７】
図１においては、クライアント３とファイルサーバ１はＬＡＮ４によって互いに通信可能に接続されているが、接続方法はＬＡＮに限定されるものではなく、例えばＷＡＮ（Wide Area Network）やインターネットによって接続されていてもよい。
【００１８】
以上のような構成により、クライアント３はファイルサーバ１にファイル検索要求（以下「検索要求」と略記する）を送信し、ファイルサーバ１はクライアント３にファイル検索結果（以下「検索結果」と略記する）を送信することができる。
【００１９】
クライアント３はＰＣ等の装置で構成され、入力装置３２、表示装置３３および記憶装置５と通信可能に接続されている。入力装置３２はキーボード、マウス等の装置であり、クライアント３の操作者は入力装置３２を操作することで、クライアント３が実行するべき処理を指示することができる。すなわち入力装置３２はクライアント３の入力手段として機能する。
【００２０】
表示装置３３は液晶ディスプレイ、プリンタ等の装置であり、クライアント３が実行した処理の結果等を表示あるいは印刷出力する。すなわち表示装置３３はクライアント３の表示手段および出力手段として機能する。記憶装置５は磁気ディスク等の装置であり、クライアント３に内蔵され又は外部接続される。記憶装置５と、図示していないがクライアント３の主記憶装置等は、クライアント３の記憶手段として機能する。
【００２１】
クライアント３は、図示していないが、ＣＰＵ（Central Processing Unit）、主記憶装置等を備えている。ＣＰＵは、例えば、記憶装置５に記憶されている検索要求プログラム等のプログラムを主記憶上にローディングし、その命令コードを実行することで各種の処理を実行する。以上のようなプログラム実行にかかわる技術は周知であるので、以降の説明および図面においては、プログラム実行に係る説明が煩雑になるのを避けるため、検索要求プログラムを検索要求手段というように、各種プログラムについてあたかもハードウェアが存在するかのように記載し、各手段が処理を実行するかのように記載する。なお、実際に各手段（例えば検索要求手段３１）を電子装置または電子装置とファームウェアの組合せ等で構成することも可能である。
【００２２】
検索要求手段３１は上述したように検索要求プログラムであり、クライアント３の操作者が入力装置３２によって入力したファイル検索条件およびファイル検索指示（例えば、ファイル名が「会計ファイル」であるファイルを検索するように、という指示）を受けて、検索条件式を作成し、ファイルサーバ１に検索条件式を含む検索要求を送信する。また、ファイルサーバ１がクライアント３に送信した検索結果を受信し、表示装置３３に表示する。
【００２３】
ファイルサーバ１はＰＣ等の装置で構成され、記憶装置２と通信可能に接続されている。記憶装置２は磁気ディスク等の装置であり、ファイルサーバ１に内蔵され又は外部接続される。記憶装置２と、図示していないがファイルサーバ１の主記憶装置等は、ファイルサーバ１の記憶手段として機能する。
【００２４】
記憶装置２には、インデックスファイル２１および検索対象ファイル２２が記憶されている。インデックスファイル２１および検索対象ファイル２２の記憶内容等については、以降のファイルサーバ１の機能説明と合わせて説明する。
【００２５】
ファイルサーバ１は、インデックス作成手段１１（インデックス作成プログラム）および検索手段１２（検索プログラム）を備えている。
【００２６】
インデックス作成手段１１は、例えば毎日同じ時刻等の所定のタイミングで、検索対象ファイル２２を参照し、インデックスファイル２１を作成する。ここで、検索対象ファイル２２は、ファイルサーバ１がクライアント３からの検索要求を受信した場合に、検索対象とすべきファイルであり、例えば記憶装置２に記憶されている全てのファイルであってもよいし、あるいは、特定のフォルダ内の全てのファイル等、記憶装置２に記憶されている一部のファイルであってもよい。
【００２７】
いずれの場合であっても、検索要求を受信するたびに検索対象ファイル２２を参照して検索すると、そのたびに多数のファイルＩＯが発生する。そこで、検索に要する時間を短縮するとともに検索によるファイルサーバ１の負荷増大を防止するために、検索対象ファイル２２のファイル名、作成者等、検索条件として使用される可能性の高い、比較的小容量の情報（以下「インデックス情報」という）を、インデックスファイル２１に記憶しておく。
【００２８】
例えば複数のインデックス情報を１ファイルにまとめて記憶することで、１回のファイルＩＯで複数のインデックス情報が参照できる。ファイルサーバ１はクライアント３からの検索要求を受信した場合に、まずインデックス情報を参照して、検索要求の検索条件式に合致するファイルが存在するか判定することができる。
【００２９】
なお、上記のように、インデックス情報を参照して検索する場合、インデックス情報作成後に検索対象ファイル２２が削除されあるいは変更された場合（例えばファイル名が「会計ファイル」であるファイルについてインデックス情報が作成された後、当該ファイルが削除された場合）、検索対象ファイル２２を検索した場合とは異なる検索結果が得られることになる（インデックス情報を参照すると「会計ファイル」が存在しているように見えるが、検索対象ファイル２２には存在していない）。そこで、前述したように、インデックス作成手段１１は、例えば毎日同じ時刻等の所定のタイミングで処理を行うようにすることができる。このようにすることで、インデックスファイル２１が定期的に更新され、検索対象ファイル２２と大きく乖離することを防ぐことができる。
【００３０】
そして、インデックス作成手段１１が処理を行うタイミングの間隔を短くすることで（例えば、１時間おきに処理を行うようにすることで）、インデックスファイル２１と検索対象ファイル２２の乖離を、より小さくすることができる。ただし、インデックス作成手段１１が処理を行うタイミングの間隔を短くするということは、検索対象ファイル２２の全ファイルに対するＩＯが発生する間隔も短くなるということなので、ファイルサーバ１の性能等も考慮した上で、インデックス作成手段１１が処理を行うタイミングの間隔を決める必要がある。
【００３１】
例えば、ファイルサーバ１において、ＣＰＵ使用率、一定時間におけるＩＯ頻度等を常時監視するプログラムを走行させておき、ＣＰＵ使用率、一定時間におけるＩＯ頻度等が所定値以下になった場合に、インデックス作成手段１１を実行させるようにする等も、有効な方法である。あるいは、検索対象ファイル２２におけるＩＯを常時監視するプログラムを走行させておき、検索対象ファイル２２が更新等されるたびに、インデックスファイル２１内の当該ファイルについてのインデックス情報を更新するようにしてもよい。
【００３２】
検索手段１２は、ファイルサーバ１がクライアント３からの検索要求を受信した場合に起動され、ファイル検索を実行する。具体的には、インデックスファイル２１（インデックス情報）を参照し、検索要求の検索条件式に合致するファイルが存在するかどうか判定し、存在する場合には、合致したファイルのファイル名等からなる検索結果をクライアント３に送信する。
【００３３】
ただし、例えば、検索条件式として、所定のキーワード（例えば「０７年度」および「監査結果」）を含むファイルを検索するように指定された場合、インデックス情報を参照するだけでは、検索条件式に合致するファイルが存在するか否かを判定できない場合がある。インデックス情報には検索対象ファイル２２の全ての内容が記憶されているわけではないからである。このように、インデックス情報を参照するだけでは、検索条件式に合致するファイルが存在するか否かを判定できない場合には、検索手段１２は、検索対象ファイル２２も参照して、検索条件式に合致するか否かを判定する。
【００３４】
図２は、第１の実施形態における、インデックスファイル２１のデータ構成図である。インデックスファイル２１は、各検索対象ファイル２１と対応するインデックスレコード２１０から構成される。すなわち各インデックスレコード２１０は、インデックスファイル２１作成時点の検索対象ファイル２２と１対１に対応している。
【００３５】
インデックスレコード２１０は、ファイル名２１１、利用者ＩＤ２１３、アクセス権限２１４、アクセス時刻２１５、ファイル記憶場所２１６、およびハッシュ値２１７の各データ項目から構成される。利用者ＩＤ２１３とアクセス権限２１４は、利用者別アクセス権限２１２と総称し、対応する検索対象ファイル２２についてアクセス権限を有する利用者数分（ｍ個）設定される。また、ハッシュ値２１７は後述するように１以上（ｎ個）設定される。
【００３６】
ファイル名２１１には、対応する検索対象ファイル２２のファイル名が記憶される。具体的には、例えば当該ファイルを作成する際にファイルの作成者によって付与され、ファイルの属性情報（例えばMicrosoft Office（Microsoftは登録商標）ファイルのプロパティー）として記憶されているタイトル名を記憶すればよい。
【００３７】
利用者別アクセス権限２１２には、対応する検索対象ファイル２２に対して設定されているアクセス権限が、１以上、利用者別に記憶される。具体的には、例えば図示していないがファイルサーバ１のアクセス管理プログラム等によって付与され、ファイルの属性情報として記憶されているアクセス権限（例えば、ユーザ１は参照および更新権限を有し、ユーザ２は参照権限のみ有する、等）を記憶すればよい。
【００３８】
利用者ＩＤ２１３には、上記のアクセス権限のうち利用者を特定するＩＤが記憶される。また、アクセス権限２１４には、当該利用者が有する権限が記憶される。
【００３９】
アクセス時刻２１５には、対応する検索対象ファイル２２の最終アクセス時刻が記憶される。具体的には、ファイルの属性情報として記憶されており、図示していないがファイルサーバ１のファイル管理プログラム等が、ファイルアクセスが発生するたびに更新する最終アクセス時刻を記憶すればよい。
【００４０】
なお、以上のほか、ファイル作成者等、他のファイル属性情報についても、インデックスレコード２１０のデータ項目とすることができる。
【００４１】
ファイル記憶場所２１６には、対応する検索対象ファイル２２の記憶場所が記憶される。例えば、「//common/finantial/074q/file2」（ルート直下の「common」フォルダ内の「finantial」フォルダ内の「074q」フォルダ内のfile2）のようにファイルの絶対パスを記憶してもよいし、特定のフォルダを基準とした相対パスを記憶してもよい。その他、ファイルの記憶場所を特定することが可能な任意の情報を記憶すればよい。
【００４２】
ハッシュ値２１７には、対応する検索対象ファイル２２の記憶内容から作成したハッシュ値がｎ個（ｎ≧１）記憶される。なお、ファイル２２の記憶内容からハッシュ値を作成する技術そのものは良く知られている。
【００４３】
例えば、ファイルの記憶内容全体をハッシュ関数によって変換した結果値を１つ記憶してもよい。このようにして作成したハッシュ値２１７を記憶することで、次のような検索が可能になる。例えば、クライアント３の操作者がファイルを作成し、記憶装置５に記憶するとともに、他のクライアント３と共有するために記憶装置２に同じファイルを複製し、その後、記憶装置２のどこに記憶したのか分からなくなった場合、記憶装置５に記憶されているファイルの記憶内容からハッシュ値を作成し、これと一致するファイルを検索することで、検索結果として記憶装置２の記憶場所を得ることができる。また、上記の例で記憶装置５から元のファイルを削除する場合であっても、削除前にファイルのハッシュ値を作成して、記憶装置５に記憶しておくことで、記憶装置２に複製されたファイルを検索することができる。クライアント３の操作者が機密ファイルを作成し、いつまでも記憶装置５に記憶しておきたくないような場合、このようにすることで、クライアント３からの情報漏洩を防止しつつ、必要な場合に、ファイルを容易に検索することができる。
【００４４】
また、ハッシュ値２１７として、例えば、ファイルの記憶内容を１００バイトごとにハッシュ関数により変換して、その結果（各ハッシュ値）を記憶してもよい。例えば、記憶内容が４００バイト長だった場合、先頭から１００バイトずつ、４つのハッシュ値を記憶する（図２においてｎ＝４）。このようにすることで、例えば先頭のハッシュ値２１７を検索条件として指定し、先頭のハッシュ値２１７が一致するファイルを検索することで、元のファイルを変更したファイルや流用して作成したファイル（以下、元のファイルと「類似する」ファイルという）を検索することができる。
【００４５】
文書ファイル等を作成する場合に、まとまった長さ（例えば先頭１００バイト）の部分が偶然に一致する可能性は低く、従って、いずれかのハッシュ値２１７が一致するなら、変更あるいは流用したと判断することができるからである。もっとも、例えば文書ファイルの一部を変更した場合、変更部分以降のファイル上の位置がずれるため、上記のように先頭から１００バイトごとにハッシュ値を得る方法では、先頭付近が変更されてしまうと全てのハッシュ値が異なることになる。
【００４６】
従って、ファイルの拡張子や記憶内容を参照し、ファイルの種類によってハッシュ値の作成方法を変更してもよい。例えば、作成時の内容はそのまま変えず、内容が変更・削除等された場合には、変更履歴情報を追加していくようなファイルであれば、前述したとおり、先頭から一定長ごとにハッシュ値を作成すればよい。
【００４７】
一方、内容が変更・削除等された場合に、変更・削除後の内容で記憶内容を置き換えるような文書ファイルであれば、例えば、文書の各ページに対応してハッシュ値を作成すればよい。例えばページ区切りデータを判定することで、各ページに対応したハッシュ値を作成することができる。あるいは、スプレッド・シートのファイルであれば、シートごとにハッシュ値を作成すればよい。
【００４８】
また、各ページやシートを例えば３分割し、先頭部１００バイト、末尾部１００バイトのそれぞれについてハッシュ値を作成してもよい。このようにすることで、ページ数が変わるような大きな変更が行われない限り、元のファイルを変更したファイルや流用して作成したファイルを検索することができる。
【００４９】
さらに、例えばＸＭＬ（Extensible Markup Language）ファイルであれば、ハッシュ値の作成対象となる記憶内容をタグで指定してもよい。例えば、<Hash>タグから</Hash>タグまでの間をハッシュ関数によって変換した結果値を記憶すればよい。このようにすることで、ファイルの作成者自身が、ハッシュ値の作成対象を決めることができる。従って、当該ファイル特有の部分であり、かつ変更する可能性が記憶内容をハッシュ値の作成対象と指定しておき、ハッシュ値を記憶装置５に記憶しておくことで、元のファイルを変更したファイルや流用して作成したファイルを、より確実に検索することができる。複数の記憶内容について<Hash>タグおよび</Hash>タグによる指定を行い、ハッシュ値を２以上作成しておくことで、さらに確実に検索することができる。
【００５０】
なお、インデックスレコード２１０には、ハッシュ値２１７以外のデータを、ファイルの記憶内容から作成して記憶してもよい。例えば、当該ファイルのデータ内で頻出する単語を記憶してもよい。このようにすることで、キーワードを指定した検索においても、検索対象ファイル２２を参照せず、インデックスファイル２１を参照して検索することが可能になる。
【００５１】
以上のようにして記憶されたインデックスレコード２１０は、検索手段１２により、前述したインデックス情報として参照される。
【００５２】
図３は、第１の実施形態における、インデックス作成手段１１の動作を示すフローチャートである。
【００５３】
インデックス作成手段１１は、前述したように所定のタイミングで起動されると、インデックスファイル２１を削除する（Ｓ３０１）。
【００５４】
インデックス作成手段１１は、次に、全ての検索対象ファイル２２について、インデックスレコード２１０の作成処理等（Ｓ３０２、Ｓ３０４）を行う。
【００５５】
例えば、記憶装置２の特定フォルダ内の全てのファイルが検索対象ファイル２２である場合、インデックス作成手段１１は、当該フォルダ内のファイルを順次参照し、各ファイルについてインデックスレコード２１０を作成する。すなわち、ファイルの属性情報を参照して、ファイル名２１１、利用者別アクセス権限２１２、アクセス時刻２１５を設定し、当該検索対象ファイル２２の記憶場所をファイル記憶場所２１６に設定する。また、当該検索対象ファイル２２の記憶内容から作成したハッシュ値をハッシュ値２１７に設定し、インデックスレコード２１０を記憶装置２に記憶する（Ｓ３０２）。なお、各データ項目の具体的な設定内容は、図２によって説明した通りである。
【００５６】
インデックス作成手段１１は、インデックスレコード２１０を作成する（Ｓ３０２）と、当該検索対象ファイル２２の最終アクセス時刻を元に戻す（Ｓ３０４）。インデックスレコード２１０作成のために、検索対象ファイル２２を参照することで、最終アクセス時刻が更新されてしまうため、参照前に記憶されていた時刻に戻すためである。具体的には、検索対象ファイル２２の最終アクセス時刻をアクセス時刻２１５で更新すればよい。なお、最終アクセス時刻等のファイル属性情報を参照する前にファイルの内容を参照すると、これによって最終アクセス時刻が更新されてしまい、元に戻すことができなくなるため、まず最終アクセス時刻等を参照し、その後でファイルの内容を参照する必要がある。
【００５７】
全ての検索対象ファイル２２について、インデックスレコード２１０の作成処理等（Ｓ３０２、Ｓ３０４）を行うと、インデックス作成手段１１は、処理を終了する。
【００５８】
以上で説明したように、第１の実施形態においては、インデックス作成手段１１が処理を行うたびに、処理時点の検索対象ファイル２２に合わせて、インデックスファイル２１が再作成される。
【００５９】
図４は、第１の実施形態における、検索要求手段３１の動作を示すフローチャートである。検索要求手段３１は、クライアント３の操作者が入力装置３２を使用して起動する。
【００６０】
検索要求手段３１は、起動されると、ログイン処理を行う（Ｓ４０１）。具体的には、表示装置３３に図７のようなログイン画面を表示し、クライアント３の操作者が入力装置３２を使用して利用者ＩＤおよびパスワードを入力し、「実行」ボタンを押すと、入力された利用者ＩＤとパスワードが適切かどうか判定する。なお、上記のようなログイン処理自体は周知技術であるので、これ以上の説明は省力する。
【００６１】
検索要求手段３１は、入力された利用者ＩＤとパスワードが適切であると判定した場合、表示装置３３に検索要求画面を表示する（Ｓ４０２）。図８に検索要求画面の表示例を示す。図８において、検索要求画面は、検索条件部Ｇ８１、検索結果部Ｇ８２および「検索」、「終了」のボタンから構成されている。
【００６２】
クライアント３の操作者は入力装置３２を使用して検索条件部Ｇ８１の各項目を入力する。検索条件部Ｇ８１に入力した項目は検索条件となり、例えば、利用者ＩＤに「USER3」、アクセス権限に「R」を入力した場合、USER3が参照権限を持つファイルが検索対象となる。ここで、検索条件部Ｇ８１の各項目については、さまざまな入力方法を可能にすることで検索の利便性を向上させることができる。例えば、利用者ＩＤに「not USER1」、「USER1 or USER2」等の論理式入力を可能にしたり、アクセス権限に「R only」（参照権限のみで更新権限なし）等の入力を可能にすればよい。なお、検索条件部Ｇ８１の入力項目は、図示した項目に限る必要はなく、例えばファイル名、ハッシュ値等、インデックスファイル２１のデータ項目と合わせて決めればよい。さらに、インデックスファイル２１のデータ項目にない項目であっても、検索対象ファイル２２の属性情報または記憶内容と照合可能な項目であれば、どのような項目であってもよい。
【００６３】
また、検索結果部Ｇ８２には、検索結果がスクロール表示される。検索結果部Ｇ８２の表示内容については、以降で具体的に説明する。
【００６４】
検索要求手段３１は、検索要求画面表示（Ｓ４０２）後、検索ボタンまたは終了ボタンが押下されるのを待つ（Ｓ４０３、Ｓ４０５）。検索ボタンが押された場合、すなわち検索要求を検知した場合、検索要求処理（Ｓ４０６、Ｓ４０７、Ｓ４０９）を行う（Ｓ４０３）。また、終了ボタンが押された場合、すなわち終了要求を検知した場合、処理を終了する（Ｓ４０５）。
【００６５】
検索要求手段３１は、検索要求を検知した場合、検索条件部Ｇ８１の入力内容から、検索条件を作成し、ファイルサーバ１に送信する（Ｓ４０６）。例えば、利用者ＩＤに「USER3」、アクセス権限に「R」、キーワードに「０７年度」が入力された場合、「Search * (利用者ＩＤ= USER3) and （アクセス権限=R） and （キーワード=０７年度）」といった検索条件式を作成し、ログイン画面で入力された利用者ＩＤとともに、ファイルサーバ１のＩＰアドレスに送信する。ここで、検索条件式は検索手段１２によって解釈される式であり、検索手段１２が解釈可能な構文規則等に従って作成すればよい。例えば、アクセス時刻については、「200707011200:」（２００７年７月１日１２時０分以降）といった入力を許可し、この入力から「Search * (アクセス時刻>= 200707011200)」といった検索条件式を作成すればよい。また、例えば、ハッシュ値については「2:16 shiek0igatrelk7」（ハッシュ値の２バイト目から１６バイト目までの１５バイトの値が「shiek0igatrelk7」）といった入力を許可し、この入力から「Search * (ハッシュ値(2:16) = shiek0igatrelk7)」といった検索条件式を作成すればよい。
【００６６】
なお、利用者ＩＤが入力されない場合は、ログイン画面で入力された利用者ＩＤが入力されたものとみなして検索条件式を作成すればよい。また、このとき、アクセス権限も入力されていない場合は、参照権限を持つファイルを検索するように支持されたとみなして検索条件式を作成すればよい。
【００６７】
検索要求手段３１は、検索条件式をファイルサーバ１に送信した後、ファイルサーバ１から検索結果を受信するまで待つ（Ｓ４０７）。検索結果を受信すると、検索結果を検索要求画面の検索結果部Ｇ８２に表示し（Ｓ４０９）、再び、検索ボタンまたは終了ボタンが押下されるのを待つ（Ｓ４０３、Ｓ４０５）。
【００６８】
ここで、検索結果部Ｇ８２には、例えば図９に示す内容が表示される（Ｓ４０９）。図９において、「server1.somecompany.co.jp/finantial/074q/file2」（以下「ファイルＡ」という）と、「server1.somecompany.co.jp/mailbox/user3/file2」（以下「ファイルＢ」という）の２つのファイルと、「server1.somecompany.co.jp/section1/user3/file1」（以下「ファイルＣ」という）が存在する。ファイルＡとＢは、検索条件式に合致したファイルである。その一方、ファイルＣは、検索条件式には合致しないが、ファイルＢと類似するファイルである。このことをクライアント３の操作者に知らせるために、ファイルＣを、ファイルＢの下に表示開始位置をずらして表示している。なお、ファイルが類似するか否かの判定方法については、以降で、検索手段１２の処理説明において説明する。
【００６９】
また、ファイルＡのように、複数の利用者に対してアクセス権限が設定されている場合は（図９の例では、USER1に対して参照および更新権限、USER3に対して参照権限が設定されている）、図９のように、設定されている全てのアクセス権限を多段に表示すればよい。
【００７０】
このような表示を可能にするためには、検索手段１２からクライアント３に、検索結果として、インデックスレコード２１０のデータ項目（ファイル名２１１、利用者別アクセス権限２１２、アクセス時刻２１５、ファイル記憶場所２１６およびハッシュ値２１７）に加えて、検索条件に合致するファイル、合致しないが類似するファイルのいずれであるかを示すデータ項目を送信すればよい。そして、検索要求手段３１が検索結果を検索結果部Ｇ８２に表示する際、検索条件に合致するファイルの下に、合致しないが類似するファイルのうち、ハッシュ値２１７のいずれかが一致するファイルを表示すればよい。
【００７１】
なお、検索結果部Ｇ８２には、図９に示す他に、検索結果に含まれる任意のデータ項目をそのまま、あるいは編集して表示することができる。
【００７２】
図５は、第１の実施形態における、検索手段１２の動作を示すフローチャートである。検索手段１２は、ファイルサーバ１がクライアント３からの検索要求を受信すると、ファイルサーバ１により起動される。
【００７３】
検索手段１２は、まず、検索要求に含まれる検索条件式を解析し、インデックスファイル２１（インデックスレコード２１０）を参照して、検索条件と合致するファイル（インデックスレコード２１０）を選択する（Ｓ５０１）。例えば、検索条件式が「Search * (利用者ＩＤ= USER3) and （アクセス権限=R） and （キーワード=０７年度）」である場合、利用者ＩＤ２１３が「USER3」であり、アクセス権限２１４として「参照可能」が設定されている全てのインデックスレコード２１０を選択する。
【００７４】
検索手段１２は、次に検索条件式にキーワード指定が含まれているかどうか判定し（Ｓ５０２）、含まれている場合（例えば、上記の検索式のように「キーワード=０７年度」といった条件が指定されている場合）、Ｓ５０１において選択した全ファイルについて、キーワード検索を実行し（Ｓ５０３）、検索結果として送信対象とすべきファイル（インデックスレコード２１０）を確定する。一方、例えば、検索条件式が「Search * (利用者ＩＤ= USER3) and （アクセス権限=R）」である場合には、検索条件式にキーワード指定が含まれていないのでキーワード検索は行わず、Ｓ５０１において選択したファイル（インデックスレコード２１０）全てを送信対象とする。
【００７５】
検索手段１２は、以上の処理によって送信対象とするファイル（インデックスレコード２１０）を決定した後、再び、インデックスファイル２１（インデックスレコード２１０）を参照して、送信対象としたファイルと類似するファイル（インデックスレコード２１０）を選択する（Ｓ５０４）。具体的には、送信対象としたインデックスレコード２１０それぞれについて、ハッシュ値２１７を、送信対象としていないインデックスレコード２１０のハッシュ値２１７と比較し、いずれかが一致するインデックスレコード２１０を全て選択する。このようにすることで、類似するファイルを網羅的に検索することが可能になる。なお、ハッシュ値２１７のいずれかが一致するという条件でなく、例えば半数以上（ハッシュ値２１７が５つ記憶されている場合は、そのうちの３つ以上）が一致するという条件で選択してもよい。このようにすることで、より類似したファイル（インデックスレコード２１０）のみを選択することが可能になる。
【００７６】
検索手段１２は、Ｓ５０１〜Ｓ５０３の処理で送信対象としたファイルのインデックスレコード２１０、およびＳ５０４で選択した類似するファイルインデックスレコード２１０の全てについて、データ項目（ファイル名２１１、利用者別アクセス権限２１２、アクセス時刻２１５、ファイル記憶場所２１６およびハッシュ値２１７）を検索結果としてクライアント３に送信する。このとき、各インデックスレコード２１０について、検索条件に合致するファイル、合致しないが類似するファイルのいずれであるかを示すデータ項目も送信する（Ｓ５０５）。検索手段１２は、送信後、処理を終了する。
【００７７】
図６は、第１の実施形態における、検索手段１２のキーワード検索処理（Ｓ５０３）のフローチャートである。
【００７８】
検索手段１２は、Ｓ５０１の処理で選択されたファイル（図６についての以降の説明で「選択ファイル」という）について、クライアント３の操作者が参照権限を有しているか判定する（Ｓ６０１）。ファイル参照権限がない場合、選択ファイルについてキーワード検索を行うと、操作者に当該キーワードが含まれていることを教えることになり、ファイルの記憶内容の一部が知られてしまうため、参照権限を与えていない目的に沿わない。そこでインデックスレコード２１０を参照することで、キーワード検索の可否を判定するのである。具体的には、クライアント３から受信した検索要求に含まれる利用者ＩＤと、選択ファイルについての利用者ＩＤ２１３を照合し、アクセス権限２１４として「参照」が許されているか否かを判定する。
【００７９】
検索手段１２は、参照権限がない場合（Ｓ６０１でＮＯの場合）、インデックスレコード２１０のハッシュ値２１７を参照し、同一のハッシュ値２１７が設定されており、かつクライアント３の操作者が参照権限を有しているインデックスレコード２１０（図６についての以降の説明で「類似インデックスレコード」という）が存在するか否かを判定する（Ｓ６０２）。同一内容のファイルが、例えば電子メールの添付書類として複製され、内容が同一でもアクセス権限が異なるファイルが複数存在する可能性があるためである。特に多数のクライアント３により頻繁に参照されるファイル、言い換えればクライアント３の操作者が検索しようとしている可能性が高いファイルについては、内容が同一でアクセス権限が異なるファイルが複数存在する可能性が高い。従って検索条件には合致しないが、内容が同一でかつ検索を要求したクライアント３の操作者が参照権限を有するファイルが存在する可能性は高く、このようにハッシュ値２１７を参照することで内容が同一のファイルを検索するのは有効な手法である。
【００８０】
このとき、選択ファイルについてのインデックスレコード２１０にハッシュ値２１７が複数設定されている場合には、その一部のハッシュ値２１７のみが設定されているインデックスレコード２１０についてクライアント３の操作者が参照権限を有しているか否か判定すればよい。例えば、選択ファイルについてのインデックスレコード２１０にハッシュ値２１７として、ハッシュ値Ａ、ハッシュ値Ｂ、ハッシュ値Ｃの３つが設定されている場合、ハッシュ値Ａ、ハッシュ値Ｃの２つのハッシュ値２１７が設定されているインデックスレコード２１０は判定対象となる。例えば、文書ファイルのページごとにハッシュ値を作成する場合、もともと３ページから構成されていた文書ファイルについて２ページ目が削除された場合に、このような現象が発生する。
【００８１】
検索手段１２は、類似インデックスレコードが存在しない場合（Ｓ６０２でＮＯの場合）、選択ファイルを送信対象外とする（Ｓ６０３）。
【００８２】
一方、検索手段１２は、選択ファイルについてクライアント３の操作者が参照権限を有している場合（Ｓ６０１でＹＥＳの場合）、ファイル記憶場所２１６により当該ファイルを参照し、検索条件式のキーワード条件が合致するかを判定する（Ｓ６０４）。また、類似インデックスレコードが存在する場合（Ｓ６０２でＹＥＳの場合）、類似インデックスレコード全てについてファイル記憶場所２１６のファイル（図６についての以降の説明で「類似ファイル」という）を参照し、類似ファイルのいずれかにつき検索条件式のキーワード条件が合致するかを判定する（Ｓ６０４）。
【００８３】
キーワード条件が合致するかの判定手法そのものは周知の技術であるので詳述しないが、例えば「キーワード=０７年度」という検索条件が指定されている場合、「０７年度」という単語を含むファイルを、「キーワード not = ０７年度」という検索条件が指定されている場合、「０７年度」という単語を含まないファイルを合致するファイルと判定すればよい。このほか、さまざまな論理式を組み合わせてキーワード条件とすることができる。
【００８４】
検索手段１２は、キーワード条件が合致する場合（Ｓ６０４でＹＥＳの場合）、選択ファイルを送信対象とし（Ｓ６０５）、合致しない場合（Ｓ６０４でＮＯの場合）、選択ファイルを送信対象外とする（Ｓ６０６）。
【００８５】
また、検索手段１２は、Ｓ６０４の処理で参照した全てのファイル（すなわち選択ファイルおよび類似ファイル）について、最終アクセス時刻を参照前の状態に戻す。具体的には、Ｓ６０４の処理において、ファイル参照前にまず最終アクセス時刻を取得しておき、参照後に取得しておいた最終アクセス時刻を設定すればよい。
【００８６】
なお、以上の処理に加え、検索手段１２は、選択ファイルおよび類似ファイルを参照した際に、インデックスレコード２１０の各データ項目を更新してもよい。このようにすることで、余分なファイルＩＯを行うことなく、検索のたびに、インデックスレコード２１０のデータ項目を最新に近い状態に保つことができる。
【００８７】
＜第２の実施形態＞
図１０は、本発明に係る第２の実施形態における、インデックスファイル２１のデータ構成図である。なお、第２の実施形態おける、ファイル検索システムのシステム構成は、第１の実施形態と同一であり、図１で説明した通りである。
【００８８】
第２の実施形態におけるインデックスファイル２１のデータ構成も、第１の実施形態とほぼ同一であり、削除時刻２１８を備えている点のみが異なる。
【００８９】
ここで削除時刻２１８は、インデックスレコード２１０に対応する検索対象ファイル２２が削除されているか否かを示すためのデータ項目であり、検索対象ファイル２２が削除されているか否かは、インデックス作成手段１１が判定する。すなわち、インデックス作成手段１１は、検索対象ファイル２２についてインデックスレコード２１０を作成する際に、削除時刻２１８に削除されていないことを示す値（例えば「０」）を設定し、当該インデックスレコード２１０に対応する検索対象ファイル２２が削除されたと判定した場合に、判定時の年月日時刻を設定する。
【００９０】
このように、第２の実施形態においては、所定のタイミングにおいてインデックスファイル２１を再作成するのでなく、インデックス作成手段１１が処理を行うたびに、インデックスファイル２１の各インデックスレコード２１０が更新される。すなわち第２の実施形態においては、削除された検索対象ファイル２２についてもインデックスレコード２１０が存在するため、例えば、後述するように、削除されたファイルも含めて、同一または類似するファイルの更新・複製履歴を検索することも可能になる。
【００９１】
図１１は、第２の実施形態における、インデックス作成手段１１の動作を示すフローチャートである。
【００９２】
インデックス作成手段１１は、検索対象ファイル２２の全ファイルを順次参照して、各ファイルについてインデックス作成・更新処理（Ｓ３０１、Ｓ３０２、Ｓ３０３およびＳ３０４の処理）を行う。この点は、第１の実施形態と似ているが、インデックス作成手段１１は、起動するとインデックスファイル２１を削除する（図３のＳ３０１）のでなく、各ファイルについて、未削除のインデックスレコード２１０が存在するか判定する（Ｓ３０１）。具体的には、当該ファイルのファイル記憶場所とインデックスレコード２１０のファイル記憶場所２１６が一致し、かつ削除時刻２１８が設定されていない（例えば「０」が設定されている）インデックスレコード２１０が存在するか否か判定する。
【００９３】
存在する場合（Ｓ３０１でＹＥＳの場合）、インデックスレコード２１０の各データ項目を更新し、更新後のインデックスレコード２１０を記憶装置２に記憶する（Ｓ３０２）。存在しない場合（Ｓ３０１でＮＯの場合）、インデックスレコード２１０の各データ項目を設定し、インデックスレコード２１０を記憶装置２に記憶する（Ｓ３０３）。なお、各データ項目の具体的な更新内容（設定内容）は、図２および図１０によって説明した通りである。いずれの場合も、検索対象ファイル２２の最終アクセス時刻を元に戻す（Ｓ３０４）。Ｓ３０４の処理詳細は、図３で説明したとおりである。
【００９４】
インデックス作成手段１１は、前述したインデックス作成・更新処理を終了すると、対応する検索対象ファイル２２が存在しないインデックスレコード２１０を削除済みとする（Ｓ３０５）。具体的には、インデックス作成・更新処理において作成も更新もされなかった全てのインデックスレコード２１０のうち、削除時刻２１８が設定されていないインデックスレコード２１０の削除時刻２１８にシステム年月日時刻を設定する。すなわち、インデックス作成・更新処理において作成も更新もされなかったということは、インデックスレコード２１０が作成された後でファイルが削除された（又はファイル記憶場所が変わった）ということを意味し、また削除時刻２１８が設定されていないということは、インデックス作成手段１１が前回処理を行った後で削除等されたということを意味する。そこで、削除されているということを示すために削除時刻２１８を設定し、また、実際に削除された時刻は不明であるため、少なくともこの時点では削除されていたということを示すために、システム年月日時刻を設定するのである。
【００９５】
図１２は、第２の実施形態における、検索要求画面での検索結果の表示内容を例示した図である。例えば、検索要求画面で、USER3が参照権限を有し、キーワードとして「０７年度第４Ｑ」を含むファイルを検索するように入力が行われ、
「server1.somecompany.co.jp/finantial/074q/file2」（以下「ファイルＡ」という）と
「server1.somecompany.co.jp/mailbox/user3/file2」（以下「ファイルＢ」という）が当該条件に該当し、
さらに「server1.somecompany.co.jp/section1/user3/file1」（以下「ファイルＣ」という）と「server1.somecompany.co.jp/section1/user3/file7」（以下「ファイルＤ」という）は当該条件に該当しないが、ファイルＢと類似するファイルだった場合、図１２のように検索結果が表示される。ここで、ファイルＤについて「[削除]」と表示されているのは、ファイルＤのインデックスレコード２１０の削除時刻２１８が設定されているからである。このように削除済みファイルも含めて、類似するファイルを例えばアクセス時刻２１５の降順に表示することで、検索したファイルのファイル更新履歴をより正確に把握することが可能になる。
【００９６】
＜第３の実施形態＞
図１３は、本発明に係る第３の実施形態における、ファイル検索システムのシステム構成図である。第３の実施形態は、第１の実施形態または第２の実施形態に、検索履歴ファイル５１を追加した構成である。また、図１３においては、ファイルサーバ１が複数存在することを明示的に示している。
【００９７】
検索履歴ファイル５１は、各ファイルサーバ１について、クライアント３の操作者が行った検索履歴を記憶する。具体的には、検索要求手段３１が各ファイルサーバ１に検索要求を送信し、各ファイルサーバ１から検索結果を受信するたびに、検索履歴ファイル５１に、各ファイルサーバ１について検索に要した時間が記憶される。
【００９８】
図１４は、第３の実施形態における、検索履歴ファイル５１のデータ構成図である。検索履歴ファイル５１には、各ファイルサーバ１について検索履歴レコード５１０が記憶されている。
【００９９】
検索履歴レコード５１０は、サーバ名５１１、サーバアドレス５１２、および検索履歴５１３から構成される。このうち、サーバ名５１１およびサーバアドレス５１２は、クライアント３の検索対象とすべきファイルサーバ１を特定するための情報であり、クライアント３の操作者が検索を行うのに先立って設定されている。サーバ名５１１には、例えば「ファイルサーバＡ」等、クライアント３の操作者がファイルサーバ１を識別するための情報が設定される。また、サーバアドレス５１２には、ファイルサーバ１のＩＰアドレス等、検索要求手段３１が検索要求を送信すべきあて先を識別するための情報が設定される。
【０１００】
検索履歴５１３は、検索履歴レコード５１０を最初に記憶する時点では設定されておらず、検索が行われるたびに、その履歴が記憶される。すなわち、検索履歴レコード５１０にはｍ個（ｍ≧０）の検索履歴５１３が記憶されている。
【０１０１】
各検索履歴５１３は、検索有無５１４、ヒットファイル数５１５、対象ファイル数５１６およびレスポンスタイム５１７から構成され、各項目は検索要求手段３１によって設定される。
【０１０２】
検索有無５１４は、各検索において当該ファイルサーバ１を検索対象としたか否か（すなわち検索要求を送信したか否か）を示し、検索対象とした場合に「あり」、検索対象としなかった場合に「なし」が設定される。ヒットファイル数５１５、対象ファイル数５１６およびレスポンスタイム５１７は、検索有無５１４が「あり」の場合のみ設定される。
【０１０３】
ヒットファイル数５１５には、当該検索時に検索結果として受信したファイル数（インデックス情報の数）を設定する。対象ファイル数５１６には、当該検索時にファイルサーバ１に記憶されていたインデックスレコード２１０の数を設定する。対象ファイル数５１６は、検索手段１２が検索結果とともにクライアント３に送信するようにすればよい。レスポンスタイム５１７には、クライアント３が当該ファイルサーバ１に検索要求を送信してから検索結果を受信するまでの時間が設定される。
【０１０４】
図１５は、第３の実施形態における、検索要求手段３１の動作を示すフローチャートである。以下、第１の実施形態における検索要求手段３１の動作（図４）と異なる点を中心に説明する。
【０１０５】
検索要求手段３１は、ログイン処理（Ｓ４０１）後、入力された利用者ＩＤとパスワードが適切であると判定した場合、表示装置３３に検索要求画面を表示する（Ｓ４０２）。図１６に検索要求画面の表示例を示す。第１の実施形態における検索要求画面（図８）との相違点は、「検索」、「終了」ボタンに加え、「履歴」ボタンが表示される点である。第１の実施形態と同様、クライアント３の操作者は入力装置３２を使用して検索条件部Ｇ８１の各項目を入力する。
【０１０６】
検索要求手段３１は、検索要求画面表示（Ｓ４０２）後、履歴ボタン、検索ボタンまたは終了ボタンが押下されるのを待つ（Ｓ４０３、Ｓ４０４、Ｓ４０５）。履歴ボタンが押された場合、すなわち検索履歴表示要求を検知した場合、履歴表示・サーバ選択処理（Ｓ４１０）を行う（Ｓ４０３）。検索ボタンが押された場合、すなわち検索要求を検知した場合、検索要求処理（Ｓ４０６以降の処理）を行う（Ｓ４０３）。また、終了ボタンが押された場合、すなわち終了要求を検知した場合、処理を終了する（Ｓ４０５）。
【０１０７】
検索要求手段３１は、検索履歴表示要求を検知した場合、表示装置３３に検索履歴表示画面を表示し、終了ボタンが押下されるのを待つ（Ｓ４１０）。図１７に検索履歴表示画面の表示例を示す。
【０１０８】
検索履歴表示画面は、検索履歴表示部Ｇ１７１と「終了」ボタンから構成される。検索要求手段３１は、検索履歴表示部Ｇ１７１に、検索履歴ファイル５１に記憶されている全てのサーバ名５１１と、各サーバ名５１１についての検索履歴を表示する。検索履歴としては、例えば、検索有無５１４が「あり」となっているヒットファイル数５１５、対象ファイル数５１６、レスポンスタイム５１７をそのまま表示してもよい。例えば、サーバＡの１つ目の検索履歴５１３（検索有無５１４、ヒットファイル数５１５、対象ファイル数５１６およびレスポンスタイム５１７）がそれぞれ「あり」、「２０」、「１００」、「４．９」で、２つ目の検索履歴５１３がそれぞれ「あり」、「１０」、「１００」、「４．２」であり、サーバＢの１つ目の検索有無５１４が「なし」で、２つ目の検索履歴５１３がそれぞれ「あり」、「３０」、「２００」、「３．８」の場合、サーバＡの右に、２０ファイル、１００ファイル、４．９秒、１０ファイル、１００ファイル、４．２秒と表示し、サーバＢの右に、３項目分の空白をあけて、３０ファイル、２００ファイル、３．８秒と表示すればよい。このように、各ファイルサーバ１についての過去の検索履歴を対応付けて表示することで、クライアント３の操作者は、同じ検索条件でより多数の検索結果が得られたファイルサーバ１がどれなのか、また、同じ検索条件でレスポンスタイムが短いファイルサーバ１はどれなのかを知ることができる。
【０１０９】
ここで検索履歴を分かりやすく表示するためには、上記のように、ヒットファイル数５１５、対象ファイル数５１６およびレスポンスタイム５１７をそのまま表示するのでなく、例えば、ヒットファイル数５１５を対象ファイル数５１６で割って、ヒット率を計算し、ヒットファイル数５１５および対象ファイル数５１６に変えてヒット率を表示してもよい。例えば、上述の例では、サーバＡの右に、０．２、４．９秒、０．１、４．２秒と表示し、サーバＢの右に、２項目分の空白をあけて、０．１５、３．８秒と表示すればよい。このようにすることで、クライアント３の操作者は、レスポンスタイムが短い割にヒット率が高いファイルサーバ１を探すことができる。
【０１１０】
さらに、ヒット率、レスポンスタイムともに相対表示としてもよい。すなわち、検索履歴表示部Ｇ１７１の最上段に表示するファイルサーバ１については、ヒット率、レスポンスタイムとも、全て１．０と表示し、他のファイルサーバ１については、最上段のファイルサーバ１との比較値を表示する。例えば、上述の例では、サーバＡの右に、１．０、１．０、１．０、１．０と表示し、サーバＢの右に、２項目分の空白をあけて、１．５、０．９と表示すればよい。このように表示することで、各ファイルサーバ１についてのヒット率およびレスポンスタイムの比較をより分かりやすく表示することができる。なお、図１７には、このような表示を行った例を示しており、クライアント３の操作者は、サーバＢがサーバＡに比べて、常にヒット率が高く、かつレスポンスタイムが短い（より効率よく検索が行われる）ということを容易に把握することができる。
【０１１１】
さらに、例えば検索履歴表示部Ｇ１７１に表示されているサーバ名を入力装置３２でクリックすると、クリックされたファイルサーバ１のヒット率、レスポンスタイムを全て１．０とし、他のファイルサーバ１については、クリックされたファイルサーバ１との比較値を表示してもよい。このようにすることで、クライアント３の操作者は特定のファイルサーバ１よりもヒット率が大きなファイルサーバ１、あるいはレスポンスタイムが短いファイルサーバ１を容易に見分けることができる。
【０１１２】
検索履歴表示部Ｇ１７１には、サーバ名の左にチェックボックスが表示されている。クライアント３の操作者は、表示された検索履歴を参照して、例えば最も効率よく検索が行われるファイルサーバ１のチェックボックスをチェックすることで、検索対象とすべきファイルサーバ１を選択することができる。
【０１１３】
検索要求手段３１は、検索要求画面の終了ボタンが押されると、チェックボックスがチェックされたファイルサーバ１のサーバアドレス５１２をクライアント３の主記憶装置等に記憶し、再び検索要求画面を表示して、履歴ボタン、検索ボタンまたは終了ボタンが押下されるのを待つ（Ｓ４０３、Ｓ４０４、Ｓ４０５）。
【０１１４】
検索要求手段３１は、検索要求を検知した場合、検索条件部Ｇ８１の入力内容から、検索条件を作成し、全てのファイルサーバ１に送信する（Ｓ４０６）。具体的には、検索履歴ファイル５１に記憶されている全てのファイルサーバ１について、サーバアドレス５１２を取得し、取得した全てのサーバアドレス５１２に検索要求を送信する。
【０１１５】
ここで、検索履歴表示画面で検索対象とすべきファイルサーバ１を選択されている場合は、選択されたファイルサーバ１のみを検索対象とする。具体的には、クライアント３の主記憶装置等から検索対象のファイルサーバ１のサーバアドレス５１２を取得し、取得した全てのサーバアドレス５１２に検索要求を送信する。
【０１１６】
検索要求手段３１は、検索条件式をファイルサーバ１に送信した後、送信した全てのファイルサーバ１から検索結果を受信するまで待つ（Ｓ４０７）。検索結果を受信すると、検索履歴ファイル５１の全ての検索履歴レコード５１０を更新する（Ｓ４０８）。具体的には、検索結果を受信しなかったファイルサーバ１については、検索有無５１４に「なし」を設定した検索履歴５１３を追加し、検索結果を受信したファイルサーバ１については、検索有無５１４に「あり」を、ヒットファイル数５１５に受信したヒットファイル数を、対象ファイル数５１６に受信したインデックス情報の数を、レスポンスタイム５１７には当該ファイルサーバ１に検索要求を送信してから、当該ファイルサーバから検索結果を受信するまでの時間を設定した検索履歴５１３を追加する。なお、検索履歴は例えば１０個を上限とし、最新１０個の履歴のみを記憶するようにしてもよい。
【０１１７】
検索要求手段３１は、次に、検索結果を検索要求画面の検索結果部Ｇ８２に表示し（Ｓ４０９）、再び、履歴ボタン、検索ボタンまたは終了ボタンが押下されるのを待つ（Ｓ４０３、Ｓ４０４、Ｓ４０５）。
【０１１８】
ここで、検索結果部Ｇ８２には、例えば図１８に示す内容が表示される。図１８の例では、「server1.somecompany.co.jp」と「server3.somecompany.co.jp」の２つのファイルサーバ１から検索結果を受信し、表示している。
【０１１９】
＜第４の実施形態＞
図１９は、本発明に係る第４の実施形態における、ファイル検索システムのシステム構成図である。
【０１２０】
第４の実施形態においては、第１、第２、第３の実施形態と異なり、ファイルサーバ１は、インデックス作成手段１１および検索手段１２を備えていない。
【０１２１】
そのかわり、ＰＣ等の装置であるファイル検索サーバ６が、ＬＡＮ４によって、クライアント３およびファイルサーバ１と通信可能に接続されており、ファイル検索サーバ６はインデックス作成手段１１および検索手段１２を備える。
【０１２２】
また、ファイルサーバ１の記憶装置２には、検索対象ファイル２２が記憶されるが、インデックスファイル２１は記憶されない。インデックスファイル２１は、ファイル検索サーバ６と通信可能に接続された、記憶装置７に記憶される。記憶装置７は磁気ディスク等の装置であり、ファイル検索サーバ６に内蔵され又は外部接続される。記憶装置７と、図示していないがファイル検索サーバ６の主記憶装置等は、ファイル検索サーバ６の記憶手段として機能する。
【０１２３】
なお、第４の実施形態においては、ファイルサーバ１がファイル管理手段１３（ファイル管理プログラム）を備えることを明示している。ファイル管理手段１３は、記憶装置２に記憶されたファイルに対してＩＯを行う等の機能を有しており、第１、第２、第３の実施形態においても存在するが、第４の実施形態においては以降の説明の必要上、明示している。
【０１２４】
インデックスファイル２１、検索対象ファイル２２のデータ構成は、第１、第２、第３の実施形態と同じであり、インデックス作成手段１１、検索手段１２、検索要求手段３１の動作も、第１、第２、第３の実施形態と基本的には同じである。以下、相違点を中心に説明する。
【０１２５】
インデックス作成手段１１は、起動すると、ＬＡＮ４等の通信回線によって通信可能に接続されているファイルサーバ１に、検索対象ファイル２２のインデックス情報（インデックスレコード２１０）を送信するように要求する。ここで、複数のファイルサーバ１が存在する場合、送信要求すべきファイルサーバ１のＩＰアドレス等を、予め、記憶装置７等に記憶しておけばよい。
そして、ファイルサーバ１から送信されたインデックス情報を参照して、インデックスファイル２１の作成・更新等を行う。ファイル記憶場所２１６には、ファイルサーバ１のＩＰアドレスやＵＲＬ等も含めた記憶場所を設定する。
【０１２６】
また、ファイルサーバ１のファイル管理手段１３は、インデックス情報の送信要求を受信すると、全ての検索対象ファイル２２を参照し、インデックス情報を作成して、要求元のファイル検索サーバ６に送信する。このとき、検索対象ファイル２２の最終アクセス時刻を参照前に戻す点は、これまで説明したのと同様である。
【０１２７】
クライアント３の検索要求手段３１は、ファイルサーバ１に対してでなく、ファイル検索サーバ６に対して、検索要求を送信する。そして、検索手段１２は、インデックスファイル２１および、必要に応じて検索対象ファイル２２を参照して、検索結果をクライアント３に送信する。検索手段１２が検索対象ファイル２２を参照する場合、ファイル記憶場所２１６で示されるファイルサーバ１に検索対象ファイルを送信するように要求し、ファイルサーバ１のファイル管理手段１３は、この要求を受信して、指定された検索対象ファイル２２を取得し、ファイル検索サーバ６に送信する。
【０１２８】
第４の実施形態のように、ファイル検索サーバ６とファイルサーバ１を分離することで、クライアント３が検索要求を送信するあて先を変更することなく、ファイルサーバ１の追加・変更・削除を行うことが可能になる。
【０１２９】
すなわち、第１、第２、第３の実施形態においては、いわば、ファイルサーバ１がファイル検索サーバ６を兼用している（ファイルサーバ１とファイル検索サーバ６が一体となっている）ため、検索対象範囲を広げるためには、検索対象ファイル２２を備えたファイルサーバ１をＬＡＮ４等に接続し、ファイルサーバ１にインデックス作成手段１１および検索手段１２を備え、かつ、各クライアント３の検索要求送信先を追加しなければならない。
【０１３０】
一方、第４の実施形態においては、ファイル検索サーバ６の検索要求送信先は追加する必要があるが、各クライアント３の検索要求送信先の追加は不要となる。一般に、組織内におけるクライアント３の数は、ファイル検索サーバ６の数に比べて、数十倍〜数百倍以上に及ぶため、各クライアント３の検索要求送信先を追加する必要がなくなることで、容易にファイルサーバ１を追加・変更・削除を行うことが可能になる。
【０１３１】
図２０は、本発明に係る第５の実施形態における、ファイル検索システムのシステム構成図である。
【０１３２】
＜第５の実施形態＞
第５の実施形態においては、クライアント３、ファイルサーバ１、ファイル検索サーバ６およびＬＡＮ４のみを図示しているが、各記憶装置、手段等の表示は単に省略しただけであり、各クライアント３、各ファイルサーバ１、各ファイル検索サーバ６は、第１、第２、第３、第４の実施形態と同様の構成を備えている。図２０に示すように、複数のファイル検索サーバ６を、それぞれ１以上のファイルサーバ１とＬＡＮ４によって通信可能に接続し、各クライアント３から複数のファイル検索サーバ６に検索要求を送信することが可能である。
【０１３３】
以上に説明したファイル検索システムを使用することで、これまで述べたほかに、例えば、特定の利用者が更新権限を持つファイルを検索することで、不審な従業員等によるファイル内容の改竄を調査することが可能になる。あるいは、アクセス時刻を使用して、長時間参照されないでいるファイル（最終アクセス時刻が所定年月日時刻以前のファイル）を検索することで、不要なファイルを調査することが可能になる。
【０１３４】
このように、アクセス権限、アクセス時刻、ハッシュ値等によるファイル検索を可能にすることで、ファイルに含まれるキーワードを正確に知らない場合にも、目的に応じたさまざまな検索が可能になる。
【０１３５】
＜その他＞
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１３６】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【０１３７】
また、実施の形態の機能を実現するソフトウェアのプログラムコードをネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ-ＲＷ、ＣＤ-Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はＣＰＵやＭＰＵ)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【図面の簡単な説明】
【０１３８】
【図１】本発明に係る第１の実施形態における、ファイル検索システムのシステム構成図である。
【図２】第１の実施形態における、インデックスファイルのデータ構成図である。
【図３】第１の実施形態における、インデックス作成手段の動作を示すフローチャートである。
【図４】第１の実施形態における、検索要求手段の動作を示すフローチャートである。
【図５】第１の実施形態における、検索手段の動作を示すフローチャートである。
【図６】第１の実施形態における、検索手段のキーワード検索処理のフローチャートである。
【図７】第１の実施形態における、ログイン画面を例示した図である。
【図８】第１の実施形態における、検索要求画面を例示した図である。
【図９】第１の実施形態における、検索要求画面での検索結果の表示内容を例示した図である。
【図１０】本発明に係る第２の実施形態における、インデックスファイルのデータ構成図である。
【図１１】第２の実施形態における、インデックス作成手段の動作を示すフローチャートである。
【図１２】第２の実施形態における、検索要求画面での検索結果の表示内容を例示した図である。
【図１３】本発明に係る第３の実施形態における、ファイル検索システムのシステム構成図である。
【図１４】第３の実施形態における、検索履歴ファイルのデータ構成図である。
【図１５】第３の実施形態における、検索要求手段の動作を示すフローチャートである。
【図１６】第３の実施形態における、検索要求画面を例示した図である。
【図１７】第３の実施形態における、検索履歴表示画面を例示した図である。
【図１８】第３の実施形態における、検索要求画面での検索結果の表示内容を例示した図である。
【図１９】本発明に係る第４の実施形態における、ファイル検索システムのシステム構成図である。
【図２０】本発明に係る第５の実施形態における、ファイル検索システムのシステム構成図である。
【符号の説明】
【０１３９】
１…ファイルサーバ、１１…インデックス作成手段、１２…検索手段、１３…ファイル管理手段、２…記憶装置、２１…インデックスファイル、２２…検索対象ファイル、３…クライアント、３１…検索要求手段、３２…入力装置、３３…表示装置、４…ＬＡＮ、５…記憶装置、５１…検索履歴ファイル、６…ファイル検索サーバ、７…記憶装置。
【図１】
2009211403.tif 000003
【図２】
2009211403.tif 000004
【図３】
2009211403.tif 000005
【図４】
2009211403.tif 000006
【図５】
2009211403.tif 000007
【図６】
2009211403.tif 000008
【図７】
2009211403.tif 000009
【図８】
2009211403.tif 000010
【図９】
2009211403.tif 000011
【図１０】
2009211403.tif 000012
【図１１】
2009211403.tif 000013
【図１２】
2009211403.tif 000014
【図１３】
2009211403.tif 000015
【図１４】
2009211403.tif 000016
【図１５】
2009211403.tif 000017
【図１６】
2009211403.tif 000018
【図１７】
2009211403.tif 000019
【図１８】
2009211403.tif 000020
【図１９】
2009211403.tif 000021
【図２０】
2009211403.tif 000022