(57)【特許請求の範囲】
【請求項１】
記憶装置から、複数の検索対象ファイルからなる第１の検索対象ファイル群と、複数の検索対象ファイルからなる第２の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第１の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス１レコードを所定のタイミングで作成し、当該各インデックス１レコードを含むインデックス１ファイルを記憶するインデックス１ファイル記憶手段と、
前記ファイル取得手段によって取得された第２の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する１以上のメタデータとを有するインデックス２レコードを所定のタイミングで作成し、当該各インデックス２レコードを含むインデックス２ファイルを記憶するインデックス２ファイル記憶手段と、
メタデータに関する条件と全文検索の条件のいずれか一方または両方を含む検索条件を受け付ける検索条件受付手段と、
前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件を含む場合に、前記インデックス２ファイルに含まれる各インデックス２レコードを当該メタデータに関する条件に基づいて検索し、当該メタデータに関する条件を満たすインデックス２レコードを取得するメタデータ検索手段と、
前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件および全文検索の条件を含む場合には、前記インデックス１ファイルに含まれる各インデックス１レコードのうち、前記メタデータ検索手段によって取得されたインデックス２レコードに含まれるファイルパスと同一のファイルパスを含む各インデックス１レコードを前記全文検索の条件に基づいて検索し、前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件を含まず、全文検索の条件を含む場合には、前記インデックス１ファイルに含まれる全てのインデックス１レコードを前記全文検索の条件に基づいて検索し、前記全文検索の条件を満たすインデックス１レコードを取得するキーワード検索手段と、
を備えることを特徴とするファイル検索装置。
【請求項２】
仮想分類の名称を示す仮想分類表示名と、前記インデックス２ファイルに含まれるいずれかのインデックス２レコードが当該仮想分類に分類される可能性の有無を示すインデックス２レコード有無情報と、前記インデックス２ファイルに含まれる各インデックス２レコードに対応する検索対象ファイルを当該仮想分類に分類するための分類条件と、上位階層の仮想分類の有無を示す上位階層有無情報と、上位階層の仮想分類を識別するための上位階層識別情報とを有する複数の仮想分類定義レコードを含む仮想分類定義ファイルを記憶する仮想分類定義ファイル記憶手段と、
前記仮想分類定義ファイル記憶手段によって記憶された前記仮想分類定義ファイルに含まれる各仮想分類定義レコードのインデックス２レコード有無情報と分類条件と上位階層有無情報と上位階層識別情報とに基づいて、各仮想分類と各インデックス２レコードに対応する検索対象ファイルとによって構成されるツリー状の階層構造を示す仮想分類定義情報を作成する仮想分類定義手段と、
前記仮想分類定義手段によって作成された仮想分類定義情報と、当該仮想分類定義情報によって示されるツリー状の階層構造を構成する各仮想分類の仮想分類表示名および各検索対象ファイルのファイル名とを出力する仮想分類出力手段と、
を備えることを特徴とする請求項１に記載のファイル検索装置。
【請求項３】
キーワードと、当該キーワードを識別するためのキーワード識別情報とを有する複数のキーワード辞書レコードを含むキーワード辞書ファイルを記憶するキーワード辞書ファイル記憶手段と、
前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報と、当該キーワード識別情報に関連する１以上の前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報とを有する複数のキーワード関連定義レコードを含むキーワード関連定義ファイルを記憶するキーワード関連定義ファイル記憶手段と、
前記メタデータ検索手段によって検索を行う際に、当該検索のメタデータに関する条件に含まれるキーワードと、前記キーワード辞書ファイルに含まれる各キーワード辞書レコードのキーワードおよびキーワード識別情報と、前記キーワード関連定義ファイルに含まれる各キーワード関連定義レコードのキーワード識別情報および当該キーワード識別情報に関連する１以上のキーワード識別情報とに基づいて、前記仮想分類定義レコードを生成する仮想分類動的生成手段と、
を備えることを特徴とする請求項２に記載のファイル検索装置。
【請求項４】
前記インデックス２レコードが、当該インデックス２レコードに対応する検索対象ファイルを識別するためのファイル識別情報を含み、
関連定義レコードを識別するための関連定義レコード識別情報と、関連定義の名称を示す表示名と、インデックス２レコードを検索する検索条件を取得するための検索条件取得条件とを有する１以上の関連定義レコードを含む関連定義ファイルを記憶する関連定義ファイル記憶手段と、
前記メタデータ検索手段によって取得されたインデックス２レコードのファイル名およびファイルパスと、前記関連定義ファイル記憶手段に記憶されている関連定義ファイルの各関連定義レコードに含まれる表示名とを出力する関連定義情報出力手段と、
前記関連定義情報出力手段によって出力された各表示名の中から選択された表示名に対応する関連定義レコード識別情報と、選択された当該表示名とともに前記関連定義情報出力手段によって出力されたファイル名およびファイルパスに対応するインデックス２レコードのファイル識別情報とを受け付ける受付手段と、
前記受付手段によって受け付けられたファイル識別情報を含むインデックス２レコードと、前記受付手段によって受け付けられた関連定義レコード識別情報を含む前記関連定義ファイル記憶手段に記憶されている関連定義レコードの検索条件取得条件とに基づいて検索条件を取得する検索条件取得手段と、
前記インデックス２ファイルに含まれる各インデックス２レコードを検索して、前記検索条件取得手段によって取得された検索条件を満たすインデックス２レコードを取得し、取得した当該インデックス２レコードに含まれるファイル名とファイルパスを出力する関連検索手段と、
を備えることを特徴とする請求項１乃至３のいずれか１項に記載のファイル検索装置。
【請求項５】
コンピュータを、
記憶装置から、複数の検索対象ファイルからなる第１の検索対象ファイル群と、複数の検索対象ファイルからなる第２の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第１の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス１レコードを所定のタイミングで作成し、当該各インデックス１レコードを含むインデックス１ファイルを記憶するインデックス１ファイル記憶手段と、
前記ファイル取得手段によって取得された第２の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する１以上のメタデータとを有するインデックス２レコードを所定のタイミングで作成し、当該各インデックス２レコードを含むインデックス２ファイルを記憶するインデックス２ファイル記憶手段と、
メタデータに関する条件と全文検索の条件のいずれか一方または両方を含む検索条件を受け付ける検索条件受付手段と、
前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件を含む場合に、前記インデックス２ファイルに含まれる各インデックス２レコードを当該メタデータに関する条件に基づいて検索し、当該メタデータに関する条件を満たすインデックス２レコードを取得するメタデータ検索手段と、
前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件および全文検索の条件を含む場合には、前記インデックス１ファイルに含まれる各インデックス１レコードのうち、前記メタデータ検索手段によって取得されたインデックス２レコードに含まれるファイルパスと同一のファイルパスを含む各インデックス１レコードを前記全文検索の条件に基づいて検索し、前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件を含まず、全文検索の条件を含む場合には、前記インデックス１ファイルに含まれる全てのインデックス１レコードを前記全文検索の条件に基づいて検索し、前記全文検索の条件を満たすインデックス１レコードを取得するキーワード検索手段と、
して機能させるためのファイル検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索対象のファイルについて予めインデックスファイルを作成し、インデックスファイルを参照してファイルを検索するファイル検索装置およびファイル検索プログラムに関する。
【背景技術】
【０００２】
近年、情報のデジタル化が急速に進展している。かつては、銀行の口座や市町村の住民票等、企業・官公庁等のコンピュータシステムが基幹業務を実行するときに参照するファイルを、データベース（Data Base）等に記憶することがデジタル化の中心であった。
【０００３】
一方、現在では、企業等の組織において日常業務で作成される各種の書類が、各従業員のクライアントＰＣ（Personal Computer）に文書ファイルとして記憶され、電子メールの添付文書として他のクライアントＰＣに送信され、あるいは、組織全体の共有情報としてファイルサーバに記憶される。そして、ファイルサーバに記憶された文書ファイルは、さまざまな従業員により参照され、時にはクライアントＰＣに複製され、更新される。
このようにして、多量の文書ファイルがさまざまなコンピュータに分散記憶されることにより、組織内に、重複あるいは類似した多数の文書ファイルが存在することになる。また、各コンピュータの記憶容量も増大し続けている。
【０００４】
一方、組織内において、例えば、既に退職した従業員がかつて作成した文書ファイルが必要になる等、記憶場所が不明な文書ファイルを参照したい場合が多々生ずる。このような場合、文書ファイル内に含まれているはずのキーワードによる全文検索等によって文書ファイルを検索するという方法が広く行われている。
ただし、組織内の全てのコンピュータから文書ファイルを検索しようとすると、各従業員のクライアントＰＣにも全ての従業員からのアクセスを許可する必要があり、セキュリティ上好ましくない。このため、組織全体で共有すべき文書ファイルについては所定のファイルサーバに記憶しておくということが一般に行われている。
【０００５】
しかし、文書ファイルを所定のいくつかのファイルサーバに記憶させたとしても、文書ファイルが必要になるたびにファイルサーバに記憶されている全ての文書ファイルを検索しようとすると、ファイルＩＯ（Input Output）等を行うために膨大な時間を必要とする。
そこで、特許文献１に開示されているファイル検索装置は、ファイルサーバに記憶されているファイルについて、記憶場所やキーワード等、検索に使用するための比較的小容量の情報（インデックス情報）をインデックスファイルとして記憶する。すなわち、このファイル検索装置では、インデックスファイルを作成することで、検索時に、複数ファイルについてのインデックス情報を１回のファイルＩＯで取得することが可能となり、各ファイルへのファイルＩＯを不要とすることができる。この結果、ファイル検索時のレスポンスタイムを短くすることができるとともに、ファイルサーバの負荷を軽減することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１６２５４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示されているファイル検索装置によってファイル検索を行うためには、検索対象としたい全てのファイルについて、インデックスファイルを作成する必要がある。
インデックス情報の記憶容量は、ファイル自体と比べれば比較的小さい。しかし、キーワードによる全文検索を行うことができるようにするためには、ファイルに含まれるキーワードを解析してインデックス情報に記憶しておく必要がある。このため、ファイルに含まれるキーワードの数が多くなれば、それだけ大きな容量を必要とする。従って、検索対象としたいファイルの数が増えるほど、インデックスファイルの記憶容量は大きくなっていく。
【０００８】
ここで、例えば組織内におけるファイル検索を検討すると、ファイルを共有のファイルサーバに記憶する場合であっても、部署ごとにアクセス可能なフォルダ等が限定されており、当該限定されたフォルダ等の配下にファイルを記憶し、検索する場合が多い。このような場合、フォルダに、例えば“作業報告書用フォルダ”といったような名称を付けておき、当該フォルダ内には当該名称に合致したファイルを記憶しておくという方法、すなわちフォルダによってファイルを分類するという方法をとる場合が多い。そして、このようにした場合、フォルダのツリー構造を手繰っていくことで必要なファイルが検索できるので、キーワードによる全文検索を必要とすることはまれである。
【０００９】
一方、例えば、特許文献、技術論文等、組織外部から入手したファイルや、ＷＥＢサーバなど、組織外部のサーバに存在しているファイルについては、入手した時点では意図しなかった用途で参照することも多く、キーワードによる全文検索が必要な場合も多い。
このように組織におけるファイル検索を検討すると、全文検索を可能にすべきファイルと、全文検索が不要なファイルが存在している。これは組織に限ったことではなく、例えば個人的に行うファイル検索についても同じである。
【００１０】
本発明の目的は、全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索することができるファイル検索装置およびファイル検索プログラムを提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明のファイル検索装置は、
記憶装置から、複数の検索対象ファイルからなる第１の検索対象ファイル群と、複数の検索対象ファイルからなる第２の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第１の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス１レコードを所定のタイミングで作成し、当該各インデックス１レコードを含むインデックス１ファイルを記憶するインデックス１ファイル記憶手段と、
前記ファイル取得手段によって取得された第２の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する１以上のメタデータとを有するインデックス２レコードを所定のタイミングで作成し、当該各インデックス２レコードを含むインデックス２ファイルを記憶するインデックス２ファイル記憶手段と、
メタデータに関する条件と全文検索の条件のいずれか一方または両方を含む検索条件を受け付ける検索条件受付手段と、
前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件を含む場合に、前記インデックス２ファイルに含まれる各インデックス２レコードを当該メタデータに関する条件に基づいて検索し、当該メタデータに関する条件を満たすインデックス２レコードを取得するメタデータ検索手段と、
前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件および全文検索の条件を含む場合には、前記インデックス１ファイルに含まれる各インデックス１レコードのうち、前記メタデータ検索手段によって取得されたインデックス２レコードに含まれるファイルパスと同一のファイルパスを含む各インデックス１レコードを前記全文検索の条件に基づいて検索し、前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件を含まず、全文検索の条件を含む場合には、前記インデックス１ファイルに含まれる全てのインデックス１レコードを前記全文検索の条件に基づいて検索し、前記全文検索の条件を満たすインデックス１レコードを取得するキーワード検索手段と、
を備える。
【００１２】
好ましくは、本発明のファイル検索装置は、
仮想分類の名称を示す仮想分類表示名と、前記インデックス２ファイルに含まれるいずれかのインデックス２レコードが当該仮想分類に分類される可能性の有無を示すインデックス２レコード有無情報と、前記インデックス２ファイルに含まれる各インデックス２レコードに対応する検索対象ファイルを当該仮想分類に分類するための分類条件と、上位階層の仮想分類の有無を示す上位階層有無情報と、上位階層の仮想分類を識別するための上位階層識別情報とを有する複数の仮想分類定義レコードを含む仮想分類定義ファイルを記憶する仮想分類定義ファイル記憶手段と、
前記仮想分類定義ファイル記憶手段によって記憶された前記仮想分類定義ファイルに含まれる各仮想分類定義レコードのインデックス２レコード有無情報と分類条件と上位階層有無情報と上位階層識別情報とに基づいて、各仮想分類と各インデックス２レコードに対応する検索対象ファイルとによって構成されるツリー状の階層構造を示す仮想分類定義情報を作成する仮想分類定義手段と、
前記仮想分類定義手段によって作成された仮想分類定義情報と、当該仮想分類定義情報によって示されるツリー状の階層構造を構成する各仮想分類の仮想分類表示名および各検索対象ファイルのファイル名とを出力する仮想分類出力手段と、
を備える。
【００１３】
好ましくは、本発明のファイル検索装置は、
キーワードと、当該キーワードを識別するためのキーワード識別情報とを有する複数のキーワード辞書レコードを含むキーワード辞書ファイルを記憶するキーワード辞書ファイル記憶手段と、
前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報と、当該キーワード識別情報に関連する１以上の前記キーワード辞書ファイルに含まれるキーワード辞書レコードのキーワード識別情報とを有する複数のキーワード関連定義レコードを含むキーワード関連定義ファイルを記憶するキーワード関連定義ファイル記憶手段と、
前記メタデータ検索手段によって検索を行う際に、当該検索のメタデータに関する条件に含まれるキーワードと、前記キーワード辞書ファイルに含まれる各キーワード辞書レコードのキーワードおよびキーワード識別情報と、前記キーワード関連定義ファイルに含まれる各キーワード関連定義レコードのキーワード識別情報および当該キーワード識別情報に関連する１以上のキーワード識別情報とに基づいて、前記仮想分類定義レコードを生成する仮想分類動的生成手段と、
を備える。
【００１４】
好ましくは、本発明のファイル検索装置は、
前記インデックス２レコードが、当該インデックス２レコードに対応する検索対象ファイルを識別するためのファイル識別情報を含み、
関連定義レコードを識別するための関連定義レコード識別情報と、関連定義の名称を示す表示名と、インデックス２レコードを検索する検索条件を取得するための検索条件取得条件とを有する１以上の関連定義レコードを含む関連定義ファイルを記憶する関連定義ファイル記憶手段と、
前記メタデータ検索手段によって取得されたインデックス２レコードのファイル名およびファイルパスと、前記関連定義ファイル記憶手段に記憶されている関連定義ファイルの各関連定義レコードに含まれる表示名とを出力する関連定義情報出力手段と、
前記関連定義情報出力手段によって出力された各表示名の中から選択された表示名に対応する関連定義レコード識別情報と、選択された当該表示名とともに前記関連定義情報出力手段によって出力されたファイル名およびファイルパスに対応するインデックス２レコードのファイル識別情報とを受け付ける受付手段と、
前記受付手段によって受け付けられたファイル識別情報を含むインデックス２レコードと、前記受付手段によって受け付けられた関連定義レコード識別情報を含む前記関連定義ファイル記憶手段に記憶されている関連定義レコードの検索条件取得条件とに基づいて検索条件を取得する検索条件取得手段と、
前記インデックス２ファイルに含まれる各インデックス２レコードを検索して、前記検索条件取得手段によって取得された検索条件を満たすインデックス２レコードを取得し、取得した当該インデックス２レコードに含まれるファイル名とファイルパスを出力する関連検索手段と、
を備える。
【００１５】
また、本発明のファイル検索プログラムは、
コンピュータを、
記憶装置から、複数の検索対象ファイルからなる第１の検索対象ファイル群と、複数の検索対象ファイルからなる第２の検索対象ファイル群を取得するファイル取得手段と、
前記ファイル取得手段によって取得された第１の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と、当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容から抽出された複数のキーワードとを有するインデックス１レコードを所定のタイミングで作成し、当該各インデックス１レコードを含むインデックス１ファイルを記憶するインデックス１ファイル記憶手段と、
前記ファイル取得手段によって取得された第２の検索対象ファイル群に含まれる各検索対象ファイルについて、当該各検索対象ファイルの名前であるファイル名と当該各検索対象ファイルの記憶されている記憶位置を示すファイルパスと、当該各検索対象ファイルの内容を代表する１以上のメタデータとを有するインデックス２レコードを所定のタイミングで作成し、当該各インデックス２レコードを含むインデックス２ファイルを記憶するインデックス２ファイル記憶手段と、
メタデータに関する条件と全文検索の条件のいずれか一方または両方を含む検索条件を受け付ける検索条件受付手段と、
前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件を含む場合に、前記インデックス２ファイルに含まれる各インデックス２レコードを当該メタデータに関する条件に基づいて検索し、当該メタデータに関する条件を満たすインデックス２レコードを取得するメタデータ検索手段と、
前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件および全文検索の条件を含む場合には、前記インデックス１ファイルに含まれる各インデックス１レコードのうち、前記メタデータ検索手段によって取得されたインデックス２レコードに含まれるファイルパスと同一のファイルパスを含む各インデックス１レコードを前記全文検索の条件に基づいて検索し、前記検索条件受付手段によって受け付けられた検索条件がメタデータに関する条件を含まず、全文検索の条件を含む場合には、前記インデックス１ファイルに含まれる全てのインデックス１レコードを前記全文検索の条件に基づいて検索し、前記全文検索の条件を満たすインデックス１レコードを取得するキーワード検索手段と、
して機能させる。
【発明の効果】
【００１６】
本発明によれば、全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索することができる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態に係るファイル検索システムの構成の一例を示す図である。
【図２】インデックス１ファイルのデータ構成の一例を示す図である。
【図３】インデックス２ファイルのデータ構成の一例を示す図である。
【図４】インデックス２ファイルに含まれるシステムメタデータのデータ構成の一例を示す図である。
【図５】インデックス２ファイルに含まれる標準メタデータのデータ構成の一例を示す図である。
【図６】仮想分類定義ファイルのデータ構成の一例を示す図である。
【図７】関連定義ファイルのデータ構成の一例を示す図である。
【図８】インデックス１作成部の動作の一例を示すフローチャートである。
【図９】インデックス２作成部の動作の一例を示すフローチャートである。
【図１０】検索要求部の動作の一例を示すフローチャートである。
【図１１】検索部の動作の一例を示すフローチャートである。
【図１２】インデックス１検索部の動作の一例を示すフローチャートである。
【図１３】ログイン画面を例示した図である。
【図１４】検索要求画面を例示した図である。
【図１５】検索要求画面を例示した図である。
【図１６】複合検索における検索部等の動作の一例を示すフローチャートである。
【図１７】検索要求画面での検索結果の表示内容を例示した図である。
【図１８】検索要求画面での検索結果の表示内容を例示した図である。
【図１９】第２の実施形態に係るファイル検索システムの構成の一例を示す図である。
【図２０】キーワード辞書ファイルのデータ構成の一例を示す図である。
【図２１】キーワード関連定義ファイルのデータ構成の一例を示す図である。
【図２２】仮想分類動的生成における検索部等の動作の一例を示すフローチャートである。
【図２３】検索要求画面を例示した図である。
【発明を実施するための形態】
【００１８】
以下、本発明の第１の実施形態に係るファイル検索システムについて図面を参照しながら説明する。
なお、本明細書と特許請求の範囲において、特に説明を付さない限り、「ファイル」とは、文書ファイル、画像ファイル等のファイルのみならず、データベース全体やデータベースの各レコード等も含み、閲覧、視聴、メール送受信あるいは外部記憶媒体へのコピー等の対象となりうる電子データを意味する。
【００１９】
＜ファイル検索システム全体の構成・機能＞
図１は、本発明の第１の実施形態に係るファイル検索システムの構成の一例を示す。
第１の実施形態に係るファイル検索システムは、ファイル検索サーバ１と、ファイルサーバ４と、クライアント３とを備える。ファイル検索サーバ１と、ファイルサーバ４と、クライアント３は、ＬＡＮ（Local Area Network）等の有線又は無線の通信回線９により通信可能に接続されている。
ここで、ファイル検索サーバ１、ファイルサーバ４及びクライアント３はそれぞれ１台ずつ図示しているが、それぞれ２台以上存在していてもよい。また、ファイル検索サーバ１と、ファイルサーバ４と、クライアント３とはそれぞれ異なる装置である必要はなく、例えば、ファイル検索サーバ１とファイルサーバ４とクライアント３の機能を１台の装置によって実現することも可能である。
通信回線９はＬＡＮに限定されるものではなく、例えばＷＡＮ（Wide Area Network）やインターネットとすることもできるし、これらの組み合わせとすることもできる。
【００２０】
後に詳述するように、ファイル検索サーバ１はファイルサーバ４に記憶されているファイルの名称等を収集して、インデックスファイルを作成して記憶しておく。そして、クライアント３がファイル検索サーバ１にファイル検索要求（以下「検索要求」と略記することがある。）を送信すると、ファイル検索サーバ１はそのインデックスファイルを参照してファイル検索を行い、クライアント３にファイル検索結果（以下「検索結果」と略記することがある。）を送信する。
【００２１】
＜クライアント３の構成・機能＞
クライアント３はコンピュータであり、入力装置３２、表示装置３３、図示しない主記憶装置および記憶装置を備える。
入力装置３２はキーボード、マウス等を含む。クライアント３の操作者は、入力装置３２を操作することで、クライアント３が実行するべき処理を指示することができる。すなわち入力装置３２はクライアント３の入力手段として機能する。
表示装置３３は液晶ディスプレイ、プリンタ等を含む。表示装置３３は、クライアント３が実行した処理の結果等を表示あるいは印刷する。すなわち表示装置３３はクライアント３の表示手段および出力手段として機能する。
主記憶装置はＲＡＭ（Random
Access Memory）等を含む。記憶装置は磁気ディスク等を含み、クライアント３に内蔵されるか、または外部接続される。主記憶装置と記憶装置は、クライアント３の記憶手段として機能する。
【００２２】
クライアント３は、図示していないがＣＰＵ（Central Processing Unit）を備える。主記憶装置には検索要求プログラム等のプログラムが記憶されている。ＣＰＵがその命令コードを実行することにより検索要求部３１等の機能が実現される。
また、ＣＰＵは、検索要求プログラム等の応用プログラムの命令コードを実行する際、ＯＳ（Operating System）等のプログラムの命令コードも実行する場合がある。以上のようなプログラム実行にかかわる技術は周知であるので、以降の説明および図面においては、検索要求部３１というように、あたかも各種プログラムにより実現される処理を実行するハードウェアが存在するかのように記載する。なお、実際に各部（例えば検索要求部３１）をハードウェアで構成することも可能である。
【００２３】
検索要求部３１は、クライアント３の操作者が入力装置３２によって入力したファイル検索条件およびファイル検索指示（例えば、ファイル名が「作業報告」であるファイルを検索するように、という指示）を受けて、検索条件式を作成し、ファイル検索サーバ１に検索条件式を含む検索要求を送信する。
また、ファイル検索サーバ１がクライアント３に送信した検索結果を受信し、表示装置３３に表示する。検索要求部３１を実現するための検索要求プログラムは、第１の実施形態に係わる独自のプログラムであってもよいし、例えばＷＥＢブラウザのプログラムであってもよい。ＷＥＢブラウザを検索要求部３１として使用する場合、後述するファイル検索サーバ１の検索部１３は、例えばＷＥＢアプリケーションとすればよい。
【００２４】
＜ファイルサーバ４の構成・機能＞
ファイルサーバ４はコンピュータであり、記憶装置４２を備える。
記憶装置４２は磁気ディスク等を含む。記憶装置４２はファイルサーバ４に内蔵され、または外部接続される。図１では、１台の記憶装置４２がファイルサーバ４に接続されているかのように例示しているが、実際には、むしろ２台以上の記憶装置４２がファイルサーバ４に接続されることが多く、また、２台以上の記憶装置４２が２台以上のファイルサーバ４に、切り替え可能に接続されることも多い。
記憶装置４２にはさまざまなファイルが記憶されているが、図１では、ファイルのうち後述するファイル検索サーバ１がインデックス作成対象とするものを、「検索対象ファイル４３」と記述している。すなわち、検索対象ファイル４３という特定のファイルが存在するのではなく、検索対象ファイル４３は、例えば記憶装置４２に記憶されている全てのファイルであってもよいし、あるいは、特定のフォルダ内の全てのファイル等、記憶装置４２に記憶されている一部のファイルであってもよい。
検索対象ファイル４３には、オーナー、グループ、その他利用者に対する、参照・更新・実行権限を表すアクセス権限を設定することができる。
【００２５】
ファイルサーバ４は、図示していないがＣＰＵと、ＲＡＭ等で構成された主記憶装置とを備える。主記憶装置にはファイル管理プログラム等のプログラムが記憶されている。ＣＰＵがその命令コードを実行することによりファイル管理部４１等の機能が実現される。ファイル管理部４１は、検索対象ファイル４３を含め、記憶装置４２に記憶されているファイルの記憶位置等を管理する。また、ファイル管理部４１は、ファイル検索サーバ１からファイルの格納場所等を受信し、当該格納場所に記憶された検索対象ファイル４３等を読み込み、当該ファイルの記憶内容をファイル検索サーバ１に送信する機能も有している。
【００２６】
＜ファイル検索サーバ１の構成・機能＞
ファイル検索サーバ１はコンピュータであり、記憶装置２と、図示しない主記憶装置とを備える。記憶装置２は磁気ディスク等を含む。記憶装置２はファイルサーバ１に内蔵されるか、または外部接続される。図１では、１台の記憶装置２がファイル検索サーバ１に接続されているかのように例示しているが、２台以上であってもよい。主記憶装置はＲＡＭ等で構成される。記憶装置２と主記憶装置は、ファイルサーバ１の記憶手段として機能する。
記憶装置２には、インデックス１ファイル２１、インデックス２ファイル２２、仮想分類定義ファイル２３、関連定義ファイル２４、キーワード辞書ファイル２５とキーワード関連定義ファイル２６が記憶されている。これらのファイルの記憶内容等については、以降のファイル検索サーバ１の機能説明と合わせて説明する。
【００２７】
ファイル検索サーバ１は、図示していないがＣＰＵを備える。ファイル検索サーバ１の主記憶装置には、ファイル検索プログラム等のプログラムが記憶されている。ＣＰＵがその命令コードを実行することにより、インデックス１作成部１１、インデックス２作成部１２、検索部１３、インデックス１検索部１４の各機能が実現される。
インデックス１作成部１１は、例えば毎日同じ時刻等の所定のタイミングで、検索対象ファイル４３を参照し、インデックス１ファイル２１を作成する。インデックス１ファイル２１には、後述するように、ファイル名、ファイル内容から抽出したキーワード等が記憶される。
どのファイルを検索対象ファイル４３とするかは、例えば、図示していないが、記憶装置２内の所定のファイルに予め記憶装置４２のファイルパス（“/etc/usr1/”等）を１以上記憶しておき、当該ファイルパス配下のファイルを検索対象ファイル４３とすることができる。なお、記憶装置４２が２台以上存在する場合等には、当該ファイルパスがどの記憶装置上に存在するか等も含めて記憶しておけばよい。以上のようにインデックス１ファイル２１を作成することで、インデックス１ファイル２１を参照してファイル検索することが可能になり、検索の都度、検索対象ファイル４３を参照する必要がなくなるので、検索に要する処理時間を短縮することができる。
【００２８】
なお、以上のようにして作成されたインデックス１ファイル２１を参照して検索するとき、インデックス１ファイル２１作成後に検索対象ファイル４３が削除され、あるいは変更されている場合がある。このような場合に、インデックス１ファイル２１を検索すると、検索対象ファイル４３を検索した場合とは異なる検索結果が得られることになる。例えばファイル名が「作業報告」であるファイルについてインデックス１ファイル２１が作成された後、当該ファイルが削除された場合、インデックス１ファイル２１を参照するとファイル名が「作業報告」のファイルが存在しているように見えるが、検索対象ファイル４３には存在していない。
そこで、前述したように、インデックス１作成部１１は、例えば毎日同じ時刻等の所定のタイミングで処理を行うようにすることができる。このようにすることで、インデックス１ファイル２１が定期的に更新され、検索対象ファイル４３と大きく乖離することを防ぐことができる。
【００２９】
そして、インデックス１作成部１１が処理を行うタイミングの間隔を短くすることで（例えば、１時間おきに処理を行うようにすることで）、インデックス１ファイル２１と検索対象ファイル４３の乖離を、より小さくすることができる。ただし、インデックス１作成部１１が処理を行うタイミングの間隔を短くするということは、検索対象ファイル４３の全ファイルに対するＩＯが発生する間隔も短くなるということなので、ファイルサーバ４の性能等も考慮した上で、インデックス１作成部１１が処理を行うタイミングの間隔を決める必要がある。
例えば、ファイルサーバ４において、ＣＰＵ使用率、一定時間におけるＩＯ頻度等を常時監視するプログラムを走行させておき、ＣＰＵ使用率、一定時間におけるＩＯ頻度等が所定値以下になった場合に、その旨をインデックス１作成部１１に送信し、インデックス１作成部１１が処理開始する等も、有効な方法である。あるいは、ファイルサーバ４において、検索対象ファイル４３におけるＩＯを常時監視するプログラムを走行させておき、検索対象ファイル４３が更新等されるたびに、インデックス１作成部１１にその旨を通知し、インデックス１ファイル２１内の当該ファイルについてのインデックス情報が更新されるようにしてもよい。
【００３０】
インデックス２作成部１２も、インデックス１作成部１１と同様に、例えば毎日同じ時刻等の所定のタイミングで、検索対象ファイル４３を参照し、インデックス２ファイル２２を作成する。第１の実施形態においては、インデックス２ファイル２２には、後述するように、たとえば、ファイルの内容から判断したファイルに記憶されている文書のタイトル等が記憶される。すなわち、インデックス１ファイル２１の記憶内容と、インデックス２ファイル２２の記憶内容は一部が重複するとしても、完全には同一でない。
【００３１】
どのファイルを検索対象ファイル４３とするかは、インデックス１作成部１１と同様に、記憶装置２内の所定のファイルに予め記憶装置４２のファイルパス（“/etc/usr1/”等）を１以上記憶しておき、当該ファイルパス配下のファイルを検索対象ファイル４３とすることができる。インデックス１作成部１１の検索対象ファイル４３とインデックス２作成部１２の検索対象ファイル４３は同一であってもよいし、一部が重複してもよいし、全く異なっていても構わない。
【００３２】
なお、以上のようにして作成されたインデックス２ファイル２２を参照して検索するとき、インデックス１ファイル２１を参照して検索するときと同様に、インデックス２ファイル２２の記憶内容と検索対象ファイル４３の内容が乖離することがあるという問題が発生する。そして、この問題は、インデックス１作成部１１と同様に、インデックス２作成部１２が処理を行うタイミングの間隔を短くする等によって解決することができる。
【００３３】
さらに、インデックス１ファイル２１とインデックス２ファイル２２の作成タイミングが異なると、インデックス１ファイル２１とインデックス２ファイル２２の内容が乖離することがあるという問題も発生する。この問題の解決方法のひとつは、インデックス１作成部１１とインデックス２作成部１２のインデックスファイル作成処理開始タイミングを一致させることである。具体的には、例えば、インデックス２作成部１２がインデックスファイル作成処理を開始する直前に、インデックス１作成部１１にインデックス作成処理開始要求を送信し、インデックス１作成部１１は当該要求を受信するとインデックス作成処理を開始するようにすればよい。
【００３４】
もっとも、インデックスファイル作成処理開始タイミングが一致しても、各検索対象ファイル４３を参照するタイミングが一致するとは限らないが、インデックス１ファイル２１とインデックス２ファイル２２の内容が多少乖離していたとしても、検索目的での使用に大きな支障があるわけではない。従って、インデックスファイル作成処理開始タイミングを一致させれば、ほとんどの場合、実用的には問題はない。
ただし、インデックス１ファイル２１とインデックス２ファイル２２の内容の乖離を完全に防止する必要がある場合がある。このような場合には、例えば、ファイルサーバ４において、検索対象ファイル４３におけるＩＯを常時監視するプログラムを走行させておき、検索対象ファイル４３が更新等されるたびに、インデックス１ファイル２１及びインデックス２ファイル２２内の当該ファイルについての情報を更新するようにしてもよい。
【００３５】
検索部１３は、ファイル検索サーバ１がクライアント３からの検索要求を受信した場合に起動され、ファイル検索を実行する。具体的には、インデックス１ファイル２１とインデックス２ファイル２２の一方又は両方を参照して、検索要求の検索条件式に合致するファイルが存在するかどうか判定し、存在する場合には、合致したファイルのファイル名等からなる検索結果をクライアント３に送信する。
【００３６】
ここで、検索部１３は、インデックス１ファイル２１を参照する必要がある場合、インデックス１検索部１４に検索条件式を渡し、インデックス１検索部１４は、インデックス１ファイル２１を参照して、受け取った検索条件式に合致するファイルが存在するかどうか判定する。インデックス１ファイル２１には、ファイル名、ファイル内容から抽出したキーワードが記憶されているため、インデックス１検索部１４による検索は、検索部１３の検索機能の一部を補完することができる。
後述するように、第１の実施形態においては、クライアント３の操作者がいわゆる全文検索を要求した場合に、インデックス１検索部１４による検索を行う。検索部１３自体の機能から全文検索機能を分離することにより、インデックス１検索部１４を実現するためのプログラムとして、既に存在するさまざまな全文検索プログラムを使用することが可能になり、例えば、検索要求から社会科学分野の文献の検索が求められているのか、自然科学分野の文献の検索が求められているのか等の検索目的を判定して、検索目的に合致したインデックス１検索部１４によって全文検索を行うといったことも可能になる。
【００３７】
検索部１３は、検索対象ファイル４３をインデックス２ファイル２２に記憶された文書のタイトル等のメタデータ検索キーワードにより分類して、ツリー状の階層を作成する機能（以下「仮想分類機能」という。）、言い換えれば、インデックス２レコード２２０（図３を参照して後で説明する。）を分類する機能を有しており、仮想分類を行う際には、分類条件等を定義した仮想分類定義ファイル２３を参照する。
【００３８】
検索部１３は、メタデータ検索のキーワードに関連するキーワードにより仮想分類定義を動的に生成する機能（以下「仮想分類動的生成機能」という。）を有している。仮想分類動的生成機能で生成した仮想分類定義を参照し、仮想分類機能を使用することでメタデータ検索キーワードに関連したキーワードによる分類を行うことができる。
仮想分類動的生成を行う際には、キーワードを登録するキーワード辞書ファイル２５とキーワード辞書ファイル２５に登録されたキーワードの関連を定義したキーワード関連定義ファイル２６を参照する。当然ながら、キーワード辞書ファイル２５とキーワード関連定義ファイル２６を作成・更新等するプログラムも存在するが、本発明とは直接関係がないので、以降の説明ではキーワード辞書ファイル２５とキーワード関連定義ファイル２６が作成済みであるという前提で説明する。
【００３９】
また、検索部１３は、インデックス２ファイル２２に記憶された、検索対象ファイル４３の記憶装置４２上の記憶位置を参照して、ツリー状の階層を作成する機能（以下「物理階層作成機能」という。）を有している。
さらに、検索部１３は、検索結果と関連するファイルを検索する機能（以下「関連検索機能」という。）を有しており、関連検索を行う際には、関連検索条件等を定義した関連定義ファイル２４を参照する。当然ながら、関連定義ファイル２４を作成・更新等するプログラムも存在するが、本発明とは直接関係がないので、以降の説明では関連定義ファイル２４が作成済みであるという前提で説明する。
【００４０】
＜各ファイルの構成・機能＞
図２は、インデックス１ファイル２１のデータ構成の一例を示す。
インデックス１ファイル２１は、各検索対象ファイル４３と対応するインデックス１レコード２１０から構成される。すなわち各インデックス１レコード２１０は、インデックス１レコード２１０作成時点の検索対象ファイル４３と１対１に対応している。
インデックス１レコード２１０は、ファイル名２１１、ファイルパス２１２、アクセス権限２１３およびキーワード２１４の各データ項目から構成される。
【００４１】
ファイル名２１１には、対応する検索対象ファイル４３のファイル名、例えば“作業報告１.doc”が設定される。
ファイルパス２１２には、対応する検索対象ファイル４３の絶対パス、例えば“//etc/usr1/作業報告１.doc” （ルート直下の”etc“フォルダ内の”usr1“フォルダ内の”作業報告１.doc“）が設定される。なお、ファイルパス２１２によって検索対象ファイル４３の記憶装置４２上の記憶位置を識別することができるが、ファイルサーバ４に複数の記憶装置４２が接続されている場合、記憶装置４２を特定する識別や、論理ボリューム名等も、ファイルパス２１２の一部として、又はファイルパス２１２とは別のデータ項目として設定すればよい。また、ファイルの絶対パス以外の情報、例えば予め定めた所定のファイルを基準とする相対パス、あるいはファイルが記憶されている論理ブロック番号によっても、検索対象ファイル４３の記憶位置を識別することは可能である。インデックス１レコード２１０には、ファイルパス２１２に変えて、又はファイルパス２１２に加えて、このようなデータ項目を設けてもよい。
【００４２】
アクセス権限２１３には、対応する検索対象ファイル４３に対して設定されているアクセス権限が設定される。具体的には、例えばファイルサーバ４のファイル管理部４１等によって付与され、ファイルの属性情報として記憶されているアクセス権限（例えば、ＵＮＩＸ（登録商標）等で使われている、オーナー、グループ、その他利用者に対する、参照・更新・実行権限を表す３桁の数値（７７７等））が設定される。
キーワード２１４には、対応する検索対象ファイル４３の内容から抽出したキーワードが設定される。例えば、検索対象ファイル４３の内容に“現場”という文字列が複数個含まれている場合“現場”を抽出する等、さまざまな構文解析手法等によって、１以上のキーワードを抽出し、キーワード２１４に設定することができる。一般に、キーワード２１４には多数の語句等が記憶され、インデックス１レコード２１０のサイズの大部分がキーワード２１４のために使用される。
なお、以上のほか、ファイル作成者等、他のファイル属性情報についても、インデックス１レコード２１０のデータ項目とすることができる。
以上のようにして作成されたインデックス１レコード２１０（インデックス情報）は、インデックス１検索部１４により参照される。
【００４３】
図３は、インデックス２ファイル２２のデータ構成の一例を示す。
インデックス２ファイル２２は、各検索対象ファイル４３と対応するインデックス２レコード２２０から構成される。すなわち各インデックス２レコード２２０は、インデックス２レコード２２０作成時点の検索対象ファイル４３と１対１に対応している。
インデックス２レコード２２０は、システムメタデータ２２１、標準メタデータ２２２及びユーザ定義メタデータ２２３から構成される。
システムメタデータ２２１はインデックス２作成部１２によって設定され、利用者がその設定内容を直接変更することはできない。
一方、標準メタデータ２２２にはインデックス２作成部１２によってファイルの内容を代表するメタデータが設定される。図１に示していないが、利用者が、ファイル検索サーバ１のＣＰＵにメタデータ変更プログラムを実行させて、標準メタデータ２２２の設定内容を直接変更することができる。
また、ユーザ定義メタデータ２２３は利用者がデータ構造を定義し、ファイルの内容を代表するメタデータを設定・変更するデータ項目である。インデックス２作成部１２は、ユーザ定義メタデータ２２３を設定しない。
【００４４】
図４は、システムメタデータ２２１のデータ構成の一例を示す図である。
システムメタデータ２２１は、ファイルＩＤ２２１ａ、ファイル名２２１ｂ及びファイルパス２２１ｃから構成される。
ファイルＩＤ２２１ａには、対応する検索対象ファイル４３を一意に識別可能なＩＤ（Identifier）が設定される。具体的には、例えば、新たに検索対象ファイル４３のインデックス２レコード２２０を作成するたびに、１から始まる通番を設定すればよい。
ファイル名２２１ｂには、インデックス１レコード２１０のファイル名２１１と同様、対応する検索対象ファイル４３のファイル名、例えば“作業報告１.doc”が設定される。
ファイルパス２２１ｃには、インデックス１レコード２１０のファイルパス２１２と同様に、例えば対応する検索対象ファイル４３の絶対パス（“//etc/usr1/作業報告１.doc”等）が設定される。
なお、以上のほか、ファイル作成者、アクセス権限等、他のファイル属性情報についても、システムメタデータ２２１のデータ項目とすることができる。
【００４５】
図５は、標準メタデータ２２２のデータ構成の一例を示す図である。
標準メタデータ２２２は、タイトル２２２ａ、文書記載日２２２ｂ及びセキュリティランク２２２ｃから構成される。
タイトル２２２ａには、対応する検索対象ファイル４３に記憶されている文書等の題名が“作業報告書”のように設定される。具体的には、インデックス２作成部１２は、例えば、当該ファイルを印刷する場合の表示イメージを構築し、先頭ページ上段に、他の文字より大きな文字サイズで印刷される文字列を文書等の題名とみなし、タイトル２２２ａに設定する。
文書記載日２２２ｂには、対応する検索対象ファイル４３に記憶されている文書等が記載された日付が“２００９年８月５日”のように設定される。具体的には、インデックス２作成部１２は、例えば、当該ファイルを印刷したときに先頭ページ上段に印刷される文字列のうち、“年”、“月”、“日”、“作成”を含む等、作成日付らしい文字列を文書等の作成日付とみなし、文書記載日２２２ｂに設定する。
【００４６】
セキュリティランク２２２ｃには、対応する検索対象ファイル４３に記憶されている文書等の機密度が“極秘”、“秘密”のように設定される。具体的には、インデックス２作成部１２は、例えば、当該ファイルに印刷される文字列のうち、“取扱注意”、“複製禁止”等、機密にする必要があることを示していると思われる文字列を抽出し、抽出した文字列の内容、数等によって機密度を判定し、セキュリティランク２２２ｃに設定する。
なお、以上のほか、文書の保管期間等、検索対象ファイル４３を印刷した場合の表示イメージ等から判断可能な他の情報についても、標準メタデータ２２２のデータ項目とすることができる。
以上のようにして作成されたインデックス２レコード２２０（インデックス情報）は、前述したように、検索部１３により参照される。
【００４７】
図６は、仮想分類定義ファイル２３のデータ構成の一例を示す。
仮想分類定義ファイル２３は、１以上の仮想分類定義レコード２３０から構成される。仮想分類定義レコード２３０は、仮想分類ＩＤ２３１、表示名２３２、条件２３３及び上位仮想分類ＩＤ２３４の各データ項目から構成される。
【００４８】
仮想分類ＩＤ２３１には、当該仮想分類定義レコード２３０を一意に識別可能な値が“1”、“2”、“3”のように設定される。
表示名２３２には、当該仮想分類の名称が“タイトル”、“作業報告”のように設定される。
条件２３３には、当該仮想分類による分類条件が“条件なし”、“タイトル２２２ａに「作業報告書」（という文字列）が含まれる”のように設定される。分類条件に“条件なし”が設定されている場合、当該仮想分類に分類されるインデックス２レコード２２０が存在しないことを意味し、分類条件に何らかの条件が設定されている場合、インデックス２レコード２２０のうち、当該条件を満足するレコードが当該仮想分類に分類されることを意味する。従って、１つのインデックス２レコード２２０が２以上の仮想分類に分類される場合もあるし、どの仮想分類にも分類されない場合もある。
上位仮想分類ＩＤ２３４には、当該仮想分類定義レコード２３０の上位の仮想分類定義レコード２３０を一意に識別可能な値が“0（上位なし）”、“1”、“2”、“3”のように設定される。
【００４９】
図１４と図１５を参照しながら後で説明するように、仮想分類定義レコード２３０は検索部１３によって参照され、表示名２３２や、当該表示名２３２に係わる条件２３３を満足するインデックス２レコード２２０のファイル名２２１ｂが、表示装置３３にツリー状に階層表示される。従って、１つのインデックス２レコード２２０がツリーの２箇所以上で表示される場合もあるし、ツリーのどこにも表示されない場合もある。
【００５０】
図７は、関連定義ファイル２４のデータ構成の一例を示す。
関連定義ファイル２４は、１以上の関連定義レコード２４０から構成される。関連定義レコード２４０は、関連定義ＩＤ２４１、表示名２４２及び条件２４３の各データ項目から構成される。
関連定義ＩＤ２４１には、当該関連定義レコード２４０を一意に識別可能な値が“1”、“2”、“3”のように設定される。
表示名２４２には、当該関連定義の名称が“タイトル”のように設定される。
条件２４３には、当該仮想分類による分類条件が“タイトル２２２ａが当該検索結果と等しい”のように設定される。なお、条件２４３には、例えば、“当該検索ファイルのファイル名の前に「コピー〜」が追加されている”、“当該検索ファイルのファイル名の後ろに数字が追加されている”等、さまざまな条件を設定可能としてもよい。
関連定義ファイル２４を用いた関連検索については、図１７と図１８を参照しながら後で詳細に説明する。
【００５１】
図２０と図２１は、それぞれキーワード辞書ファイル２５とキーワード関連定義ファイル２６のデータ構成の一例を示す。
上述した仮想分類定義レコード２３０は、利用者が予め作成しておいてもよいが、メタデータ検索を行う際にキーワード辞書ファイル２５とキーワード関連定義ファイル２６を用いて動的に作成することが可能である。
キーワード辞書ファイル２５は、１以上のキーワード辞書レコード２５０から構成される。キーワード辞書レコード２５０は、キーワードＩＤ２５１、言語コード２５２及びキーワード２５３の各データ項目から構成される。
キーワードＩＤ２５１には、キーワードを一意に識別可能な値が“1”、“2”、“3”のように設定される。
言語コード２５２には、キーワード２５３の言語種別を表す３文字の言語コードが“jpn”や“eng”のように設定される。なお、言語コード“jpn”と“eng”は、それぞれ日本語と英語に対応する。
キーワード２５３には、当該キーワードが“仕様書”のように設定される。
キーワード辞書レコード２５０は、キーワードＩＤ２５１と言語コード２５２で一意に識別できる。また、キーワード辞書ファイル２５には、キーワード２５３が同一のキーワード辞書レコード２５０は設定できない。
例えば、キーワードＩＤ２５１、言語コード２５２及びキーワード２５３に、それぞれ“1”、“jpn”、“仕様書”が設定されたキーワード辞書レコード２５０と、それぞれ“1”、“eng”、“specifications”が設定されたキーワード辞書レコード２５０が２レコード存在する場合、この２つのレコードのキーワードは、言語は異なるが同一のキーワードということになる。
【００５２】
キーワード関連定義ファイル２６は、１以上のキーワード関連定義レコード２６０から構成される。キーワード関連定義レコード２６０は、キーワードＩＤ２６１、関連キーワードＩＤ２６２、最大キーワード長２６３及び言語条件２６４から構成される。
キーワードＩＤ２６１には、キーワード辞書ファイル２５に登録されているキーワード辞書レコード２５０のキーワードＩＤ２５１の値が設定される。
関連キーワードＩＤ２６２には、キーワードＩＤ２６１と同様にキーワード辞書ファイル２５に登録されているキーワード辞書レコード２５０のキーワードＩＤ２５１の値が１つ以上設定される。キーワード関連定義レコード２６０は、キーワードＩＤ２６１と値が同一であるキーワードＩＤ２５１のキーワード辞書レコード２５０に含まれるキーワード２５３に設定されているキーワードと、関連キーワードＩＤ２６２と値が同一であるキーワードＩＤ２５１のキーワード辞書レコード２５０に含まれるキーワード２５３に設定されているキーワードとが関連することを指定する。
なお、関連キーワードＩＤ２６２に２つ以上のキーワードＩＤを設定する場合、“1, 2”のように「, （カンマ）」で区切って設定する。
【００５３】
最大キーワード長２６３には、キーワード辞書ファイル２５から関連キーワードＩＤ２６２のキーワードを取得するときのキーワードの最大文字数の制限が“0（制限しない）”、“10”のように設定される。
言語条件２６４には、キーワード辞書ファイル２５から関連するキーワードを取得するときのキーワードの言語種別を検索キーワードの言語種別と同一に限定するかしないかの値が“0（同一言語のみ）”、“1（限定しない）”のように設定される。
【００５４】
例えば、キーワード辞書ファイル２５のキーワードＩＤ２５１、言語コード２５２及びキーワード２５３に、それぞれ以下のように設定された３つのキーワード辞書レコード２５０が存在するとする。
（１）“1”、“jpn”、“仕様書”
（２）“1”、“eng”、“specifications”
（３）“2”、“jpn”、“設計書”
そして、キーワード関連定義ファイル２６０のキーワードＩＤ２６１、関連キーワードＩＤ２６２、最大キーワード長２６３及び言語条件２６４に、それぞれ“2”、“1”、“3”、“0（同一言語のみ）”が設定されたキーワード関連定義レコード２６０が存在するとする。この場合、キーワード“設計書”にキーワード“仕様書”が関連していることになる。しかし、キーワード“specifications”は、キーワード関連定義レコード２６０の言語条件２６４が“0（同一言語のみ）”となっているため、関連するキーワードとみなさない。
なお、キーワード辞書ファイル２５とキーワード関連定義ファイル２６を用いた仮想分類定義レコード２３０の動的作成（仮想分類動的生成機能）については、図２２と図２３を参照しつつ後で説明する。
以上で第１の実施形態のファイル検索システムの構成・機能の説明を終了し、以下、各部の処理のフローチャートを参照しつつ、第１の実施形態のファイル検索システムの動作を説明する。
【００５５】
＜各プログラムの動作＞
図８は、インデックス１作成部１１の動作の一例を示すフローチャートである。
インデックス１作成部１１は、処理を開始すると、検索対象ファイル４３のインデックス１レコード２１０を作成等する（Ｓ８０１）。
具体的には、例えば、ファイル管理部４１に、記憶装置２内の所定のファイルに予め記憶されているファイルパス（例えば“/etc/usr1/”）に含まれているファイルを読込、送信するように要求する。そして、ファイル管理部４１からファイルを受信すると、取得したファイルのファイルパス（例えば“/etc/usr1/作業報告１.doc”）がファイルパス２１２に設定されているインデックス１レコード２１０が存在するか判定する。そして、存在しない場合は、取得したファイルからキーワードを抽出し、当該ファイルのファイル名、ファイルパス、アクセス権限及び抽出したキーワードを、それぞれファイル名２１１、ファイルパス２１２、アクセス権限２１３及びキーワード２１４に設定して、インデックス１レコード２１０を追加する。一方、存在する場合は、当該インデックス１レコード２１０（以下「更新対象レコード」という。）のアクセス権限２１３及びキーワード２１４を更新する。
【００５６】
以上の処理を、予め設定されているファイルパス配下のファイル全てについて実行した後、新たに作成したインデックス１レコード２１０以外のレコードで、更新対象レコードにならなかったインデックス１レコード２１０が存在する場合、当該インデックス１レコード２１０を削除する。
なお、インデックス１レコード２１０を作成等する方法は、上述の方法に限られない。例えば、処理開始後、インデックス１ファイル２１を削除し、ファイル管理部４１に、予め設定されているファイルパス（例えば“/etc/usr1/”）に含まれているファイルを読込、送信するように要求し、受信したファイルについて、インデックス１レコード２１０を作成してもよい。
【００５７】
以上で説明したように、第１の実施形態においては、インデックス１作成部１１が処理を行うたびに、処理時点の検索対象ファイル４３と１対１に対応するインデックス１レコード２１０が作成される。
【００５８】
図９は、インデックス２作成部１２の動作の一例を示すフローチャートである。
インデックス２作成部１２は、処理を開始すると、検索対象ファイル４３のインデックス２レコード２２０を作成等する（Ｓ９０１）。具体的な処理内容は、インデックス１作成部１１と同様なので、以下、異なる点のみを説明する。
まず、前述したように、インデックス２作成部１２の検索対象ファイル４３は、インデックス１作成部１１の検索対象ファイル４３と同一である必要はない。例えば、記憶装置４２に記憶されている全てのファイルを、インデックス１作成部１１の検索対象ファイル４３とし、記憶装置４２に記憶されているファイルの一部（例えばクライアント３の操作者が通常参照するファイルのみ）をインデックス２作成部１２の検索対象ファイル４３とすることができる。このようにすることで、後述する検索処理において、通常はインデックス２ファイル２２のみを検索することで検索結果として表示されるファイルの数を抑え、一方、必要に応じてインデックス１ファイル２１を検索することで、普段は参照しないファイルも検索結果として表示させることができる。
【００５９】
逆に、記憶装置４２に記憶されているファイルの一部（例えば論文、判決文等、語句が比較的厳密に使用されている文書ファイル）をインデックス１作成部１１の検索対象ファイル４３とし、記憶装置４２に記憶されている全てのファイルを、インデックス２作成部１２の検索対象ファイル４３とすることができる。
このようにすることで、定義をあいまいにしたまま使用されている語句等が、インデックス１レコード２１０のキーワード２１４に抽出される可能性が減少する。当該語句等が検索キーワードに一致して当該ファイルが検索結果として表示されても、実際には求めるファイルではない可能性が比較的高い。このため、インデックス１ファイル２１の容量を比較的小さく抑えることができるとともに、後述する検索処理において、キーワードによる全文検索を行った場合に、検索結果として求めるファイルが含まれる可能性を高めることができる。
【００６０】
また、以下のようにすることで、インデックス２レコード２２０の不要な更新を避けることもできる。
例えば、インデックス２レコード２２０のデータ項目として更新日時を設け、インデックス２レコード２２０を作成・更新する際には当該処理を行った年月日時分秒を設定する。そして、インデックス２作成部１２がインデックス２レコード２２０を更新しようとする際に、インデックス２レコード２２０の更新日時と検索対象ファイル４３の更新日時（一般にファイル管理部４１が、ファイルの属性情報の一つとして設定する）を比較して、検索対象ファイル４３の更新日時の方が新しければ、インデックス２レコード２２０を作成した後での当該検索対象ファイル４３の内容が変わっている可能性があるので、更新対象とする。
また、インデックス２レコード２２０のデータ項目としてアクセス権限を設けた場合には、インデックス２作成部１２がインデックス２レコード２２０を更新しようとする際に、インデックス２レコード２２０のアクセス権限と検索対象ファイル４３のアクセス権限を比較し、異なっていれば更新対象とすればよい。
【００６１】
さらに、インデックス２作成部１２は、インデックス２レコード２２０を更新する際、標準メタデータ２２２の設定内容が、前述したメタデータ変更プログラムを使用して直接変更されているか判定し、直接変更されている場合は、標準メタデータ２２２は更新しない。このようにするためには、例えば、標準メタデータ２２２のデータ項目として「直接変更有無」を設け、インデックス２レコード２２０を作成する際にはデータ項目「直接変更有無」に“直接変更なし”を設定し、メタデータ変更プログラムを使用して直接変更した場合に、データ項目「直接変更有無」に“直接変更有り”を設定するようにすればよい。なお、インデックス２作成部１２は、ユーザ定義メタデータ２２３を更新しない。
【００６２】
標準メタデータ２２２のデータ項目として、さらに「直接変更後ファイル更新有無」を設けてもよい。インデックス２作成部１２がインデックス２レコード２２０を作成するとき、データ項目「直接変更後ファイル更新有無」に“更新なし”を設定する。そして、インデックス２作成部１２がインデックス２レコード２２０を更新するとき、当該インデックス２レコード２２０がメタデータ変更プログラムを使用して直接変更されているかどうかを判定し、直接変更されていて、かつ対応する検索対象ファイル４３の内容が変わっている場合、データ項目「直接変更後ファイル更新有無」に“更新有り”を設定する。
このようにすることで、クライアント３の操作者がメタデータ変更プログラムを使用して当該インデックス２レコード２２０を参照する際や、後述するようにファイル検索結果を表示する際に、標準メタデータ２２２の直接変更を行った後で、表示装置３３に表示されるファイルの内容が更新されていることを知らせることができ、クライアント３の操作者は、再度標準メタデータ２２２の直接変更を行う必要があるかどうか判断することができる。
以上で説明したように、第１の実施形態においては、インデックス２作成部１２が処理を行うたびに、処理時点の検索対象ファイル４３と１対１に対応するインデックス２レコード２２０が作成される。
【００６３】
図１０は、検索要求部３１の動作の一例を示すフローチャートである。
検索要求部３１は、クライアント３の操作者が入力装置３２を使用して起動する。
検索要求部３１は、起動されると、ログイン処理を行う（Ｓ１００１）。具体的には、表示装置３３に図１３のようなログイン画面を表示し、クライアント３の操作者が入力装置３２を使用して利用者ＩＤおよびパスワードを入力し、「実行」ボタンを押すと、入力された利用者ＩＤとパスワードが適切か否か、および検索対象ファイル４３に対する利用者ＩＤのアクセス権限を判定する。なお、上記のようなログイン処理自体は周知技術であるので、これ以上の説明は省略する。
【００６４】
検索要求部３１は、入力された利用者ＩＤとパスワードが適切であると判定した場合、表示装置３３に検索要求画面を表示する（Ｓ１００２）。図１４に検索要求画面（Ｄ１４０１）の表示例を示す。図１４に示すように、検索要求画面は、仮想分類表示部（Ｄ１４０２）、物理フォルダ表示部（Ｄ１４０３）、検索条件部（Ｄ１４０４）、検索結果部（Ｄ１４０５）および「検索」、「メタデータ編集」、「終了」の各ボタンから構成されている。
【００６５】
検索要求部３１は、検索要求画面（Ｄ１４０１）を表示する際に、検索部１３の仮想分類機能を利用して、仮想分類表示部（Ｄ１４０２）を表示する。具体的には、検索要求部３１は検索部１３に、仮想分類の初期表示内容を送信するように要求し、検索部１３は、仮想分類定義レコード２３０のうち、上位仮想分類ＩＤ２３４に“0（上位なし）”が設定されているレコード（すなわち最上位の仮想分類定義レコード２３０）の表示名２３２を、検索要求部３１に送信し、検索要求部３１は、受信した表示名を仮想分類表示部（Ｄ１４０２）に表示する。また、検索要求部３１は、各表示名２３２の前に、「＋」を四角く囲んだ図形を表示する。後述するように、クライアント３の操作者は、この図形をマウスでクリックする等の操作を行うことで、当該仮想分類に含まれている他の仮想分類やファイルを表示することができる。
【００６６】
例えば、仮想分類ＩＤ２３１、表示名２３２、条件２３３及び上位仮想分類ＩＤ２３４に、それぞれ“1”、“タイトル”、“条件なし”、“0（上位なし）”が設定された仮想分類定義レコード２３０と、それぞれ“2”、“作業報告”、“タイトル２２２ａに「作業報告書」が含まれる”、“1”が設定された仮想分類定義レコード２３０が存在するとする。この場合、仮想分類表示部（Ｄ１４０２）のタイトルの前に表示された「＋」を四角く囲んだ図形をクリックすると、図１５のＤ１４０２に示すように、あたかも“タイトル”という名前のフォルダ内に“作業報告”という名前のフォルダが含まれているかのようなツリー表示がなされる。
更に、タイトル２２２ａに”作業報告書“が含まれているインデックス２レコード２２０が４レコード存在し、それぞれのファイル名２２１ｂが”作業報告１.doc“、”作業報告２.doc“、”作業報告３.doc“及び”報告書.doc“だった場合、作業報告前に表示された「＋」を四角く囲んだ図形をクリックすると、図１５の仮想分類表示部（Ｄ１４０２）に示すように、“作業報告”という名前のフォルダ内に、”作業報告１.doc“、”作業報告２.doc“、”作業報告３.doc“及び”報告書.doc“の４つのファイルが含まれているかのようなツリー表示がなされる。
【００６７】
また、検索要求部３１は、検索要求画面（Ｄ１４０１）を表示する際に、検索部１３の物理階層作成機能を利用して、物理フォルダ表示部（Ｄ１４０３）を表示する。具体的には、検索要求部３１は検索部１３に、物理フォルダの初期表示内容を送信するように要求する。検索部１３は、インデックス２レコード２２０のシステムメタデータ２２１内のファイルパス２２１ｃを参照してフォルダのツリー状階層を作成して、そのツリー状階層を検索要求部３１に送信する。検索要求部３１は、受信したツリー状階層に含まれるフォルダの名称を物理フォルダ表示部（Ｄ１４０３）に表示する。
また、検索要求部３１は、各フォルダの名称の前に、「＋」を四角く囲んだ図形を表示する。クライアント３の操作者は、この図形をマウスでクリックする等の操作を行うことで、当該フォルダに含まれている他のフォルダやファイルを表示することができる。
【００６８】
なお、検索条件部（Ｄ１４０４）及び検索結果部（Ｄ１４０５）の表示内容は図１４に示すとおりであり、検索結果部（Ｄ１４０５）には検索結果は表示されていない。
クライアント３の操作者は入力装置３２を使用して検索条件部（Ｄ１４０４）の各項目を入力する。検索条件部（Ｄ１４０４）に入力した項目は検索条件となり、例えば、全文に“現場”、タイトルに“作業報告”を入力した場合、インデックス１レコード２１０のキーワード２１４に“現場”が設定されており、かつ、インデックス２レコード２２０のタイトル２２２ａに“作業報告”が設定されているファイルが検索され、検索結果部（Ｄ１４０５）に、検索結果がスクロール表示される。
【００６９】
検索条件部（Ｄ１４０４）の各項目については、さまざまな入力方法を可能にすることで検索の利便性を向上させることができる。例えば、全文に“not現場”、“現場 and 作業”等の論理式入力を可能にすればよい。なお、検索条件部（Ｄ１４０４）の入力項目は、図示した項目に限る必要はなく、例えばアクセス権限、セキュリティランク等、インデックス１ファイル２１及びインデックス２ファイル２２のデータ項目に合せて決めればよい。
検索要求部３１は、検索要求画面表示（Ｓ１００２）後、検索ボタン、メタデータ編集ボタンまたは終了ボタンが押下されるのを待つ（Ｓ１００３、Ｓ１００４）。検索ボタンが押された場合、すなわち検索要求を検知した場合（Ｓ１００３：ＹＥＳ）、検索処理（Ｓ１００５、Ｓ１００６、Ｓ１００７）を行う。また、終了ボタンが押された場合、すなわち終了要求を検知した場合（Ｓ１００４：ＹＥＳ）、処理を終了する。
【００７０】
なお、図１０には示していないが、検索要求部３１は、メタデータ編集ボタンが押された場合、メタデータ編集処理を行う。具体的には、検索要求部３１は、クライアント３の操作者に編集対象のファイルを指定するように要求し、指定されたファイルの標準メタデータ２２２及びユーザ定義メタデータ２２３の、その時点での設定内容を表示する。そして、検索要求部３１は、クライアント３の操作者が入力した内容で、標準メタデータ２２２及びユーザ定義メタデータ２２３の設定内容を変更する。このとき、前述したように、標準メタデータ２２２の直接変更後ファイル更新有無に“更新有り”が設定されている場合、表示装置３３にその旨のメッセージを表示してもよい。
【００７１】
検索要求部３１は、検索要求を検知した場合、検索条件部（Ｄ１４０４）の入力内容（検索条件）を、検索部１３に送信する（Ｓ１００５）。例えば、全文に“現場”、タイトルに“作業報告”が入力された場合、“全文=現場  タイトル=作業報告”といった検索条件式を作成し、ログイン画面で入力された利用者ＩＤとともに、検索部１３に送信する。ここで、検索条件式は検索部１３によって解釈される式であり、検索部１３が解釈可能な構文規則等に従って作成すればよい。
検索要求部３１は、検索条件式を検索部１３に送信した後、検索部１３から検索結果を受信するまで待つ（Ｓ１００６）。検索結果を受信する（Ｓ１００６：ＹＥＳ）と、検索結果を検索要求画面の検索結果部（Ｄ１４０５）に表示し（Ｓ１００７）、再び、検索ボタン等が押下されるのを待つ（Ｓ１００３、Ｓ１００４）。
【００７２】
図１１は、検索部１３の動作の一例を示すフローチャートである。
ファイル検索サーバ１がクライアント３からの検索要求を受信すると、検索部１３が起動される。
検索部１３は、まず、検索要求に含まれる検索条件式を解析し、メタデータ検索を行うか、すなわち、インデックス２ファイル２２のシステムメタデータ２２１等を参照して検索する必要があるか判定する（Ｓ１１０１）。例えば、検索条件式が“全文=現場  タイトル=作業報告”である場合、標準メタデータ２２２のタイトル２２２ａを参照して検索する必要があると判定する。また、例えば、検索条件式が“全文=現場”である場合、メタデータ検索を行なわず、全文検索のみ行うと判定する。
検索部１３は、メタデータ検索を行うと判定した場合（Ｓ１１０１：ＹＥＳ）、インデックス２ファイル２２による検索を行う（Ｓ１１０２）。具体的には、検索条件式から、システムメタデータ２２１等に関する条件を抽出し、条件に合致するインデックス２レコード２２０を選択する（以下「メタデータ合致レコード」という。）。例えば、検索条件式が“全文=現場  タイトル=作業報告”である場合、標準メタデータ２２２のタイトル２２２ａに“作業報告”が設定されているインデックス２レコード２２０を選択する。
【００７３】
検索部１３は、メタデータ検索（Ｓ１１０２）を行った後、又はメタデータ検索を行わないと判定した場合（Ｓ１１０１：ＮＯ）、全文検索を行うか、すなわち、インデックス１ファイル２１のキーワード２１４を参照して検索する必要があるか判定する（Ｓ１１０３）。例えば、検索条件式が“全文=現場  タイトル=作業報告”または“全文=現場”である場合、キーワード２１４を参照して検索する必要があると判定する。
検索部１３は、全文検索を行うと判定した場合（Ｓ１１０３：ＹＥＳ）、インデックス１ファイル２１による全文検索を行う（Ｓ１１０４）。具体的には、検索部１３は、検索条件式から、全文検索の条件を抽出し、メタデータ検索（Ｓ１１０２）を行った場合には、メタデータ合致レコードのファイルパス２２１ｃ、及び検索要求部３１から受信した利用者ＩＤとともに、インデックス１検索部１４に渡す。また、検索部１３は、メタデータ検索を行なわなかった場合には、インデックス２ファイル２２の全てのインデックス２レコード２２０をメタデータ合致レコードとして選択し、当該レコードのファイルパス２２１ｃを、全文検索の条件及び検索要求部３１から受信した利用者ＩＤとともに、インデックス１検索部１４に渡す。
インデックス１検索部１４は、後述するように、受け取った全文検索の条件等を参照して検索を行い、最終的に検索結果とすべきインデックス２レコード２２０（以下「キーワード合致レコード」という。）のファイルパス２２１ｃを検索部１３に渡す。
【００７４】
検索部１３は、全文検索を行わないと判定した場合（Ｓ１１０３：ＮＯ）は、メタデータ合致レコードを検索要求部３１への送信対象とし、一方、全文検索を実行（Ｓ１１０４）した場合は、キーワード合致レコードを検索要求部３１への送信対象とする。検索部１３は、送信対象としたインデックス２レコード２２０の各データ項目を検索要求部３１に送信する（Ｓ１１０５）。
検索部１３は、送信後、処理を終了する。
【００７５】
図１２は、インデックス１検索部１４の動作の一例を示すフローチャートである。
インデックス１検索部１４は、例えば、各メタデータ合致レコードに対応するインデックス１レコード２１０を検索する（Ｓ１２０１）。具体的には、インデックス１検索部１４は、検索部１３から受け取ったメタデータ合致レコードのファイルパス２２１ｃ全てにつき、ファイルパス２１２に同一値が設定されているインデックス１レコード２１０を参照し、当該レコードのアクセス権限２１３により、検索部１３から受信した利用者ＩＤがアクセス権限を有するか判定する。そして、アクセス権限を有すると判定した場合、当該レコードのキーワード２１４が、検索部１３から受信した全文検索の条件を満足するか判定する。
インデックス１検索部１４は、全文検索の条件を満足すると判定されたファイルパス２２１ｃを検索部１３に渡し（Ｓ１２０２）、処理を終了する。
【００７６】
ところで、インデックス１検索部１４を実現するプログラムとして、既に存在するさまざまな全文検索プログラムを使用するような場合、インデックス１作成部１１も当該インデックス１検索部１４に対応したプログラムを使用することになる。その場合、一般的には、インデックス１ファイル２１に係わる検索対象ファイル４３とインデックス２ファイル２２に係わる検索対象ファイル４３が異なり、インデックス２ファイル２２とは関係なく全文検索の条件によりインデックス１ファイル２１が検索されることになる。そうすると、例えば、インデックス２ファイル２２に係わる検索対象ファイル４３として、クライアント３の操作者が普段よく使用するファイルを設定した場合も、クライアント３の操作者が全文検索のみを要求すると、インデックス１ファイル２１が検索されてしまうので、普段よく使用しないファイルも検索結果として表示されることになる。
【００７７】
このように検索されるのが好ましい場合もあるが、好ましくない場合もある。そこで、全文検索のみを行う場合に、インデックス２ファイル２２が作成された検索対象ファイル４３のみを検索対象とするか（すなわち、メタデータ作成済みファイルのみを検索対象とするか）、それとも、インデックス２ファイル２２に係わらずインデックス１ファイル２１の検索対象ファイル４３全てを検索対象とするか（すなわち、メタデータ未作成のファイルも検索対象とするか）を、検索要求画面で指定できるようにしてもよい。
【００７８】
このようにした場合、メタデータ未作成のファイルも検索対象とするように指定された場合は、インデックス１検索部１４はインデックス２ファイル２２とは関係なく全文検索の条件によりインデックス１ファイル２１を検索する。一方、メタデータ作成済みファイルのみを検索対象とするように指定された場合は、検索部１３は、メタデータ検索が要求されていない場合（図１１のＳ１１０１でＮＯの場合）も、インデックス２ファイル２２の全てのインデックス２レコード２２０をメタデータ合致レコードとして選択し、当該レコードのファイルパス２２１ｃを、全文検索の条件及び検索要求部３１から受信した利用者ＩＤとともに、インデックス１検索部１４に渡す。
【００７９】
＜仮想分類動的生成機能についての補足説明＞
図２２は、仮想分類動的生成における検索部１３等の動作の一例を示すフローチャートである。
検索部１３は、まず、検索要求に含まれる検索条件式を解析し、メタデータ検索かどうかを判定する（Ｓ１３０１）。
検索部１３は、メタデータ検索を行うと判定した場合（Ｓ１３０１：ＹＥＳ）、キーワード辞書ファイル２５の検索を行う（Ｓ１３０２）。具体的には、メタデータ検索のキーワードがキーワード辞書ファイル２５のキーワード２５３に設定されているキーワード辞書レコード２５０を選択する（以下「キーワード辞書合致レコード」という。）。例えば、検索条件式が“タイトル＝設計書”である場合、キーワード辞書ファイル２５のキーワード２５３に“設計書”が設定されているキーワード辞書レコード２５０を選択する。
検索部１３は、メタデータ検索キーワードがキーワード辞書ファイル２５に存在する場合（Ｓ１３０３：ＹＥＳ）、キーワード辞書合致レコードのキーワードＩＤ２５１で、キーワード関連定義ファイル２６の検索を行う（Ｓ１３０４）。具体的には、キーワード辞書合致レコードのキーワードＩＤ２５１が“1”の場合、キーワード関連定義ファイル２６のキーワードＩＤ２６１に“1”が設定されているキーワード関連定義レコード２６０を選択する（以下「キーワード関連合致レコード」という。）。
【００８０】
検索部１３は、キーワード辞書合致レコードのキーワードＩＤ２５１がキーワード関連定義ファイル２６に存在する場合（Ｓ１３０５：ＹＥＳ）、キーワード関連合致レコードの関連キーワードＩＤ２６２に設定されているキーワードＩＤの数分、関連キーワードＩＤ２６２に設定されているキーワードＩＤでキーワード辞書ファイル２５を検索する（Ｓ１３０６）。具体的には、キーワード関連合致レコードの関連キーワードＩＤ２６２に“2, 3, 4”が設定されている場合、キーワード辞書ファイル２５のキーワードＩＤ２５１に“2”または“3”または“4”が設定されているキーワード辞書レコード２５０を選択する（以下「関連キーワード辞書合致レコード」という。）。
さらに、図示していないが、キーワード関連合致レコードの最大キーワード長２６３に設定されている値が“1”以上の場合、関連キーワード辞書合致レコードを関連キーワード辞書合致レコードのキーワードの長さが最大キーワード長２６３の値以下のレコードのみに絞り込む。
さらに、図示していないが、キーワード関連合致レコードの言語条件２６４が“0（同一言語のみ）”に設定されている場合、関連キーワード辞書合致レコードを関連キーワード辞書合致レコードの言語コード２５２とキーワード辞書合致レコードの言語コード２５２が同一のレコードのみに絞り込む。
【００８１】
検索部１３は、メタデータ検索キーワードと、上述した方法により選択されて絞り込まれたキーワード辞書レコード２５０から仮想分類定義レコードを作成する（Ｓ１３０７）。
具体的には、検索部１３は、メタデータ検索キーワードを仮想分類定義レコード２３０の表示名２３２に設定して、最上位の仮想分類定義レコード２３０を作成する。例えば、メタデータ検索条件が“タイトル＝設計書”である場合、仮想分類ＩＤ２３１、表示名２３２、条件２３３及び上位仮想分類ＩＤ２３４に、それぞれ“1”、“設計書”、“条件なし”、“0（上位なし）”を設定し仮想分類定義レコード２３０を作成する（以下「動的生成ルート仮想分類レコード」という。）。
検索部１３は、次に、関連キーワード辞書合致レコードから動的生成ルート仮想分類レコードの下位の仮想分類定義レコード２３０を作成する。例えば、メタデータ検索条件が“タイトル＝設計書”で、メタデータ検索キーワード“設計書”に関連するキーワードが“仕様書”と“定義書”である場合、仮想分類ＩＤ２３１、表示名２３２、条件２３３及び上位仮想分類ＩＤ２３４に、それぞれ“2”、“仕様書”、“タイトル＝仕様書”、“1”を設定した仮想分類定義レコード２３０と、それぞれ“3”、“定義書”、“タイトル＝定義書”、“1”を設定した仮想分類定義レコード２３０を作成する（以下「動的生成仮想分類レコード」という。）。このとき、条件２３３は、「メタデータ検索条件の項目（“タイトル”）＝関連するキーワード（“仕様書”もしくは“定義書”）」という条件を作成し設定する。また、上位仮想分類ＩＤ２３４には、動的生成ルート仮想分類レコードの仮想分類ＩＤ２３１の値“1”を設定する。
【００８２】
検索部１３は、動的生成ルート仮想分類レコードと動的生成仮想分類レコードとに基づいて仮想分類定義を作成する。仮想分類定義の作成が終了すると、検索部１３は、作成した仮想分類定義を検索要求部３１に送信する（Ｓ１３０８）。なお、検索部１３は、動的生成ルート仮想分類レコードと動的生成仮想分類レコードを含む仮想分類定義ファイルを記憶装置２に記憶させず、ファイル検索サーバ１のメモリに記憶するのみとしてもよい。
検索要求部３１は、受信した仮想分類定義を、仮想分類機能と同様に図２３の仮想分類表示部（Ｄ１４０２）にツリー表示する。
【００８３】
＜メタデータ検索と全文検索の両方を行う場合の処理についての補足説明＞
第１の実施形態のファイル検索システムでは、上述したとおり、クライアント３の操作者が全文検索を要求した場合にのみ、インデックス１ファイル２１を利用して検索を行う。ところで、一般に全文検索を行わない場合に比べて、全文検索に要する処理時間は長くなるので、クライアント３の操作者が検索要求してから検索結果が表示されるまでの待ち時間が長くなる。そこで、クライアント３の操作者が思いがけずに長時間待たされることを防止することが望ましい。
以下、メタデータ検索と全文検索の両方を行う場合（以下「複合検索」という。）において、上記の対策を行う場合の検索部１３等の動作について説明する。
【００８４】
図１６は、複合検索における検索部１３等の動作の一例を示すフローチャートである。
図１６のＳ１６５０〜Ｓ１６５５は、複合検索時に、図１１のＳ１１０４〜Ｓ１１０５において検索部１３が行う処理の詳細を示しており、Ｓ１６０１〜Ｓ１６０７は、当該処理に対応して検索要求部３１が図１０のＳ１００６〜Ｓ１００７において行う処理の詳細を示している。
【００８５】
検索部１３は、検索結果件数、すなわちメタデータ検索で検索されたメタデータ合致レコードのレコード数を、予め定めた所定件数（以下「最大検索件数」という。）と比較する（Ｓ１６５０）。
そして、メタデータ合致レコードのレコード数、すなわち全文検索対象数が最大検索件数より大きい場合（Ｓ１６５０：ＹＥＳ）には、検索要求部３１に、処理続行有無を確認するメッセージを送信し（Ｓ１６５１）、検索要求部３１から検索処理を続行するか否かの確認結果を受信するまで待つ（Ｓ１６５２）。
【００８６】
検索要求部３１は、検索部１３から検索処理を続行するか否かを確認するメッセージを受信すると、当該メッセージを表示装置３３に表示し、クライアント３の操作者に検索処理を続行するか否かの応答を要求する（Ｓ１６０１）。具体的には、例えば、ポップアップ画面に、確認メッセージと、「検索続行」及び「中止」のボタンを表示し、いずれかのボタンがクリックされるまで待てばよい。
検索要求部３１は、クライアント３の操作者が「中止」のボタンをクリックする等により検索中止を指示した場合（Ｓ１６０２：ＮＯ）、検索部１３に「検索中止」指示を送信して、処理を終了する（Ｓ１６０３）。従って、検索要求部３１は、検索結果を表示することなく、再び、検索要求画面で検索ボタン等が押下されるのを待つ（図１０のＳ１００３、Ｓ１００４）。
検索要求部３１は、クライアント３の操作者が「検索続行」のボタンをクリックする等により検索続行を指示した場合（Ｓ１６０２でＹＥＳの場合）、検索部１３に「検索続行」指示を送信し、図には明示していないが、検索部１３から検索結果を受信するまで待つ。
【００８７】
検索部１３は、検索要求部３１から「検索中止」指示又は「検索続行」指示を受信すると、受信した指示によって処理を変える（Ｓ１６５２）。すなわち、「検索中止」指示を受信した場合は（Ｓ１６５２：ＮＯ）処理を終了する。一方、「検索続行」指示を受信した場合は（Ｓ１６５２：ＹＥＳ）、メタデータ合致レコードのうち最大検索件数分のレコードのファイルパス２２１ｃ、全文検索の条件及び検索部３１から受信した利用者ＩＤをインデックス１検索部１４に渡して、全文検索を実行させる（Ｓ１６５３）。
なお、全文検索対象数が最大検索件数以下の場合（Ｓ１６５０：ＮＯ）には、検索要求部３１に、処理続行有無を確認するメッセージを送信することなく、メタデータ合致レコードのファイルパス２２１ｃ、全文検索の条件及び検索要求部３１から受信した利用者ＩＤをインデックス１検索部１４に送信して、全文検索を実行させる（Ｓ１６５３）。
【００８８】
全文検索が終了すると、検索部１３は、キーワード合致レコードの各データ項目を検索要求部３１に送信する（Ｓ１６５４）。このとき、全てのメタデータ合致レコードについて全文検索を実行したか、それとも全文検索未実行のメタデータ合致レコードが残っているかの識別も送信する。
検索部１３は、次に、検索結果部（Ｄ１４０５）に追加表示が可能かどうかを判定する（Ｓ１６５５）。具体的には、メタデータ合致レコードに全文検索未実行のレコードが残っており、かつ検索要求部３１に送信した検索結果の累計値が、検索要求画面（Ｄ１４０１）の検索結果部（Ｄ１４０５）に表示可能な件数として予め定めた件数（以下「最大表示件数」という。）より小さい場合（Ｓ１６５５：ＹＥＳ）には、再び、検索要求部３１から検索処理を続行するか否かの確認結果を受信するまで待つ（Ｓ１６５２）。一方、検索結果部（Ｄ１４０５）に追加表示できない場合（Ｓ１６５５：ＮＯ）には、検索部１３は処理を終了する。
【００８９】
検索要求部３１は、検索部１３から検索結果を受信すると、検索結果部（Ｄ１４０５）に検索結果を表示する（Ｓ１６０５）。なお、前述したように、検索結果部（Ｄ１４０５）に追加表示が可能な限り、メタデータ合致レコードを対象とした全文検索が繰り返し実行される。従って、検索結果は検索結果部（Ｄ１４０５）に追加表示する。例えば、１回目の全文検索の結果が３件で、２回目の全文検索の結果が４件の場合、検索結果部（Ｄ１４０５）には７件の検索結果が表示される。
【００９０】
検索要求部３１は、次に、全文検索未実行のメタデータ合致レコードが残っており（前述したように、検索部１３から、全てのメタデータ合致レコードについて全文検索を実行したか、それとも全文検索未実行のメタデータ合致レコードが残っているかの識別が送信される）、かつ検索結果部（Ｄ１４０５）に追加表示が可能かどうか判定する（Ｓ１６０６）。検索要求部３１は、全文検索未実行のメタデータ合致レコードが残っており、かつ検索結果部（Ｄ１４０５）に追加表示が可能な場合（Ｓ１６０６：ＹＥＳ）には、処理続行有無を確認するメッセージを表示装置３３に表示し（Ｓ１６０７）、再び、クライアント３の操作者に検索処理を続行するか否かの応答を要求する（Ｓ１６０２）。
【００９１】
一方、検索要求部３１は、全てのメタデータ合致レコードについて全文検索を実行したか、又は検索結果部（Ｄ１４０５）に追加表示ができない場合（Ｓ１６０６：ＮＯ）には、処理を終了する。従って、検索要求部３１は、検索結果部（Ｄ１４０５）にそれまでの検索結果を表示して、再び、検索ボタン等が押下されるのを待つ（図１０のＳ１００３、Ｓ１００４）。
【００９２】
以上のように、全文検索対象数が最大検索件数より大きい場合に、クライアント３の操作者に検索処理を続行するか否かを問い合わせ、「検索続行」が指示された場合に全文検索する。従って、クライアント３の操作者は、検索時間が長くなりそうな場合には、いったん検索処理を中止し、例えば、メタデータの検索条件をさらに絞り込んで検索を行うことができる。
また、全文検索は最大検索件数単位で繰り返し行われ、全文検索を行うたびに、検索結果が追加表示されるので、クライアント３の操作者は、比較的短時間のうちに、検索結果を次々と確認することができる。
【００９３】
＜関連検索についての補足説明＞
図１７は、検索要求画面（Ｄ１４０１）に含まれる検索結果部（Ｄ１４０５）の表示内容を例示する。
図１７においては、ファイル名とファイルパスが表示されているが、この他に、タイトル、文書記載日等、インデックス２レコード２２０等のデータ項目を表示してもよいし、例えば、インデックス２レコード２２０に検索対象ファイル４３の内容の一部を設定しておき、これを表示してもよい。
また、図１７において点線で囲った関連検索指示部（Ｄ１７０１）には、関連定義レコード２４０の表示名２４２に設定された名称が表示される。図１７の例においては、表示名２４２にそれぞれ“タイトル”と“記載日付”が設定された２つの関連定義レコード２４０が存在しており、この表示名２４２が表示されている。
【００９４】
この状態で、クライアント３の操作者が、例えば“タイトル”と表示された部分をクリックすると、検索要求部３１は、検索部１３に、“タイトル”に係わる関連検索を行うように要求する。具体的には、表示装置３３には表示されていないが、検索結果とともに検索部１３から受信した、当該検索結果ファイルに係わるファイルＩＤ２２１ａ及び“タイトル”に係わる関連定義ＩＤ２４１を、関連検索要求とともに検索部１３に送信する。
検索部１３は関連検索要求を受信すると、受信した関連定義ＩＤ２４１が設定された関連定義レコード２４０の条件２４３を参照し、条件２４３に設定されている条件に従って、インデックス２レコード２２０を検索し、検索結果を検索要求部３１に送信する。
【００９５】
例えば、関連定義ＩＤ２４１、表示名２４２及び条件２４３に、それぞれ“1”、“タイトル”、“タイトル２２２ａが当該検索結果と等しい”が設定された関連定義レコード２４０が存在し、タイトル２２２ａに”作業報告書“が含まれているインデックス２レコード２２０が４レコード存在し、それぞれのファイル名２２１ｂが”作業報告１.doc“、”作業報告２.doc“、”作業報告３.doc“及び”報告書.doc“であり、表示装置３３に検索結果として”作業報告１.doc“が表示されているとする。この場合、関連検索指示部（Ｄ１７０１）には、”タイトル“の文字が表示される。クライアント３の操作者が、”タイトル“の文字をクリックすると、検索要求部３１は、検索部１３に、”作業報告１.doc“のファイルＩＤ及び関連定義ＩＤ（“1”）を送信する。
すると、検索部１３は、関連定義ＩＤ２４１が“1”である関連定義レコード２４０の条件２４３を参照し、“タイトル２２２ａが当該検索結果と等しい”が設定されているので、受信したファイルＩＤによって、”作業報告１.doc“のタイトル２２２ａを取得し、”作業報告１.doc“と同じく、タイトル２２２ａに”作業報告書“が含まれている”作業報告２.doc“、”作業報告３.doc“及び”報告書.doc“の３つのファイルを検索し、検索結果（例えば、ファイル名とファイルパス）を検索要求部３１に送信する。そして、検索要求部３１は、図１８に示すように、検索結果部（Ｄ１４０５）に関連検索結果を表示する。
なお、関連検索結果の表示件数には特に制限を設けないようにしてもよいし、例えば、最大５件だけ表示し、５件を超える場合は、別画面に表示するようにしてもよい。
【００９６】
＜ファイル検索システムのその他の実施形態＞
本発明に係わるファイル検索システムは、第１の実施形態に限られず、さまざまな実施形態とすることができる。その１例を以下に説明する。
【００９７】
図１９は、本発明の第２の実施形態に係るファイル検索システムの構成の一例を示す。
第２の実施形態においては、第１の実施形態と異なり、ファイル検索サーバ１は、インデックス１作成部１１及びインデックス１検索部１４を備えていない。
そのかわり、ファイル検索サーバ５が、通信回線９によって、クライアント３、ファイルサーバ４、ＷＥＢサーバ７及びファイル検索サーバ１と通信可能に接続されている。ファイル検索サーバ５は、コンピュータであり、図示しないＣＰＵおよび主記憶装置、記憶装置６を備えている。ファイル検索サーバ５の主記憶装置には、所定のプログラムが記憶されている。ＣＰＵがその命令コードを実行することにより、インデックス１作成部１１、インデックス１検索部１４の各機能が実現される。また、インデックス１ファイル２１はファイル検索サーバ１の記憶装置２には記憶されず、ファイル検索サーバ５の記憶装置６に記憶される。
第２の実施形態と第１の実施形態の構成上の大きな相違点は以上のとおりである。
【００９８】
第２の実施形態のファイル検索システムにおいては、クライアント３、ファイルサーバ４、ＷＥＢサーバ７、ファイル検索サーバ１及びファイル検索サーバ５が、通信回線９によって相互に通信可能に接続されている。このような構成により、例えば、ある組織がデータセンタに設置されたファイルサーバ４にファイルを記憶させているとき、ファイルサーバ４に記憶された検索対象ファイル４３について、インデックス２ファイル２２、仮想分類定義ファイル２３、関連定義ファイル２４、キーワード辞書ファイル２５及びキーワード関連定義ファイル２６を作成することで、メタデータ検索、仮想分類表示、物理フォルダ表示及び関連検索を可能にしつつ、当該組織が管理していないＷＥＢサーバ７の記憶装置７１に記憶された検索対象ファイル７２については、ファイル検索サーバ５のインデックス１作成部１１が、いわゆるＷＥＢクローリングにより、例えばＡｐａｃｈｅ（Ａｐａｃｈｅは登録商標）等のＷＥＢサーバプログラムを介して、インデックス１ファイル２１を作成して、全文検索を可能にすることができる。
【００９９】
また、第２の実施形態においては、ファイル検索サーバ５は、ファイル検索を行おうとする組織が設置する必要はなく、世の中に存在しているファイル検索サーバの機能を使用して全文検索等を行うことができるので、柔軟性・拡張性の高い検索システムを構築することができる。
【０１００】
以上説明したように、本発明によれば、全文検索を可能にすべきファイルと全文検索が不要なファイルとが存在しているファイル検索環境において、効率的にファイルを検索することができる。
例えば、組織内において作成された文書等のファイルについては、インデックス２ファイル２２を作成しておき、メタデータ検索を行えばよい。メタデータ検索キーワードを用いてインデックス２ファイル２２を検索することで検索結果として表示されるファイルの数を抑えることができる。たとえ、ファイルを間違ったフォルダに記憶したような場合でも、ファイルの使用目的、タイトル等が記憶された小容量のインデックス２ファイル２２があれば、当該ファイルを検索できる場合が多い。
一方、例えば、特許文献、技術論文等、組織外部から入手したファイルや、ＷＥＢサーバなど、組織外部のサーバに存在しているファイルについては、入手した時点では意図しなかった用途で参照することも多く、キーワードによる全文検索が必要な場合も多い。このようなファイルについてはインデックス１ファイル２１を作成しておき、全文検索を行えばよい。
【符号の説明】
【０１０１】
１…ファイル検索サーバ、１１…インデックス１作成部、１２…インデックス２作成部、１３…検索部、１４…インデックス１検索部、２…記憶装置、２１…インデックス１ファイル、２２…インデックス２ファイル、２３…仮想分類定義ファイル、２４…関連定義ファイル、２５…キーワード辞書ファイル、２６…キーワード関連定義ファイル、３…クライアント、３１…検索要求部、３２…入力装置、３３…表示装置、４…ファイルサーバ、４１…ファイル管理部、４２…記憶装置、４３…検索対象ファイル、５…ファイル検索サーバ、６…記憶装置、７…ＷＥＢサーバ、７１…記憶装置、７２…検索対象ファイル、９…通信回線
【図１】
0005592747.tif 000002
【図２】
0005592747.tif 000003
【図３】
0005592747.tif 000004
【図４】
0005592747.tif 000005
【図５】
0005592747.tif 000006
【図６】
0005592747.tif 000007
【図７】
0005592747.tif 000008
【図８】
0005592747.tif 000009
【図９】
0005592747.tif 000010
【図１０】
0005592747.tif 000011
【図１１】
0005592747.tif 000012
【図１２】
0005592747.tif 000013
【図１３】
0005592747.tif 000014
【図１４】
0005592747.tif 000015
【図１５】
0005592747.tif 000016
【図１６】
0005592747.tif 000017
【図１７】
0005592747.tif 000018
【図１８】
0005592747.tif 000019
【図１９】
0005592747.tif 000020
【図２０】
0005592747.tif 000021
【図２１】
0005592747.tif 000022
【図２２】
0005592747.tif 000023
【図２３】
0005592747.tif 000024