(57)【要約】  データの検索を行う検索装置の制御方法であって、前記検索装置はメタデータを含む検索対象のファイルの構造を定義したメタデータスキーマ定義を識別するネームスペースの別名とメタデータ名を含んで管理するメタデータスキーマ管理情報と、検索対象のファイルのフィールド名を含んで検索インデックスデータの構造を定義した検索インデックススキーマ定義を管理する検索インデックススキーマ管理情報と、メタデータスキーマ定義情報のメタデータ名と、検索インデックススキーマ定義のフィールド名の対応関係を管理するスキーママッピング管理情報と、を有し、検索装置が、検索要求を受け付け、検索要求から別名とメタデータ名の少なくとも一方を抽出し、メタデータスキーマ管理情報を参照して別名をメタデータ名に変換し、スキーママッピング管理情報を参照して、メタデータ名からフィールド名を特定する。
2014010082.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリとを備えてデータの検索を行う検索装置であって、
前記検索装置は、
メタデータを含む検索対象のファイルの構造を定義したメタデータスキーマ定義を管理するメタデータスキーマ管理情報と、
検索インデックスデータの構造を定義した検索インデックススキーマ定義を管理する検索インデックススキーマ管理情報と、
前記メタデータスキーマ定義情報と前記検索インデックススキーマ定義との対応関係を管理するスキーママッピング管理情報と、
検索要求を受け付けて前記スキーママッピング管理情報及び前記検索インデックス管理情報を参照して前記検索要求に合致するファイルを抽出する検索制御部と、を備え、
前記メタデータスキーマ管理情報は、
当該メタデータスキーマ定義を識別するネームスペースの別名とメタデータ名を含み、
前記検索インデックススキーマ定義は、
前記検索対象のファイルのフィールド名を含み、
前記スキーママッピング管理情報は、
前記メタデータ名とフィールド名の対応関係を含み、
前記検索制御部は、
前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出し、
前記メタデータスキーマ管理情報を参照して、前記別名をメタデータ名に変換し、
前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定することを特徴とする検索装置。
【請求項２】
請求項１に記載の検索装置であって、
前記検索インデックススキーマ定義で設定されたフィールド名とファイルの対応関係を保持する検索インデックス管理情報をさらに有し、
前記検索制御部は、
前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出し、
前記メタデータスキーマ管理情報を参照して、前記別名からメタデータ名を特定し、
前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定し、
前記検索インデックス管理情報を参照して、前記特定したフィールド名に合致するファイルを特定することを特徴とする検索装置。
【請求項３】
請求項２に記載の検索装置であって、
前記検索制御部は、
前記検索インデックススキーマ定義を登録する際に、前記フィールド名毎に前記検索インデックス管理情報を作成するか否かを識別する情報を受け付け、前記作成する情報を受け付けたときに前記フィールド名を前記検索インデックス管理情報に登録することを特徴とする検索装置。
【請求項４】
請求項１に記載の検索装置であって、
前記メタデータスキーマ管理情報は、
前記検索制御部が一意に識別可能なネームスペースの別名を格納することを特徴とする検索装置。
【請求項５】
請求項２に記載の検索装置であって、
前記検索インデックススキーマ管理情報は、
前記検索インデックススキーマ定義が更新、作成または削除の何れかの操作が行われた日時を格納する更新日時情報を含み、
前記検索制御部は、
前記更新日時情報の値が所定の条件を満たすフィールド名を特定し、前記特定したフィールド名に対応するファイルを前記検索インデックス管理情報から更新対象ファイルとして特定し、前記特定した更新対象ファイルについて前記検索インデックス管理情報の値を更新する差分インデクシングを実行することを特徴とする検索装置。
【請求項６】
請求項２に記載の検索装置であって、
前記検索制御部は、
前記検索インデックス管理情報の値を更新するファイルをクローリングにより更新対象ファイルとして特定し、前記特定した更新対象ファイルについて前記検索インデックス管理情報の値を更新することを特徴とする検索装置。
【請求項７】
請求項２に記載の検索装置であって、
前記検索装置は、前記検索対象のファイルを格納するファイルサーバに接続され、
前記ファイルサーバは、
前記検索対象のファイルに対する操作履歴を蓄積し、前記操作履歴が所定の条件に合致するファイルを更新対象ファイルとして特定し、
前記検索制御部は、
前記ファイルサーバが特定した前記更新対象ファイルについて前記検索インデックス管理情報の値を更新することを特徴とする検索装置。
【請求項８】
請求項５に記載の検索装置であって、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、全ての前記更新対象ファイルについて前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項９】
請求項５に記載の検索装置であって、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、前記更新対象ファイルの全てのメタデータ名を抽出してインデクシングし、前記検索インデックススキーマ定義のフィールド名に関連付けられたメタデータ名と同じ文字列をメタデータ名として含むファイルを検索し、当該検索結果としてヒットしたファイルを更新対象ファイルとして前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項１０】
請求項５に記載の検索装置であって、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを格納するメタデータ名管理情報を有し、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、前記検索インデックススキーマ定義のフィールド名に関連付けられたメタデータ名と同じ文字列を含むファイルを前記メタデータ名管理情報から検索し、当該検索結果としてヒットしたファイルを更新対象ファイルとして前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項１１】
請求項５に記載の検索装置であって、
前記検索装置は、前記検索対象のファイルを格納するファイルサーバに接続され、
前記ファイルサーバは、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを格納するメタデータ名管理情報を有し、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、前記検索インデックススキーマ定義のフィールド名に関連付けられたメタデータ名と同じ文字列を含むファイルを前記ファイルサーバのメタデータ名管理情報から検索し、当該検索結果としてヒットしたファイルを更新対象ファイルとして前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項１２】
請求項５に記載の検索装置であって、
前記検索装置は、メタデータ管理サーバに接続され、
前記メタデータ管理サーバは、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを格納するメタデータ名管理情報を有し、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、前記検索インデックススキーマ定義のフィールド名に関連付けられたメタデータ名と同じ文字列を含むファイルを前記メタデータ管理サーバのメタデータ名管理情報から検索し、当該検索結果としてヒットしたファイルを更新対象ファイルとして前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項１３】
請求項５に記載の検索装置であって、
前記検索装置は、前記検索対象のファイルを格納するファイルサーバに接続され、
前記ファイルサーバは、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを抽出することを特徴とする検索装置。
【請求項１４】
請求項５に記載の検索装置であって、
前記検索装置は、メタデータを抽出するメタデータ抽出サーバに接続され、
前記メタデータ抽出サーバは、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを抽出することを特徴とする検索装置。
【請求項１５】
プロセッサとメモリとを備えてデータの検索を行う検索装置の制御方法であって、
前記検索装置は、
メタデータを含む検索対象のファイルの構造を定義したメタデータスキーマ定義を識別するネームスペースの別名とメタデータ名を含んで管理するメタデータスキーマ管理情報と、
前記検索対象のファイルのフィールド名を含んで検索インデックスデータの構造を定義した検索インデックススキーマ定義を管理する検索インデックススキーマ管理情報と、
前記メタデータスキーマ定義情報の前記メタデータ名と、前記検索インデックススキーマ定義の前記フィールド名の対応関係を管理するスキーママッピング管理情報と、を有し、
前記検索装置が、検索要求を受け付ける第１のステップと、
前記検索装置が、前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出する第２のステップと、
前記検索装置が、前記メタデータスキーマ管理情報を参照して、前記別名をメタデータ名に変換する第３のステップと、
前記検索装置が、前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定する第４のステップと、
を含むことを特徴とする検索装置の制御方法。
【請求項１６】
請求項１５に記載の検索装置の制御方法であって、
前記検索装置は、
検索インデックススキーマ定義で設定されたフィールド名とファイルの対応関係を保持する検索インデックス管理情報をさらに有し、
前記検索装置が、前記検索インデックス管理情報を参照して、前記特定したフィールド名に合致するファイルを特定する第５のステップをさらに含むことを特徴とする検索装置の制御方法。
【請求項１７】
プロセッサとメモリとを備えてデータの検索を行う計算機のプログラムを格納する非一時的な記録媒体であって、
前記計算機は、
メタデータを含む検索対象のファイルの構造を定義したメタデータスキーマ定義を識別するネームスペースの別名とメタデータ名を含んで管理するメタデータスキーマ管理情報と、
前記検索対象のファイルのフィールド名を含んで検索インデックスデータの構造を定義した検索インデックススキーマ定義を管理する検索インデックススキーマ管理情報と、
前記メタデータスキーマ定義情報の前記メタデータ名と、前記検索インデックススキーマ定義の前記フィールド名の対応関係を管理するスキーママッピング管理情報と、を有し、
前記プログラムは、
検索要求を受け付ける第１のステップと、
前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出する第２のステップと、
前記メタデータスキーマ管理情報を参照して、前記別名をメタデータ名に変換する第３のステップと、
前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定する第４のステップと、
を前記計算機に実行させることを特徴とする非一時的な記録媒体。
【請求項１８】
請求項１７に記載の非一時的な記録媒体であって、
前記計算機は、
検索インデックススキーマ定義で設定されたフィールド名とファイルの対応関係を保持する検索インデックス管理情報をさらに有し、
前記プログラムは、
前記検索インデックス管理情報を参照して、前記特定したフィールド名に合致するファイルを特定する第５のステップをさらに含むことを特徴とする非一時的な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルストレージシステムに格納されているファイル群を検索する機能を提供する検索サーバの制御方法に関するものである。
【背景技術】
【０００２】
コンピュータの高性能化ならびに低価格化により、様々な業種や用途においてコンピュータの利用が広がっている。近年では、コンピュータシステムに保管されるデータファイルの数が膨大になっている。このように大量のファイルを管理する場合、利用者にとって欲しいファイルがどこに格納されているのかがわからなくなるという問題も発生している。【０００３】
この問題に対しては、全文検索サービスやメタデータ検索サービスが利用されるようになってきている。【０００４】
全文検索サービスは、コンピュータシステムに格納されているファイルデータを検索サーバが解析し、検索インデックスを事前に作成する。利用者は、検索サーバに対して取得したいファイルを検索するための検索クエリを送信し、検索サーバが応答した検索結果をもとに対象ファイルにアクセスすることができる。【０００５】
メタデータ検索サービスは、検索対象ファイルに含まれるメタデータ名ならびにメタデータ値の組からなるデータを抽出し、データの検索インデックスを事前に作成する。利用者は、検索サーバに対して、当該メタデータ名とメタデータ値に関する検索条件を指定することで、当該検索結果を取得することができる。【０００６】
このような検索サービスは、今後、コンピュータシステムに格納するファイルデータ数がさらに増加することが考えられる上、利用者自身がどこにどのようなファイルデータを格納しているのかを全て把握することは困難になるため、利用者にとってさらに重要なサービスとなり、検索サービスの利用はさらに広がるものと考えられる。【０００７】
従来、メタデータ検索サービスを提供する検索サーバにおいては、メタデータ検索対象データフォーマットやデータスキーマに関する定義情報をもとに、どのようなメタデータをインデクシングして検索するか、といった定義情報を事前に登録する必要がある。この定義情報には、メタデータの名前を識別するためのメタデータ名や、メタデータが取りうる値やデータ構造を規定するためのメタデータ形式といった情報が必要になる。【０００８】
また、メタデータ検索の対象となるデータフォーマットは一種類だけではなく、複数のデータフォーマットを対象にするケースも十分考えられる。このようなケースでは、検索サーバに対して、各データフォーマットにおけるメタデータに関する定義情報を登録する必要がある。【０００９】
複数のデータフォーマットに関するメタデータに関する定義情報を管理できるようにする一つの方法として、検索サーバ側で複数のデータフォーマットの定義情報と、複数のデータフォーマットを統合的に管理するためのマッピング定義情報を管理するという技術が知られている。このような技術については、例えば、特許文献１に内容が開示されている。この特許文献１の技術では、複数のデータフォーマットにおけるメタデータ名を、統一的な表記で表現できる。これにより、検索サーバは、統一的な表記方法に基づいてメタデータにアクセスできるため、統一的な表記を利用したインデクシングや検索を行うことが可能になる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国特許第７，７２５，４５４号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記特許文献１記載の技術では、複数のデータフォーマットに関するメタデータを統一的な表記で扱える反面、特定のメタデータを持つファイルの識別が難しいという問題が起こりえる。【００１２】
これは、検索サーバが統一的な表記でメタデータ名を管理しているため、利用者が検索サービスを利用するときには、元々のメタデータ名を利用するか、あるいは検索サーバによって利用されている統一表記のメタデータ名を利用するしか選択肢がないことに起因する。【００１３】
前者のメタデータ名を利用する場合では、複数のデータフォーマット間で同名のメタデータ名が存在する場合、その区別が難しい。したがって、メタデータ検索を行った場合に、同名だが使われ方が違うメタデータ名を持つファイルまで検索結果に含まれてしまい、所望の結果を取得することが難しくなる。【００１４】
また、後者の統一表記のメタデータ名を利用する場合では、統一表記におけるデータフォーマット間のメタデータ名の衝突を防ぐために、機械的に長い文字列の名前が付与されることになる。利用者が直接この名前を指定して利用する場合では、検索サービスの利便性を損なってしまうことになるため、結果として特定のメタデータを持つファイルを識別することが難しくなる。【００１５】
以上より、利用者が検索サービスを利用する際に、検索結果として、所望のメタデータを持つファイルを効率よく取得できるようにするためには、特定のメタデータを持つファイルの識別を容易に直接的に行うための制御技術が必要になる。
【課題を解決するための手段】
【００１６】
本発明は、プロセッサとメモリとを備えてデータの検索を行う検索装置であって、前記検索装置は、メタデータを含む検索対象のファイルの構造を定義したメタデータスキーマ定義を管理するメタデータスキーマ管理情報と、検索インデックスデータの構造を定義した検索インデックススキーマ定義を管理する検索インデックススキーマ管理情報と、前記メタデータスキーマ定義情報と前記検索インデックススキーマ定義との対応関係を管理するスキーママッピング管理情報と、検索要求を受け付けて前記スキーママッピング管理情報及び前記検索インデックス管理情報を参照して前記検索要求に合致するファイルを抽出する検索制御部と、を備え、前記メタデータスキーマ管理情報は、当該メタデータスキーマ定義を識別するネームスペースの別名とメタデータ名を含み、前記検索インデックススキーマ定義は、前記検索対象のファイルのフィールド名を含み、前記スキーママッピング管理情報は、前記メタデータ名とフィールド名の対応関係を含み、前記検索制御部は、前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出し、前記メタデータスキーマ管理情報を参照して、前記別名をメタデータ名に変換し、前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定する。
【発明の効果】
【００１７】
本発明によれば、メタデータ検索で指定する検索条件として、データフォーマットのオリジナルのメタデータ名や、検索サーバが付与するメタデータ名だけでなく、検索時の利便性を考慮した別名も設定することが可能となる。これにより、検索装置は、検索対象データのデータフォーマットが異なっていても、特定のメタデータを持つファイルを容易に識別することが可能となって、所望のメタデータを持つファイルで検索サービスを提供することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施例を示し、計算機システムの一例を示すブロック図である。
【図２】本発明の第１の実施例を示し、管理サーバの機能部位の一例を示すブロック図である。
【図３】本発明の第１の実施例を示し、ファイルサーバの機能部位の一例を示すブロック図である。
【図４】本発明の第１の実施例を示し、管理マシンの機能部位の一例を示すブロック図である。
【図５】本発明の第１の実施例を示し、クライアントマシンの機能部位の一例を示すブロック図である。
【図６】本発明の第１の実施例を示し、本発明で実施する一連の処理の流れを例示する説明図である。
【図７】本発明の第１の実施例を示し、スキーマ定義のファイルの構成を例示する説明図である。
【図８】本発明の第１の実施例を示し、メタデータスキーマ管理表を例示する説明図である。
【図９】本発明の第１の実施例を示し、スキーママッピング管理表を例示する説明図である。
【図１０】本発明の第１の実施例を示し、検索インデックススキーマ管理表を例示する説明図である。
【図１１Ａ】本発明の第１の実施例を示し、検索インデックス管理表を例示する説明図である。
【図１１Ｂ】本発明の第１の実施例を示し、検索インデックス管理表を例示する説明図である。
【図１２】本発明の第１の実施例を示し、検索インデックス登録ファイル管理表を例示する説明図である。
【図１３】本発明の第１の実施例を示し、メタデータスキーマ登録処理の一例を示すフローチャートである。
【図１４】本発明の第１の実施例を示し、メタデータスキーマ登録画面を例示する説明図である。
【図１５】本発明の第１の実施例を示し、スキーママッピング定義の登録処理の一例を示すフローチャートである。
【図１６】本発明の第１の実施例を示し、スキーママッピング定義登録画面を例示する説明図である。
【図１７】本発明の第１の実施例を示し、検索インデックススキーマ定義登録処理の一例を示すフローチャートである。
【図１８】本発明の第１の実施例を示し、検索インデックススキーマ定義登録画面を例示する説明図である。
【図１９】本発明の第１の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートである。
【図２０】本発明の第１の実施例を示し、ファイル検索処理の一例を示すフローチャートである。
【図２１】本発明の第１の実施例を示し、ファイル検索画面（リスト出力形式）を例示する説明図である。
【図２２】本発明の第１の実施例を示し、ファイル検索画面（テーブル出力形式）を例示する説明図である。
【図２３】本発明の第２の実施例を示し、計算機システムで行われる一連の処理の流れを例示する説明図である。
【図２４】本発明の第２の実施例を示し、検索インデックススキーマ管理表を例示する説明図である。
【図２５】本発明の第２の実施例を示し、検索インデックススキーマ定義の登録処理の一例を示すフローチャートである。
【図２６Ａ】本発明の第２の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
【図２６Ｂ】本発明の第２の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
【図２７】本発明の第３の実施例を示し、検索インデックススキーマ管理表を例示する説明図である。
【図２８Ａ】本発明の第３の実施例を示し、検索インデックススキーマ定義の登録処理の一例を示すフローチャートの前半部である。
【図２８Ｂ】本発明の第３の実施例を示し、検索インデックススキーマ定義の登録処理の一例を示すフローチャートの後半部である。
【図２９Ａ】本発明の第３の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
【図２９Ｂ】本発明の第３の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
【図３０】本発明の第４の実施例を示し、検索サーバの機能部位の一例を示すブロック図である。
【図３１】本発明の第４の実施例を示し、メタデータ名管理表を例示する説明図である。
【図３２Ａ】本発明の第４の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
【図３２Ｂ】本発明の第４の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
【図３３】本発明の第５の実施例を示し、ファイルサーバの機能部位の一例を示すブロック図である。
【図３４】本発明の第５の実施例を示し、ファイルアクセス処の一例を示すフローチャートである。
【図３５Ａ】本発明の第５の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
【図３５Ｂ】本発明の第５の実施例を示し、検索インデックスの更新処理の一例の一例を示すフローチャートの後半部である。
【図３６】本発明の第６の実施例を示し、計算機システムのブロック図である。
【図３７】本発明の第６の実施例を示し、メタデータ管理サーバの機能部位の一例を示すブロック図である。
【図３８Ａ】本発明の第６の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
【図３８Ｂ】本発明の第６の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
【図３９】本発明の第６の実施例を示し、ファイルアクセス処理の一例を示すフローチャートである。
【図４０】本発明の第７の実施例を示し、計算機システムの一例を示すブロック図である。
【図４１】本発明の第７の実施例を示し、メタデータ抽出サーバの機能部位の一例を示すブロック図である。
【図４２】本発明の第７の実施例を示し、メタデータ抽出処理の一例を示すフローチャートである。
【図４３】本発明の第８の実施例を示し、ファイルサーバの機能部位の一例を示すブロック図である。
【図４４】本発明の第８の実施例を示し、ファイル更新リスト管理表を例示する説明図である。
【図４５】本発明の第８の実施例を示し、ファイル更新リストの登録処理の一例を示すフローチャートである。
【図４６Ａ】本発明の第８の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
【図４６Ｂ】本発明の第８の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
【図４７】本発明の第８の実施例を示し、ファイル更新リストの問合せ処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施形態について添付図面を用いて示す。
【実施例１】
【００２０】
図１は、本発明の第１の実施例の計算機システムの一例を示すブロック図である。本実施例では、検索サーバ１１００における検索インデックスのスキーマ定義の更新について説明する。本実施例では、全文検索機能と共にメタデータ検索機能を提供する検索サーバ１１００において、メタデータ検索の対象をカスタマイズ可能にする。これにより、新たなデータフォーマットのメタデータに対する検索や、既知のデータフォーマットにおいて独自に拡張されたカスタムメタデータに対する検索を実施することができる。【００２１】
図１は、本発明の実施例における計算機システムの構成を例示するブロック図である。ネットワーク１００を介して、検索サーバ１１００と、ファイルサーバ２１００と、管理マシン３１００と、クライアントマシン４１００とが接続されている。【００２２】
本計算機システムにおいて、検索サーバ１１００は、ファイルサーバ２１００に格納されたファイルに対するファイル検索サービスを提供する。このファイル検索サービスでは、検索キーワード指定による全文検索機能ならびに検索対象のメタデータ名と検索条件を指定したメタデータ検索機能を提供する。ファイルサーバ２１００は、ユーザからのファイルアクセス要求を受け付け、ファイル共有サービスを提供する。管理マシン３１００は、検索サーバ１１００やファイルサーバ２１００を保守管理するためにシステム管理者が利用するマシンである。クライアントマシン４１００は、ユーザからの入力を入力装置４１７１で受け付けて検索サーバ１１００に検索要求を行ったり、ファイルサーバ２１００へファイルアクセス要求を行ったりすることができる。本計算機システムを利用することで、ユーザはファイルサーバ２１００に格納したファイルに対して、検索サーバ１１００を利用したファイル検索を行うことが可能になる。【００２３】
なお、図１では、各構成要素をそれぞれ一台ずつ記載しているが、この限りではない。可能であれば、各構成要素とも複数の台数でシステムを構成してもよい。また、図１では、各構成要素を別装置として記載しているが、この限りではない。可能であれば、任意の二つあるいはそれ以上の構成要素を一台の装置として実施する構成でもよい。また、ネットワーク１００による接続形態については、どのようなネットワーク形態でもよく、例えば、インターネット接続でもよいし、ローカルエリアネットワークによるイントラネット接続などでもよい。【００２４】
図２は、検索サーバ１１００のハードウェア構成と機能部位を例示するブロック図である。検索サーバ１１００は、プログラムを実行するプロセッサ１１１０と、プログラムならびにデータを一時的に格納するメモリ１１２０と、外部記憶装置１１６０にアクセスするための外部記憶装置Ｉ／Ｆ１１３０と、ネットワーク１００に接続された他装置にアクセスするためのネットワークＩ／Ｆ１１４０と、それらを接続するバス１１５０から構成されている。【００２５】
メモリ１１２０には、外部記憶装置Ｉ／Ｆ１１３０を制御するプログラムである外部記憶装置Ｉ／Ｆ制御プログラム１１２１と、ネットワークＩ／Ｆ１１４０を制御するプログラムであるネットワークＩ／Ｆ制御プログラム１１２２と、当該検索サーバ１１００において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム１１２３と、当該検索サーバ１１００においてインデクシングと検索サービスを提供するための検索制御プログラム（検索制御部）１１２４と、かかる検索制御プログラム１１２４が利用するメタデータスキーマ管理表７１００、スキーママッピング管理表７２００、検索インデックススキーマ管理表７３００、検索インデックス管理表７４００および検索インデックス登録ファイル管理表７５００が格納される。【００２６】
検索制御プログラム１１２４は内部に、検索インデックススキーマ制御サブプログラム（検索インデックススキーマ制御部）１１７１と、ファイルアクセス制御サブプログラム（ファイルアクセス制御部）１１７２と、インデクシング制御（インデクシング制御部）サブプログラム１１７３と、検索応答制御（検索応答制御部）サブプログラム１１７４を持つ。【００２７】
検索インデックススキーマ制御サブプログラム１１７１は、検索サーバ１１００にて提供するファイル検索サービスのために使用する検索インデックススキーマ定義を管理する。この検索インデックススキーマ定義とは、検索対象ファイルをどのようにインデクシングするのかを規定するものである。例えば、全文検索用に、全てのテキストデータを任意の長さのトークンに分割してインデクシングしたり、特定メタデータの名前と値の組をインデクシングしたりすることができる。具体的な検索インデックススキーマ定義内容については後述する。【００２８】
ファイルアクセス制御サブプログラム１１７２は、当該検索サーバがファイルサーバに格納されているファイルのデータならびにメタデータを取得する処理を行う。【００２９】
インデクシング制御サブプログラム１１７３は、インデックス更新対象ファイルのデータならびにメタデータを解析した上で、当該検索サーバ１１００が検索サービス用に管理する検索インデックスに反映させる処理を行う。具体的には、前記ファイルアクセス制御サブプログラム１１７２によって取得したインデックス更新対象ファイルのデータならびにメタデータを分析し、当該検索サーバで管理される検索インデックス管理表７４００ならびに検索インデックス登録ファイル管理表７５００に反映させる。【００３０】
検索応答制御サブプログラム１１７４は、ユーザからの検索要求を受け付け、自検索サーバの検索インデックス管理表７４００や検索インデックス登録ファイル管理表７５００などを利用した上で、検索結果を生成して提供する処理を行う。【００３１】
なお、メタデータスキーマ管理表７１００、スキーママッピング管理表７２００、検索インデックススキーマ管理表７３００、検索インデックス管理表７４００および検索インデックス登録ファイル管理表７５００については後述する。【００３２】
プロセッサ１１１０は、メモリ１１２０にロードした各プログラムを実行することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ１１１０は、検索制御プログラム１１２４に従って動作することで検索制御部として機能し、データ制御プログラム１１２３実行することでデータ管理部として機能する。他のプログラムについても同様である。さらに、プロセッサ１１１０は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。【００３３】
検索サーバ１１００の各機能を実現するプログラム、テーブル等の情報は、外部記憶装置１１６０や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。【００３４】
図３は、ファイルサーバ２１００のハードウェア構成と機能部位を例示するブロック図である。ファイルサーバ２１００は、プログラムを実行するプロセッサ２１１０と、プログラムならびにデータを一時的に格納するメモリ２１２０と、外部記憶装置２１６０にアクセスするための外部記憶装置Ｉ／Ｆ２１３０と、ネットワークで接続された他装置にアクセスするためのネットワークＩ／Ｆ２１４０と、それらを接続するバス２１５０から構成されている。【００３５】
メモリ２１２０には、外部記憶装置Ｉ／Ｆ２１３０を制御するプログラムである外部記憶装置Ｉ／Ｆ制御プログラム２１２１と、ネットワークＩ／Ｆ２１４０を制御するプログラムであるネットワークＩ／Ｆ制御プログラム２１２２と、当該ファイルサーバにおいて保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム２１２３と、当該ファイルサーバにおいてファイルを保管し複数ユーザ間で共有するためのファイル共有サービスを提供するためのファイル共有制御プログラム２１２４が格納される。【００３６】
プロセッサ２１１０は、メモリ２１２０にロードした各プログラムを実行することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ２１１０は、ファイル共有制御プログラム２１２４を実行することで、ファイル共有制御部として機能する。他のプログラムについても同様である。各プログラムやテーブルなどは、検索サーバ１１００と同様に、外部記憶装置２１６０や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。【００３７】
図４は、管理マシン３１００のハードウェア構成を例示する説明図である。管理マシン３１００は、プログラムを実行するプロセッサ３１１０と、プログラムならびにデータを一時的に格納するメモリ３１２０と、外部記憶装置３１６０にアクセスするための外部記憶装置Ｉ／Ｆ３１３０と、ネットワークで接続された他装置にアクセスするためのネットワークＩ／Ｆ３１４０と、それらを接続するバス３１５０から構成されている。【００３８】
また、管理マシン３１００は、入力装置３１７１と出力装置３１７２（コンソールまたは管理画面）を備えて、Ｉ／Ｏインターフェース（Ｉ／Ｆ）を介してバス３１５０に接続される。システム管理者からの入力を入力装置３１７１で受け付け、検索サーバ１１００等から受信した応答などを出力装置３１７２に出力する。【００３９】
メモリ３１２０には、外部記憶装置Ｉ／Ｆ３１３０を制御するプログラムである外部記憶装置Ｉ／Ｆ制御プログラム３１２１と、ネットワークＩ／Ｆ３１４０を制御するプログラムであるネットワークＩ／Ｆ制御プログラム３１２２と、当該管理マシンから検索サーバ１１００を管理するために利用する検索サーバ管理クライアント制御プログラム３１２４が格納される。なお、この図では記載していないが、当該管理マシンからファイルサーバ２１００を管理するために利用するファイルサーバ管理クライアント制御プログラムを格納してもよい。【００４０】
なお、検索サーバ管理クライアント制御プログラム３１２４は、管理対象となる検索サーバ１１００が提供する管理用クライアントプログラム、あるいは当該検索サーバが提供する仕様に従った機能を提供するプログラムに相当する。例えば、検索サーバ用のＷｅｂアプリケーションプログラムを利用する形態でもよいし、汎用のＷｅｂブラウザを利用する形態でもよい。【００４１】
プロセッサ３１１０は、メモリ３１２０にロードした各プログラムを実行することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ３１１０は、検索サーバ管理クライアント制御プログラム３１２４を実行することで、検索サーバ管理部として機能する。他のプログラムについても同様である。各プログラムやテーブルなどは、検索サーバ１１００と同様に、外部記憶装置３１６０や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。【００４２】
図５は、クライアントマシン４１００のハードウェア構成を例示する説明図である。クライアントマシン４１００は、プログラムを実行するプロセッサ４１１０と、プログラムならびにデータを一時的に格納するメモリ４１２０と、外部記憶装置４１６０にアクセスするための外部記憶装置Ｉ／Ｆ４１３０と、ネットワークで接続された他装置にアクセスするためのネットワークＩ／Ｆ４１４０と、それらを接続するバス４１５０から構成されている。【００４３】
また、クライアントマシン４１００は、入力装置４１７１と出力装置４１７２（コンソールまたは管理画面）を備えて、Ｉ／Ｏインターフェース（Ｉ／Ｆ）４１７０を介してバス４１５０に接続される。ユーザからの入力を入力装置４１７１で受け付け、検索サーバ１１００等から受信した応答などを出力装置４１７２に出力する。【００４４】
メモリ４１２０には、外部記憶装置Ｉ／Ｆ４１３０を制御するプログラムである外部記憶装置Ｉ／Ｆ制御プログラム４１２１と、ネットワークＩ／Ｆ４１４０を制御するプログラムであるネットワークＩ／Ｆ制御プログラム４１２２と、当該クライアントマシン４１００において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム４１２３と、当該クライアントマシン４１００から検索サーバ１１００にアクセスするために利用する検索クライアント制御プログラム４１２４と、当該クライアントマシン４１００からファイルストレージにて共有されているファイルにアクセスするために利用するファイル共有クライアント制御プログラム４１２５が格納される。【００４５】
なお、検索クライアント制御プログラム４１２４は、利用する検索サーバ１１００が提供するクライアントプログラム、あるいは当該サーバが提供する仕様に従った機能を提供するプログラムに相当する。例えば、検索サーバ用のＷｅｂアプリケーションプログラムを利用する形態でもよいし、汎用のＷｅｂブラウザを利用する形態でもよい。【００４６】
図６は、本発明の計算機システムで実施する一連の処理の流れを例示する説明図である。ここでは、管理マシン３１００から検索サーバ１１００に対するメタデータスキーマ登録処理（処理（１−ｎ））と、管理マシン３１００から検索サーバ１１００に対するスキーママッピング定義登録処理（処理（２−ｎ））と、管理マシン３１００から検索サーバ１１００に対する検索インデックススキーマ定義登録処理（処理（３−ｎ））と、検索サーバ１１００からファイルサーバ２１００上のファイルに対する検索インデックス更新処理（処理（４−ｎ））と、およびクライアントマシン４１００から検索サーバ１１００に対するファイル検索処理（処理（５−ｎ））の５つの処理についてそれぞれ説明する。【００４７】
はじめに、処理（１−ｎ）について説明する。システム管理者は、管理マシン３１００の検索サーバ管理クライアント制御プログラム３１２４を利用して、検索サーバ１１００に対してメタデータのスキーマ定義ファイル（図７の７０００）の登録要求を送信する（処理（１−１））。このメタデータのスキーマ定義ファイルは、メタデータ検索を行う対象ファイルの構造を定義し、当該構造にネームスペースという識別情報を定義したファイルである。【００４８】
この処理において、システム管理者は、当該メタデータのスキーマ定義ファイルの中で定義されているネームスペースに対するエイリアスを指定する。このエイリアスを利用することで、検索サーバ１１００内で一意にネームスペースを簡単に識別することができる。なお、メタデータのスキーマ定義ファイルの詳細については後述する。【００４９】
検索サーバ１１００は、受信したメタデータのスキーマ定義ファイルからメタデータスキーマ定義を抽出し、必要に応じて要求元である管理マシン３１００のシステム管理者に抽出内容を確認してもらい、さらに必要に応じて抽出内容を更新した上で、メタデータスキーマ管理表７１００にメタデータスキーマ定義を格納する（処理（１−２））。以上が、メタデータスキーマ登録処理の一連の流れとなる。【００５０】
次に、スキーママッピング定義登録処理（２−ｎ）について説明する。システム管理者は、管理マシン３１００の検索サーバ管理クライアント制御プログラム３１２４を利用して、検索サーバ１１００に対してスキーママッピング定義の登録画面を呼び出す（処理（２−１））。この処理において、システム管理者は、スキーママッピング定義を利用するために、処理（１−２）  にて検索サーバ１１００に登録したメタデータスキーマ定義を特定するためのネームスペースエイリアスを指定する。【００５１】
検索サーバ１１００は、指定されたネームスペースのエイリアスより、メタデータスキーマ管理表７１００から該当するメタデータスキーマ定義を取得し、当該情報をもとにスキーママッピング情報の候補を生成し、要求元に候補の内容を提示する（処理（２−２））。ここで検索サーバ１１００が生成するスキーママッピング情報は、メタデータスキーマにおける各メタデータ名に対応させる検索インデックスのフィールド名と、各フィールドのデータ種別からなる。【００５２】
システム管理者は、検索サーバ１１００から提示されたスキーママッピング情報の候補を管理マシン３１００で確認し、必要に応じて候補の内容に対する更新情報を検索サーバ１１００に対して送る（処理（２−３））。検索サーバ１１００は、スキーママッピング情報の候補と、要求元（管理計算機）からの更新情報をもとに、最終的なスキーママッピング情報を生成し、スキーママッピング管理表７２００に格納する（処理（２−４））。以上が、スキーママッピング定義登録処理の一連の流れとなる。【００５３】
次に、検索インデックススキーマ定義登録処理（３−ｎ）について説明する。システム管理者は、管理マシン３１００の検索サーバ管理クライアント制御プログラム３１２４を利用して、検索サーバ１１００に対して検索インデックススキーマ登録画面を呼び出す（処理（３−１））。【００５４】
この処理において、システム管理者は、検索インデックススキーマ定義の登録に利用するために、上記処理（２−１）で利用したネームスペースのエイリアスを指定する。検索サーバ１１００は、指定されたネームスペースエイリアスより、スキーママッピング管理表７２００から該当するスキーママッピング情報を取得し、当該情報をもとに検索インデックススキーマ定義の候補を生成し、要求元（管理マシン３１００）に候補の内容を提示する（処理（３−２））。ここで検索サーバ１１００が生成する検索インデックススキーマ定義は、スキーママッピング定義におけるフィールド名と、各フィールドのデータ種別からなる。【００５５】
システム管理者は、管理マシン３１００の出力装置３１７２に提示された内容を確認し、必要に応じて候補の内容に対する更新情報を検索サーバ１１００に対して送信する（処理（３−３））。【００５６】
検索サーバ１１００は、検索インデックススキーマ定義の候補と、要求元（管理マシン３１００）からの更新情報をもとに、最終的な検索インデックススキーマ定義を生成し、検索インデックススキーマ管理表７３００に格納する（処理（３−４））。【００５７】
これにより、検索サーバ１１００における検索インデックススキーマ定義（検索インデックススキーマ情報）を更新することが可能となって、新たに検索可能なメタデータを容易に追加することができる。以上が、検索インデックススキーマ定義登録処理の一連の流れとなる。【００５８】
次に、検索インデックス更新処理（４−ｎ）について説明する。検索サーバ１１００上の検索制御プログラム１１２４は、ファイルサーバ２１００に対してファイルアクセスを行い、検索インデックスを更新する必要があるファイルを特定し、更新が必要なファイルの読み出しを行う（処理（４−１））。【００５９】
ここで、検索インデックスを更新する必要があるファイルを特定するためには、例えば、対象ファイルの最終更新日時を取得して、前回の検索インデックス更新日時よりも新しいか否かをもとに判断する方法がある。ファイルアクセス要求を受けたファイルサーバ２１００は、必要に応じて自身が管理するファイルシステム２１７０を利用して、対象ファイルの情報を取得し、要求元（例えば、検索サーバ１１００）に提供する（処理（４−２））。更新対象ファイルを取得した検索制御プログラム１１２４は、当該ファイルのファイル種別を特定し、検索インデックススキーマ管理表７３００から当該ファイル種別に合致するスキーマ定義情報を取得の上、当該ファイルを解析して検索インデックスデータ生成のために必要な情報を抽出する（処理（４−３））。【００６０】
その後、検索制御プログラム１１２４は、生成した情報をもとに検索インデックスデータを生成し、検索インデックス管理表７４００ならびに検索インデックス登録ファイル管理表７５００に反映させる（処理（４−４））。以上が、検索サーバ１１００による検索インデックス更新処理の一連の流れとなる。【００６１】
最後に、ファイル検索処理（５−ｎ）について説明する。ユーザは、クライアントマシン４１００の検索クライアント制御プログラム４１２４を利用して、検索サーバ１１００に対してファイル検索要求を送信する（処理（５−１））。【００６２】
検索サーバ１１００上の検索制御プログラム１１２４は、ファイル検索要求を受信すると検索条件として指定されたクエリ文の中で指定されたメタデータ名について、当該検索サーバ１１００の検索インデックススキーマにて利用されているフィールド名に変換する（処理（５−２））。【００６３】
検索サーバ１１００は、スキーママッピング管理表７２００の情報を取得して上記フィールド名の変換に利用する。この変換の後、検索制御プログラム１１２４は、検索インデックス管理表７４００ならびに検索インデックス登録ファイル管理表７５００を利用して、指定された検索条件に合致するファイルを抽出し、検索結果をまとめ、要求元（クライアントマシン４１００）に提供する（処理（５−３））。検索サーバ１１００は、検索結果をまとめる際、検索インデックススキーマのフィールド名に変換されたメタデータ名について、元のメタデータ名に戻す処理を行う。以上が、ファイル検索処理の一連の流れとなる。【００６４】
図７は、メタデータスキーマ登録処理において、システム管理者が検索サーバ１１００に対して登録するスキーマ定義のファイルの構成を例示する図である。ここで示しているスキーマ定義ファイル７０００は、Ｗ３Ｃ  ＸＭＬ  Ｓｃｈｅｍａの定義に従ったファイルの内容を例として示している。ここで示したスキーマ定義ファイル７０００は、ネームスペース名として、”ｈｔｔｐ：／／ＡＡＡ．ｃｏｍ／ＰｒｏｄｕｃｔＡ／ｖ２”という文字列からなるＵＲＩをネームスペースとして宣言している。【００６５】
また、当該ファイルでは、”ＰｒｏｄｕｃｔＡ”という名前のＸＭＬ要素の中に、メタデータとしてｉｎｔｅｇｅｒ型の”ＰａｔｉｅｎｔＩＤ”、ｓｔｒｉｎｇ型の”ＰａｔｉｅｎｔＮａｍｅ”およびｉｎｔｅｇｅｒ型の”ＶｅｎｄｏｒＰａｔｉｅｎｔＩＤ”という子要素を持つＸＭＬ文書を定義している。【００６６】
なお、ここではＷ３Ｃ  ＸＭＬ  Ｓｃｈｅｍａを利用した例を示したが、この限りではない。検索サーバ１１００が、メタデータスキーマに関する情報を抽出可能なものであれば何でもよい。【００６７】
図８は、検索サーバ１１００上で管理されるメタデータスキーマ管理表７１００の構成を例示する図である。メタデータスキーマ管理表７１００は、検索サーバ１１００に登録されたメタデータ検索対象ファイルが利用するスキーマ定義情報（メタデータスキーマ定義）を管理する。【００６８】
具体的に、メタデータスキーマ管理表７１００は、ＩＤ７１１０と、ネームスペースエイリアス７１２０と、ネームスペース名７１３０と、メタデータ名７１４０と、メタデータタイプ７１５０という構成情報からなる。【００６９】
ＩＤ７１１０は、本表の各レコードに機械的に付与された識別番号を格納する。ネームスペースエイリアス７１２０は、当該メタデータスキーマ定義を記載したスキーマ定義ファイル７０００（図７参照）を登録する際に、当該スキーマ定義ファイルで定義されているネームスペースに対して、要求元（例えば、管理マシン３１００を利用するシステム管理者等）が別途付与する別名を格納する。このネームスペースエイリアス７１２０については、検索サーバ１１００内で一意性を保つように設定する。【００７０】
ネームスペース名７１３０は、当該メタデータスキーマ定義を記載したスキーマ定義ファイル７０００を登録する際に、当該スキーマ定義ファイル７０００で定義されているネームスペースを示す名前を格納する。このネームスペース名７１２０については、検索サーバ１１００内で一意性を保つようにする。また、ネームスペース名７１２０としてＸＭＬネームスペースを利用する場合は、一意に識別可能なＵＲＩを使用する。【００７１】
メタデータ名７１４０は、当該スキーマ定義ファイル７０００から抽出したメタデータ名を格納する。スキーマ定義がＸＭＬ形式である場合、検索サーバ１１００は、ＸＭＬの要素名あるいは属性名に相当するものをメタデータ名７１４０として抽出し、ＸＰａｔｈ形式にて当該エントリに格納してもよい。【００７２】
メタデータタイプ７１５０は、当該スキーマ定義ファイル７０００から抽出したメタデータ名に関連付けられているデータ種別（図７の”ｔｙｐｅ”）に関する情報を格納する。【００７３】
図９は、検索サーバ１１００上で管理されるスキーママッピング管理表７２００の構成を例示する図である。スキーママッピング管理表７２００は、前述したメタデータスキーマ管理表７１００におけるメタデータスキーマ定義と、後述する検索インデックススキーマ管理表７３００における検索インデックススキーマ定義との対応関係を管理する。【００７４】
具体的に、スキーママッピング管理表７２００は、マッピングＩＤ７２１０と、ネームスペース名７２２０と、メタデータ名７２３０と、フィールド名７２４０と、フィールドタイプ７２５０と、フィールドエイリアス７２６０という構成情報からなる。【００７５】
マッピングＩＤ７２１０は、本表の各レコードに機械的に付与された識別番号を格納する。ネームスペース名７２２０は、メタデータスキーマ管理表７１００のネームスペース名７１３０の欄に格納されている情報と同じ情報を格納する。メタデータ名７２３０は、メタデータスキーマ管理表７１００のメタデータ名７１４０の欄に格納されている情報と同じ情報を格納する。【００７６】
フィールド名７２４０は、検索インデックススキーマ定義において、メタデータ名７２３０の欄に格納されたメタデータ名と関連付けた名前を格納する。このフィールド名７２４０は、検索サーバ１１００内で一意性を保つ。例えば、図９で示しているように、個別に追加されたフィールド名として、個別拡張を示す文字列（ＣＵＳＴＯＭＭＥＴＡ＿）と、ネームスペースエイリアスを示す文字列（Ａ２）と、メタデータ名を示す文字列（ＰｒｏｄｕｃｔＡ／〜）を連結した文字列を使用してもよい。【００７７】
フィールドタイプ７２５０は、当該フィールドに格納されるデータの種別を定義した情報を格納する。ここでは、メタデータスキーマ管理表７１００のメタデータタイプ７１５０に格納されたものと同じものを格納してもよいし、システム管理者によって設定してもよい。ここで指定するデータ種別には、数値型を示すｉｎｔｅｇｅｒ型、文字列型を示すｓｔｒｉｎｇ型、文字列をトークンに分割してキーワード検索できるようにしたｔｅｘｔ型といったものがある。【００７８】
また、各データ型について、検索結果を当該フィールドの値を使用して整列するために、整列可能なデータ型を使用したり、検索インデックスデータサイズをなるべく小さくしたりするために、値の整列はできないが格納サイズを小さくできるデータ型を使用することができる。【００７９】
フィールドエイリアス７２６０は、フィールド名７２４０の別名を格納する。このフィールドエイリアス７２６０は、利用するネームスペース内で一意性を保つようにしてもよいし、検索サーバ１１００内で一意性を保つようにしてもよい。以降では、ネームスペース内で一意性を保つようにフィールドエイリアス７２６０を設定するケースで説明する。【００８０】
このフィールドエイリアス７２６０は、検索サーバ１１００内で機械的に設定してもよいし、システム管理者が設定してもよい。このフィールドエイリアス７２６０を利用することで、検索サーバ１１００に対してフィールド名を指定したメタデータ検索を行う場合に、一意性を保証するために文字列が長くなる可能性があるフィールド名７２４０を利用するかわりに、短い長さの文字列からなるフィールドエイリアス７２６０を利用してもよい。【００８１】
なお、事前にインデクシングする必要がないとわかっているメタデータ名７２３０については、当該メタデータ名７２３０と対応させるフィールド名７２４０とフィールドタイプ７２５０とフィールドエイリアス７２６０の欄に、対応付けするものがないことを示す文字列を格納してもよい。例えば、図に示しているように、”＜ＮＯＮＥ＞”という文字列を対応付けするものなしという意味で格納してもよい。【００８２】
図１０は、検索サーバ１１００上で管理される検索インデックススキーマ管理表７３００の構成を例示する図である。検索インデックススキーマ管理表７３００は、当該検索サーバ１１００において検索サービスを提供する際に利用するインデックスデータの構造を定義したスキーマ情報を管理する。【００８３】
検索サーバ１１００は、検索インデックススキーマ管理表７３００で定義された情報をもとに、キーワードによる全文検索や、メタデータ名と検索条件を指定したメタデータ検索といった検索機能を実現するために必要なインデックスデータを作成する。具体的に、検索インデックススキーマ管理表７３００は、フィールド名７３１０と、フィールドタイプ７３２０などといった構成要素からなる。【００８４】
フィールド名７３１０は、前述したスキーママッピング管理表７２００のフィールド名７２４０の欄に格納されている情報と同じ情報を格納する。ただし、スキーママッピング管理表７２００のフィールド名７２４０の欄に存在する名前の中で、検索インデックススキーマ管理表７３００のフィールド名７３１０の欄に存在しない名前があってもよい。【００８５】
これは、スキーママッピング管理表７２００ではフィールド名７２４０が登録されているが、検索インデックススキーマ管理表７３００に該当するフィールド名７３１０が登録されていない場合、すなわち当該フィールド名ではインデクシングされないし、検索できないことになる。本実施例１では、インデクシングするかしないかの判断をフィールド名７３１０の単位で設定することができる。これにより、検索サーバ１１００における検索インデックススキーマ定義のカスタマイズをする際に、試行錯誤的にフィールドの追加や削除、フィールドタイプを変更するといったことを行うことも可能になる。【００８６】
なお、フィールド名７３１０とフィールドタイプ７３２０については、スキーママッピング管理表７２００にて登録されているものを利用する。このため、フィールド名７３１０やフィールドタイプ７３２０を変更したい場合は、スキーママッピング管理表７２００のフィールド名７２４０とフィールドタイプ７２５０を変更した上で、スキーママッピング管理表７２００の変更後の情報を検索インデックススキーマ管理表７３００に取り込む。【００８７】
図１１Ａ、図１１Ｂは、検索サーバ１１００上で管理される検索インデックス管理表７４００の構成を例示する図である。検索インデックス管理表７４００では、検索サーバ１１００が作成した検索インデックスの情報を管理する。具体的には、検索インデックス管理表７４００は、フィールド名７４１０と、フィールド値７４２０と、該当位置情報７４３０などという構成情報からなる。【００８８】
フィールド名７４１０は、前述した検索インデックススキーマ管理表７４００のフィールド名７３１０の欄に格納されている情報と同じ情報を格納する。フィールド値７４２０は、検索対象ファイルをインデクシング処理にて解析して得られたオブジェクト（数値や文字列など）を、フィールド名７４１０で指定されたフィールドごとに格納する。図で示す例では、フィールド名７４１０が”ｆｉｌｅｎａｍｅ”の場合、検索対象ファイルのファイル名からなる文字列を格納する。【００８９】
また、フィールド名７４１０が”ｃｏｎｔｅｎｔ”の場合、対象ファイルの中身全体の文字列に対して、キーワード検索できるようトークンに分割したものを格納する。該当位置情報７４３０は、当該フィールド値７４２０の欄に登録されているオブジェクトが存在するファイルの情報を登録する。【００９０】
この該当位置情報７４３０は、ファイル識別情報７４３１、７４３４と、該当位置オフセット７４３２、７４３５と、重み付け７４３３、７４３６という構成要素からなる。ファイル識別情報７４３１、７４３４は、当該フィールド値７４２０に格納されているオブジェクトが出現するファイルを識別するための情報を登録する。【００９１】
具体的には、後述する検索インデックス登録ファイル管理表７５００におけるファイル識別情報７５１０の欄に登録されている情報を登録してもよいし、対象ファイルに実際にアクセスするときのファイルパス名やファイル識別子でもよい。該当位置オフセット７４３２、７４３５は、当該ファイルの中で、当該オブジェクトが出現するオフセット情報を登録する。この欄では、一つのファイルで複数箇所に当該オブジェクトが出現する場合、複数個のオフセット情報を登録する。重み付け７４３３、７４３６は、当該ファイルの当該オフセットにおいて、当該オブジェクトが出現することによる重要度の値を登録する。この重要度の値は、検索サーバ１１００が適宜設定する。この値は、大きければ大きいほど重要だという意味づけを行う。また、この値は、検索結果の絞り込みや整列に利用することができる。【００９２】
ここで、該当位置情報７４３０については、一つのフィールド値７４２０に対して複数個登録可能にする。これにより、フィールド値７４２０に格納されたオブジェクトを持つファイルが複数存在する場合にも対応可能となる。なお、該当位置情報７４３０の欄において、該当するエントリの値が無効であることを意味するｎｕｌｌ値を登録することもできる。これは、該当位置情報７４３０の欄において、登録数が他のエントリより少ない場合に項目が空いてしまうエントリや、該当位置オフセット７４３２、７４３５の情報が不要な場合なエントリに対して利用することができる。【００９３】
図１２は、検索サーバ１１００上で管理される検索インデックス登録ファイル管理表７５００の構成を例示する図である。検索インデックス登録ファイル管理表７５００では、当該検索サーバ１１００が検索インデックスの作成対象とするファイルサーバ２１００上のファイル共有から取得したファイルに関する情報を管理する。具体的に、検索インデックス登録ファイル管理表７５００は、ファイル識別情報７５１０と、ファイルパス名７５２０と、メタデータ７５３０などという構成要素からなる。【００９４】
ここで、ファイル識別情報７５１０は、検索サーバ１１００が検索インデックス作成のために取得したファイルを一意に識別するための識別子である。この識別子は、当該検索サーバ１１００が付与する連番でもよいし、当該ファイルが格納されているファイルサーバ２１００が付与した連番でもよい。なお、連番以外にも、識別に使用可能な文字列を利用してもよい。【００９５】
ファイルパス名７５２０は、対象ファイルが格納されているファイルパス名に相当する。これにより、検索サーバ１１００は、当該ファイルパス名７５２０を指定してファイルの取得要求をファイルサーバ２１００へ送信することで、当該ファイルを取得することができる。【００９６】
この検索インデックス登録ファイル管理表７５００を利用することで、検索制御プログラム１１２４がユーザからの検索要求に応える場合、当該検索条件に合致するか否かの判断は検索インデックス管理表７４００のみを利用すればよく、条件に合致したファイルについてのみ、適宜検索インデックス登録管理表７５００から対象ファイルアクセスに必要な情報を取得することができる。【００９７】
ここまでに、本発明によって提供するシステムの構成、管理情報の構成について説明した。以降では、本発明によって実施する処理と、各処理を実行するときに利用する操作画面例について説明する。【００９８】
以下の説明では、処理として、メタデータスキーマ登録処理（図１３）、スキーママッピング定義登録処理（図１５）、検索インデックススキーマ定義登録処理（図１７）、検索インデックス更新処理（図１９）、およびファイル検索処理（図２０）について説明する。また、操作画面例として、メタデータスキーマ登録画面（図１４）、スキーママッピング定義登録画面（図１６）、検索インデックススキーマ定義登録画面（図１８）、およびファイル検索画面（図２１、図２２）について説明する。【００９９】
図１３は、検索サーバ１１００の検索インデックススキーマ制御サブプログラム１１７１が行うメタデータスキーマ登録処理の一例を示すフローチャートである。本処理では、システム管理者からメタデータスキーマ定義を記載したスキーマ定義ファイル７０００を検索サーバ１１００に登録してもらい、当該スキーマ定義ファイル７０００からメタデータのスキーマ定義情報を抽出して、メタデータスキーマ管理表７１００に登録する処理を行う。【０１００】
はじめに、検索インデックススキーマ制御サブプログラム１１７１を実行するプロセッサ１１１０は、検索対象ファイルのスキーマ定義ファイル７０００と、当該ファイルにて定義されているネームスペースのエイリアスを管理用マシン３１００上の検索サーバ管理クライアント制御プログラム３１２４から受信する（ステップＳ１０１）。ここでは、図７に示したようなスキーマ定義ファイル７０００を取得する。なお、スキーマ定義情報が取得できるものであれば、図７以外のどのような形式のものでもよい。なお、以下の説明ではプログラムを実行する主体は、プロセッサ１１１０で同様であるため、説明を簡易にするためプロセッサ１１１０の記載は省略する。【０１０１】
次に、検索インデックススキーマ制御サブプログラム１１７１は、スキーマ定義ファイル７０００で指定されたネームスペースエイリアスが既に当該検索サーバ１１００にて利用されているネームスペースエイリアスと重複しているか否かを判定する（ステップＳ１０２）。【０１０２】
ネームスペースのエイリアスが重複している場合（ステップＳ１０２でＹｅｓの場合）は、エラーとなって検索インデックススキーマ制御サブプログラム１１７１は終了する。一方、ネームスペースのエイリアスが重複していない場合（ステップＳ１０２でＮｏの場合）、検索インデックススキーマ制御サブプログラム１１７１は、受信したスキーマ定義ファイル７０００からメタデータスキーマ定義を抽出する（ステップＳ１０３）。【０１０３】
ここで抽出するメタデータスキーマ定義としては、メタデータ名ならびに当該メタデータのデータ型を示すメタデータタイプといった情報を抽出する。ここでは、スキーマ定義ファイル７０００がＸＭＬ形式で記載されている場合、あるＸＭＬ形式のデータを別のＸＭＬ形式に変換するＸＳＬＴなどを利用して、所望のメタデータスキーマ定義を抽出してもよい。【０１０４】
次に、検索インデックススキーマ制御サブプログラム１１７１は、抽出したメタデータ情報を要求元（例えば、管理マシン３１００）に提示（送信）する（ステップＳ１０４）。ここでは、提示した情報を管理用マシン３１００上の検索サーバ管理クライアントプログラム３１２４に送信し、検索サーバ管理クライアントプログラム３１２４が提示情報をシステム管理者が閲覧できるように管理マシン３１００の出力装置３１７２（管理画面や管理コンソール）などに出力する。【０１０５】
その後、検索インデックススキーマ制御サブプログラム１１７１は、要求元が提示情報を確認した結果、当該抽出情報に対して変更が必要か否かを判定する（ステップＳ１０５）。ここでは、提示情報を送信した後で、検索サーバ管理クライアントプログラム３１２４から返ってくる情報の中に、変更が必要か否かを示す情報も含めてもよい。この情報を利用して上記の判定を行う。【０１０６】
変更が必要な場合（ステップＳ１０５でＹｅｓの場合）、検索インデックススキーマ制御サブプログラム１１７１は、要求元（管理マシン３１００）から当該メタデータスキーマ定義に対する変更情報を取得し、当該変更情報をメタデータスキーマ定義に反映させる（ステップＳ１０６）。その後、ステップＳ１０４以降の処理を再度繰り返す。【０１０７】
変更が不要の場合（ステップＳ１０５でＮｏの場合）、検索インデックススキーマ制御サブプログラム１１７１は、抽出したメタデータスキーマ定義をメタデータスキーマ管理表７１００に登録して処理を終了する。【０１０８】
なお、上記の説明では、スキーマ定義ファイル７０００を検索サーバ１１００に登録し、スキーマ定義ファイル７０００の内容を解析して解析結果を利用する例を説明したが、その限りではない。システム管理者が、メタデータスキーマ管理表７１００に登録すべき情報を直接指定して、当該管理表に登録してもよい。【０１０９】
図１４は、前述したメタデータスキーマ登録処理を管理マシン３１００の管理画面から行う場合における操作画面例を示す。管理マシン３１００の出力装置３１７２に表示されるメタデータスキーマ登録画面８１００では、メタデータスキーマ定義ファイル登録欄８１１０と、メタデータスキーマ管理表登録欄８１２０を提供する。【０１１０】
メタデータスキーマ定義ファイル登録欄８１１０には、ネームスペースエイリアス入力欄８１１１と登録ファイル名入力欄８１１２を提供する。上記二つを入力した後、Ｕｐｌｏａｄボタン８１１３を押下することで、指定したスキーマ定義ファイルを検索サーバ１１００に登録することができる。また、Ｃａｎｃｅｌボタン８１１４を押下することで、ファイル登録処理をキャンセルすることができる。【０１１１】
メタデータスキーマ管理表登録欄８１２０には、前述したＵｐｌｏａｄボタン８１１３を押下した後、検索サーバ１１００にて抽出したメタデータスキーマの内容を表示する。表示内容は、メタデータスキーマ管理表７１００のエントリと同じである。表示された項目について、チェックボックス欄８１２６にて対象レコードを特定し、Ｅｄｉｔボタン８１２７を押下することで内容を修正する。また、同様にＤｅｌｅｔｅボタン８１２８を押下することで内容を削除する。登録内容が確定したら、Ｒｅｇｉｓｔｅｒボタン８１２９を押下することで、メタデータスキーマ管理表７１００に登録することができる。なお、Ｃａｎｃｅｌボタン８１３０を押下することで、メタデータスキーマ管理表７１００への登録処理をキャンセルすることができる。【０１１２】
図１５は、検索サーバ１１００の検索インデックススキーマ制御サブプログラム１１７１を実行するプロセッサ１１１０が行うスキーママッピング定義登録処理の流れを示す。なお、図１３と同様にプロセッサ１１１０を省略して以下の説明を簡易にする。【０１１３】
本処理では、管理マシン３１００を操作するシステム管理者からメタデータスキーマ定義を特定するためのネームスペースエイリアスを指定してもらい、当該ネームスペースを持つメタデータスキーマ定義を取得し、メタデータスキーマ定義からスキーママッピング定義に必要な情報を生成の上、スキーママッピング管理表７２００に生成した情報を登録する処理を行う。【０１１４】
はじめに、検索インデックススキーマ制御サブプログラム１１７１は、マッピング定義を設定する対象となるメタデータスキーマ定義を特定するためのネームスペースのエイリアスを管理用マシン３１００上の検索サーバ管理クライアントプログラム３１２４から受信する（ステップＳ２０１）。なお、メタデータスキーマ定義を特定できる情報であれば、どのような形式のものでもよい。例えば、ネームスペース名そのものでもよい。【０１１５】
次に、検索インデックススキーマ制御サブプログラム１１７１は、ステップＳ２０１で指定されたネームスペースのエイリアスが当該検索サーバ１１００に登録されているか否かを判定する（ステップＳ２０２）。【０１１６】
ネームスペースエイリアスが登録されていない場合（ステップＳ２０２でＮｏ場合）は、エラーとなって処理を終了する。一方、ネームスペースエイリアスが登録されている場合（ステップＳ２０２でＹｅｓの場合）、検索インデックススキーマ制御サブプログラム１１７１は、受信したネームスペースエイリアスより、メタデータスキーマ定義をメタデータスキーマ管理表７１００から取得する（ステップＳ２０３）。ここでメタデータスキーマ定義は、メタデータスキーマ管理表７１００に登録されているレコードの中で、ネームスペースエイリアス７１２０が指定されたエイリアスと同じレコードから取得する。【０１１７】
次に、検索インデックススキーマ制御サブプログラム１１７１は、取得したメタデータスキーマ定義より、スキーママッピング情報候補を生成する（ステップＳ２０４）。ここでは、ネームスペース名７１３０とメタデータ名７１４０からフィールド名７２４０の候補を生成し、メタデータタイプ７１５０からフィールドタイプ７２５０の候補を生成し、メタデータ名７１４０からフィールドエイリアス７２６０の候補を生成する。これら三つの構成要素と、メタデータスキーマ管理表７１００から取得した内容を組み合わせて、スキーママッピング情報候補とする。【０１１８】
次に、検索インデックススキーマ制御サブプログラム１１７１は、生成したスキーママッピング情報候補を要求元（例えば、管理マシン３１００）に送信して出力装置３１７２に提示する（ステップＳ２０５）。ここでは、提示情報を管理用マシン３１００上の検索サーバ管理クライアントプログラム３１２４に送信し、検索サーバ管理クライアントプログラム３１２４が提示情報をシステム管理者が閲覧できるように管理画面や管理コンソールなどの出力装置３１７２に出力する。【０１１９】
その後、検索インデックススキーマ制御サブプログラム１１７１は、要求元が提示情報を確認した結果、当該提示情報に対して変更が必要か否かを判定する（ステップＳ２０６）。ここでは、提示情報を送信した後で、検索サーバ管理クライアントプログラム３１２４から返ってくる情報の中に、変更が必要か否かを示す情報も含めてもよい。この情報を利用して上記の判断を行う。【０１２０】
変更が必要な場合（ステップＳ２０６でＹｅｓの場合）、検索インデックススキーマ制御サブプログラム１１７１は、要求元から当該スキーママッピング情報候補に対する変更情報を取得し、当該変更情報をスキーママッピング情報候補に反映させる（ステップＳ２０７）。その後、ステップＳ２０５以降の処理を再度繰り返す。【０１２１】
変更が不要な場合（ステップＳ２０６でＮｏの場合）、検索インデックススキーマ制御サブプログラム１１７１は、当該スキーママッピング情報をスキーママッピング管理表７２００に登録して処理を終了する。【０１２２】
なお、上記の説明では、ネームスペースエイリアスを指定し、メタデータスキーマ管理表７１００に登録されている内容をもとにスキーママッピング情報候補を生成して利用する例を説明したが、その限りではない。システム管理者が、スキーママッピング管理表７２００に登録すべき情報を直接指定して、当該管理表に登録する。【０１２３】
図１６は、前述したスキーママッピング定義登録処理を管理マシン３１００等の管理画面から行う場合における操作画面の一例を示す。スキーママッピング定義登録画面８２００では、メタデータスキーマ管理表呼び出し欄８２１０と、スキーママッピング管理表登録欄８２２０を提供する。【０１２４】
メタデータスキーマ管理表呼び出し欄８２１０には、ネームスペースエイリアス入力欄８２１１を提供する。上記ネームスペースエイリアスを入力した後、Ｃａｌｌボタン８２１２を押下することで、指定されたネームスペースエイリアスを持つレコードをメタデータスキーマ管理表７１００から探索し、後述するスキーママッピング管理表登録欄８２２０に出力することができる。【０１２５】
スキーママッピング管理表登録欄８２２０には、前述したＣａｌｌボタン８２１２を押下した後、指定されたネームスペースエイリアスを持つメタデータスキーマ管理表７１００のレコードの内容と、これらのレコードから生成した内容からなるスキーママッピング情報候補を出力する。表示内容は、メタデータスキーマ管理表７１００のエントリ（ＩＤ８２２１、ネームスペースエイリアス８２２２、ネームスペース名８２２３、メタデータ名８２２４、メタデータタイプ８２２５）と、上述した三つの生成情報に関するエントリ（フィールド名８２２６、フィールドタイプ８２２７、フィールドエイリアス８２２８）である。表示された項目について、チェックボックス欄８２２９にて対象レコードを特定し、Ｅｄｉｔボタン８２３０を押下することで内容が修正（更新）される。また、同様にＤｅｌｅｔｅボタン８２３１を押下することで内容を削除する。登録内容が確定したら、Ｒｅｇｉｓｔｅｒボタン８２３２を押下することで、スキーママッピング管理表７２００に登録することができる。なお、Ｃａｎｃｅｌボタン８２３３を押下することで、スキーママッピング管理表７２００への登録処理をキャンセルすることができる。【０１２６】
図１７は、検索サーバ１１００の検索インデックススキーマ制御サブプログラム１１７１を実行するプロセッサ１１１０が行う検索インデックススキーマ定義登録処理の流れを示す。なお、図１３と同様に説明を簡易にするためプロセッサ１１１０の記載を省略する。【０１２７】
本処理では、検索インデックススキーマ定義に登録するフィールド情報を特定するために当該フィールドに関連付けられたネームスペースエイリアスをシステム管理者などに指定してもらい、当該ネームスペースを持つメタデータスキーマ定義とスキーママッピング定義を取得し、これらの定義から登録対象フィールド情報を取得の上、検索インデックススキーマ管理表７３００に上記登録対象フィールド情報を登録する処理を行う。【０１２８】
はじめに、検索インデックススキーマ制御サブプログラム１１７１は、検索インデックススキーマ定義を登録する対象となるスキーママッピング情報を特定するためのネームスペースエイリアスを、管理用マシン３１００上の検索サーバ管理クライアントプログラム３１２４から受信する（ステップＳ３０１）。なお、スキーママッピング情報を特定できる情報であれば、どのような形式のものでもよい。例えば、ネームスペース名そのものでもよい。【０１２９】
次に、検索インデックススキーマ制御サブプログラム１１７１は、指定されたネームスペースエイリアスが当該検索サーバ１１００に登録されているか否かを判定する（ステップＳ３０２）。【０１３０】
ネームスペースエイリアスが登録されていない場合（ステップＳ３０２でＮｏの場合）は、エラーとなって処理を終了する。登録されている場合（ステップＳ３０２でＹｅｓの場合）、検索インデックススキーマ制御サブプログラム１１７１は、受信したネームスペースエイリアスより、スキーママッピング情報をメタデータスキーマ管理表７１００ならびにスキーママッピング管理表７２００から取得する（ステップＳ３０３）。【０１３１】
ここで、メタデータスキーマ定義は、メタデータスキーマ管理表７１００に登録されているレコードの中で、ネームスペースエイリアス７１２０が指定されたエイリアスと同じレコードを選択して取得する。また、スキーママッピング情報は、スキーママッピング管理表７２００に登録されているレコードの中で、ネームスペース名７２２０がメタデータスキーマ定義に含まれるネームスペース名と同じレコードを選択して取得する。【０１３２】
次に、検索インデックススキーマ制御サブプログラム１１７１は、取得したスキーママッピング情報より、検索インデックススキーマ定義候補を生成する（ステップＳ３０４）。ここでは、メタデータスキーマ管理表７１００から取得したネームスペースエイリアス７１２０と、スキーママッピング管理表７２００から取得したフィールド名７２４０とフィールドタイプ７２５０を組み合わせて、検索インデックススキーマ定義の候補とする。【０１３３】
次に、検索インデックススキーマ制御サブプログラム１１７１は、生成した検索インデックススキーマ定義の候補を要求元（例えば、管理マシン３１００）へ送信して出力装置３１７２に出力する（ステップＳ３０５）。【０１３４】
ここでは、提示する情報を管理用マシン３１００上の検索サーバ管理クライアントプログラム３１２４に送信し、検索サーバ管理クライアントプログラム３１２４が提示する情報をシステム管理者が閲覧できるように管理画面や管理コンソールなどの出力装置３１７２に出力する。【０１３５】
その後、検索インデックススキーマ制御サブプログラム１１７１は、要求元が提示した情報を確認した結果、当該提示情報に対して変更が必要か否かを判断する（ステップＳ３０６）。具体的には、提示されたフィールド名の中で、実際に検索インデックススキーマ管理表７３００に登録するものと登録しないものをシステム管理者等に選択してもらい、選択された内容をもとに変更の要否の判定を行う。ここでは、提示情報を送信した後で、検索サーバ管理クライアントプログラム３１２４から返ってくる情報の中に、変更が必要か否かを示す情報も含めてもよい。この情報を利用して上記の判定を行う。【０１３６】
変更が必要な場合（ステップＳ３０６でＹｅｓの場合）、検索インデックススキーマ制御サブプログラム１１７１は、要求元から当該検索インデックススキーマ定義候補に対する変更情報を取得し、変更情報を検索インデックススキーマ定義の候補に反映させる（ステップＳ３０７）。具体的には、検索インデックススキーマ管理表７３００への登録が必要と指定されたフィールドを残し、登録が不要と指定されたフィールドを削除する。その後、ステップＳ３０５以降の処理を再度繰り返す。【０１３７】
一方、変更が不要な場合（ステップＳ３０６でＮｏの場合）、検索インデックススキーマ制御サブプログラム１１７１は、当該検索インデックススキーマ定義の候補を検索インデックススキーマ管理表７３００に登録して処理を終了する。【０１３８】
なお、上記の説明では、ネームスペースエイリアスを指定し、メタデータスキーマ管理表７１００ならびにスキーママッピング管理表７２００に登録されている内容をもとに検索インデックススキーマ定義候補を生成して利用する例を説明したが、その限りではない。システム管理者が、検索インデックススキーマ管理表７３００に登録すべき情報を直接指定して、当該管理表に登録してもよい。ただし、この場合はスキーママッピング管理表７２００に登録しているエントリの情報との整合性は別途保証する必要がある。【０１３９】
図１８は、前述した検索インデックススキーマ定義登録処理を管理マシン３１００等の管理画面から行う場合における操作画面の一例を示す。検索インデックススキーマ定義登録画面８３００では、スキーママッピング管理表呼び出し欄８３１０と、検索インデックススキーマ管理表登録欄８３２０を提供する。【０１４０】
スキーママッピング管理表呼び出し欄８３１０には、ネームスペースエイリアス入力欄８３１１を提供する。上記を入力した後、Ｃａｌｌボタン８３１２を押下することで、指定されたネームスペースエイリアスを持つレコードをメタデータスキーマ管理表７１００ならびにスキーママッピング管理表７２００から探索し、後述する検索インデックススキーマ管理表登録欄８３２０に出力することができる。【０１４１】
検索インデックススキーマ管理表登録欄８３２０には、前述したＣａｌｌボタン８３１２を押下した後、指定されたネームスペースエイリアスを持つメタデータスキーマ管理表７１００のレコードの内容と、当該レコードと同じネームスペース名７１３０を持つスキーママッピング管理表７２００のレコードの内容から生成した検索インデックススキーマ定義候補を出力する。表示内容は、メタデータスキーマ管理表７１００のエントリ（ネームスペースエイリアス８３２３）と、スキーママッピング管理表７２００のエントリ（マッピングＩＤ８３２１、フィールド名８３２４、フィールドタイプ８３２５）と、当該レコードを検索インデックススキーマ管理表７３００に追加するか否かを示すエントリ（フィールド更新フラグ８３２２）である。表示された項目について、チェックボックス欄８３２６にて対象レコードを特定し、Ｅｄｉｔボタン８３２７を押下することで内容を修正する。また、同様にＤｅｌｅｔｅボタン８３２８を押下することで内容を削除する。登録内容が確定したら、Ｒｅｇｉｓｔｅｒボタン８３２９を押下することで、検索インデックススキーマ管理表７３００に登録することができる。なお、Ｃａｎｃｅｌボタン８３３０を押下することで、検索インデックススキーマ管理表７３００への登録処理をキャンセルすることができる。【０１４２】
上記、検索インデックススキーマ定義登録画面８３００では、フィールド更新フラグ８３２２を設けることで、検索対象とはならないフィールドについて検索インデックススキーマ定義を作成しないことを選択できる。つまり、検索制御プログラム１１２４は、フィールド更新フラグ８３２２が「Ｙｅｓ」であれば検索インデックススキーマ定義を生成し、フィールド更新フラグ８３２２が「Ｎｏ」であれば検索インデックススキーマ定義を生成しない。これにより、検索対象とはならないフィールドを除外して検索インデックススキーマ管理表７３００が肥大化するのを防止できる。【０１４３】
図１９は、検索サーバ１１００のインデクシング制御サブプログラム１１７３が行う検索インデックス更新処理の流れを示すフローチャートである。本処理では、検索サーバ１１００にて予め設定された検索インデックス更新開始要求を契機に、ファイルアクセス制御サブプログラム１１７２を利用してファイルサーバ２１００上のファイルにアクセスする。インデクシング制御サブプログラム１１７３を実行するプロセッサ１１１０は、ファイルサーバ２１００のファイルから検索インデックス更新対象ファイルを特定し、当該ファイルサーバ２１００から検索インデックス更新対象ファイルに関するデータやメタデータを取得する。インデクシング制御サブプログラム１１７３を実行するプロセッサ１１１０は、取得したデータをもとに検索インデックスの更新を行い、更新の結果を検索インデックス管理表７４００ならびに検索インデックス登録ファイル管理表７５００に反映させる。なお、上記図１３と同様にプログラムを実行するプロセッサ１１１０の記述は省略する。【０１４４】
はじめに、インデクシング制御サブプログラム１１７３は、当該検索インデックス更新処理を差分インデクシングによって行うのか否かを判断する（ステップＳ４０１）。ここでは、当該検索インデックス更新要求が出される際に、差分インデクシングを行うのか、あるいはフルインデクシングを行うのかを示す情報も指定し、指定された情報をもとに判断してもよい。【０１４５】
差分インデクシングではなくフルインデクシングを行う場合（ステップＳ４０１でＮｏの場合）、以下に説明する処理を行う。はじめに、インデクシング制御サブプログラム１１７３は、ファイルサーバ２１００に格納されている検索対象ファイル全てをクロールしたか否かを判定する（ステップＳ４０２）。【０１４６】
全ファイルをクロールしていない場合（ステップＳ４０２でＮｏの場合）、インデクシング制御サブプログラム１１７３は、ファイルサーバ２１００に格納されているファイルのうち、今回のクローリングにて未選択のファイルの中から任意の一つのファイルを選択する（ステップＳ４０３）。【０１４７】
その後、インデクシング制御サブプログラム１１７３は、検索インデックス更新対象リストに対象ファイル名を追加する（ステップＳ４０４）。ここでは、ステップＳ４０３で選択したファイルのファイル名を当該リストに追加する。その後、ステップＳ４０２に戻り、全ての対象ファイルのファイル名を検索インデックス更新対象リストに追加し終えるまで繰り返す。なお、ここではファイル一つ一つの名前を当該リストに追加する例を示したが、この限りではない。例えば、対象ファイルリストが別途取得可能であれば、そのまま利用してもよい。【０１４８】
フルインデクシング処理のケースにて全ファイルをクロールした場合（ステップＳ４０２でＹｅｓの場合）、インデクシング制御サブプログラム１１７３は、検索インデックス更新対象リストに記載されたファイルを対象に、検索インデックス更新を行う（ステップＳ４０５）。【０１４９】
ここでは、インデクシング制御サブプログラム１１７３は、対象ファイルのデータやメタデータをファイルサーバ２１００から取得し、検索インデックス更新対象リストに記載されたファイルの種別を特定する。インデクシング制御サブプログラム１１７３は、当該特定した種別でインデクシングすべきメタデータスキーマ定義とインデクシングすべき情報をメタデータスキーマ管理表７１００、スキーママッピング管理表７２００および検索インデックススキーマ管理表７３００から取得する。インデクシング制御サブプログラム１１７３は、取得した情報を元に対象ファイルからインデクシングすべき内容を抽出し、抽出した内容を検索インデックス管理表７４００ならびに検索インデックス登録ファイル管理表７５００に反映させる。以上で、フルインデクシング処理を終了する。【０１５０】
一方で、差分インデクシングを行う場合（ステップＳ４０１でＹｅｓの場合）、以下に説明する処理を行う。はじめに、インデクシング制御サブプログラム１１７３は、ファイルサーバ２１００に格納されている検索対象ファイル全てをクロールしたか否かを判定する（ステップＳ４０６）。【０１５１】
全ファイルをクロールしていない場合（ステップＳ４０６でＮｏの場合）、インデクシング制御サブプログラム１１７３は、ファイルサーバ２１００に格納されているファイルのうち、今回のクローリングにて未選択のファイルの中から任意の一つのファイルを選択する（ステップＳ４０７）。【０１５２】
その後、インデクシング制御サブプログラム１１７３は、選択した対象ファイルの最終更新日時情報を参照し、前回のインデックス更新日時よりも新しいか否かを判定する（ステップＳ４０８）。【０１５３】
当該ファイルの最終更新日時が前回のインデックス更新日時よりも新しい場合（ステップＳ４０８でＹｅｓの場合）、インデクシング制御サブプログラム１１７３は、対象ファイルを検索インデックスの更新対象ファイルと判断し、検索インデックス更新対象リストに、当該ファイルのファイル名を追加する（ステップＳ４０９）。その後、ステップＳ４０６に戻り、全ての対象ファイルについて上記処理を繰り返す。【０１５４】
また、当該ファイルの最終更新日時が前回のインデックス更新日時よりも古い場合（ステップＳ４０８でＮｏの場合）、インデクシング制御サブプログラム１１７３は、対象ファイルの検索インデックスを更新不要と判断し、ステップＳ４０６に戻る。以降は同様に全ての対象ファイルについて上記処理を繰り返す。【０１５５】
差分インデクシング処理のケースにて全ファイルをクロールした場合（ステップＳ４０６でＹｅｓの場合）、インデクシング制御サブプログラム１１７３は、検索インデックス更新対象リストに記載されたファイルを対象に、検索インデックス更新を行う（ステップＳ４０５）。以上で、差分インデクシング処理を終了する。【０１５６】
上記処理により、予め設定された契機（または周期）になるとフルインデクシング処理または差分インデクシング処理によって、検索インデックスの更新が完了する。【０１５７】
図２０は、検索サーバ１１００における検索インデックスを利用したファイル検索処理の流れを示すフローチャートである。以下では、検索サーバ１１００上の検索応答制御サブプログラム１１７４を実行するプロセッサ１１１０が行うファイル検索処理を例に説明する。具体的には、クライアントマシン４１００上の検索クライアント制御プログラム４１２４から検索サーバ１１００に対して検索要求が送信された場合における検索処理を説明する。この処理は、検索制御プログラム１１２４が検索要求を受信したときに開始される。なお、上記図１３と同様に説明を簡易にするためプロセッサ１１１０の記載は省略する。【０１５８】
はじめに、検索応答制御サブプログラム１１７４は、検索要求元（クライアントマシン４１００）から受信した検索要求の内容を解析して、検索要求で指定された検索条件を取得する（ステップＳ５０１）。【０１５９】
次に、検索応答制御サブプログラム１１７４は、検索要求で指定された検索条件について、検索用のフィールド名を変換する必要があるか否かを判定する（ステップＳ５０２）。ここでは、検索インデックススキーマ管理表７３００のフィールド名７３１０と同じ名前を検索条件で指定している場合は、当該フィールド名で直接検索可能なため変換不要であると判定する。一方、検索条件としてスキーママッピング管理表７２００のフィールドエイリアス７２６０とネームスペース名７２２０を指定している場合、またはスキーママッピング管理表７２００のフィールドエイリアス７２６０とメタデータスキーマ管理表７１００のネームスペースエイリアス７１２０を指定している場合は、直接検索できないため、検索可能なフィールド名に変換する。したがって、検索条件として検索インデックススキーマ管理表７３００のフィールド名７３１０が指定されている場合は、変換不要と判断し、それ以外の場合は変換必要と判断する。【０１６０】
フィールド名の変換が必要な場合（ステップＳ５０２でＹｅｓの場合）、検索応答制御サブプログラム１１７４は、メタデータスキーマ管理表７１００とスキーママッピング管理表７２００の登録情報を基に、フィールド名の変換を行う（ステップＳ５０３）。具体的には、検索条件としてスキーママッピング管理表７２００のフィールドエイリアス７２６０とネームスペース名７２２０を指定している場合は、当該レコードのフィールド名７２４０に変換する。また、検索条件としてスキーママッピング管理表７２００のフィールドエイリアス７２６０とメタデータスキーマ管理表７１００のネームスペースエイリアス７１２０を指定している場合は、当該ネームスペースエイリアス７１２０に対するネームスペース名７１３０を取得することで、上記と同様にネームスペース名７２２０に対応するフィールド名７２４０に変換する。その後、ステップＳ５０４に遷移する。【０１６１】
一方、フィールド名の変換が不要な場合（ステップＳ５０２でＮｏの場合）、検索応答制御サブプログラム１１７４は、検索インデックス管理表７４００を参照して、検索条件に合致するレコードを特定し、当該レコードに格納されているファイル識別情報７４３１、７４３４などを取得する（ステップＳ５０４）。【０１６２】
次に、検索応答制御サブプログラム１１７４は、検索インデックス登録ファイル管理表７５００を参照して、前の処理で取得したファイル識別情報７４３１、７４３４から対象ファイルのファイルパス名７５２０を取得する（ステップＳ５０５）。【０１６３】
最後に、検索応答制御サブプログラム１１７４は、取得した情報をもとに検索結果をまとめて要求元に応答し、処理を終了する（ステップＳ５０６）。【０１６４】
上記処理により、検索サーバ１１００は、クライアントマシン４１００から検索要求を受信すると、検索条件に合致するファイルパスを応答する。このとき、検索サーバ１１００は、検索要求がフィールド名の変換が必要な場合には、メタデータスキーマ管理表７１００とスキーママッピング管理表７２００からフィールド名を変換することで、検索条件に合致するファイルパスを検索できる。【０１６５】
図２１は、前述したファイル検索処理を検索ユーザが利用するクライアントマシン４１００の出力装置４１７２の画面から行う場合における操作画面例を示す。ファイル検索画面８４００では、検索条件入力欄８４１０と、検索結果出力欄８４２０を提供する。【０１６６】
検索条件入力欄８４１０には、各種検索条件を入力するための入力欄を提供する。ここでは、複数の条件を論理式で組み合わせたものを検索条件として入力できれば、どのような形式でもよい。ここで述べる検索条件とは、検索対象フィールド名、当該フィールドで特定されるフィールドに格納されている値もしくは値の範囲を示したものを組み合わせたものに相当する。検索対象フィールド名を特定するために、さらに当該フィールド名のネームスペース名や、ネームスペース名のエイリアスを追加してもよい。また、フィールド名のかわりにフィールドエイリアスを指定してもよい。図で示している例では、ネームスペースエイリアスが”Ａ２”であって、かつフィールド名”ＰａｔｉｅｎｔＩＤ”で特定されるフィールドの値が”１０００”となるものを検索する場合の検索条件を示している。【０１６７】
上記の検索条件を入力した後、Ｓｅａｒｃｈボタン８４１１を押下することで、指定された検索条件をクライアントマシン４１００から検索サーバ１１００へ送信し、検索が実行される。【０１６８】
検索結果出力欄８４２０には、前述したＳｅａｒｃｈボタン８４１１を押下した後、指定された検索条件で検索サーバ１１００が検索した結果を出力する。図で示している例では、検索結果として検索条件に合致するファイルをリスト形式で出力したリスト出力８４３０を示している。検索結果の出力形式は、Ｌｉｓｔボタン８４２１を押下することで、リスト出力形式で出力し、Ｔａｂｌｅボタン８４２２を押下することで、後述するテーブル出力形式で出力する。なお、リスト出力形式やテーブル出力形式以外の任意の出力形式を指定してもよい。【０１６９】
また、リスト出力８４３０において、各ファイルのメタデータに関するフィールド名とメタデータの値に関する情報を出力してもよい。どのフィールドを出力するのか、またはどのようなフォーマットで出力するのかについて設定してもよい。【０１７０】
また、検索結果の整列条件入力欄８４２３を提供し、どのフィールドで整列させるのかを指定すると共に、降順昇順のどちらで整列させるのかを指定するため、それぞれＡＳＣボタン８４２４、ＤＥＳＣボタン８４２５を提供する。整列条件入力欄８４２３にフィールド名を入力した後、ＡＳＣボタン８４２４を押下することで、当該フィールドの値を使用して昇順に整列したものを出力する。整列条件入力欄８４２３にフィールド名を入力した後、ＤＥＳＣボタン８４２５を押下することで、当該フィールドの値を使用して降順に整列したものを出力する。【０１７１】
図２２は、前述したファイル検索処理をクライアントマシン４１００の検索ユーザ向け画面から行う場合における操作画面例として、検索結果をテーブル出力形式にした場合の例を示す。画面構成は図２１とほとんど同じである。以降では、図２１との差分についてのみ説明する。【０１７２】
図２１に示した画面との差分は、検索結果出力欄８４２０において、検索結果として検索条件に合致するファイルをテーブル形式で出力したテーブル出力８４４０になっている点である。テーブル出力形式で出力する場合、各ファイルのメタデータに関するフィールド名とメタデータの値に関する情報をテーブルの各カラムとして出力している。どのフィールドを出力するのか、またはどのようなフォーマットで出力するのかについて設定してもよい。
以上、本発明の実施例１について説明したが、本発明はこの実施例１に限定されることなくその趣旨を逸脱しない範囲内で種々の構成をとることができることは言うまでもない。【０１７３】
以上のように、本実施例１によれば、データ検索で指定する検索条件として、データフォーマットのオリジナルのメタデータ名や、検索サーバ１１００が付与するメタデータ名だけでなく、検索時の利便性を考慮したネームスペース名７１３０の別名（ネームスペースエイリアス７１２０）も設定可能とする。これにより、検索サーバ１１００は、検索対象のデータのデータフォーマットが異なっていても、特定のメタデータを持つファイルを容易に識別することが可能となる。したがって、複数種類のメタデータを持つファイルをファイルサーバ２１００に蓄積して検索サーバ１１００で検索サービスを提供することが可能となる。【０１７４】
なお、上記実施例１では、メタデータ名をスキーマ定義ファイル７０００から抽出する例を示したが、スキーマ定義ファイル７０００がＸＭＬで構成される場合、メタデータ名に代わってタグ名を用いてもよい。【０１７５】
また、上記実施例１では、検索サーバ１１００は、検索インデックススキーマ管理表７３００のフィールドを更新した後に、最初に検索インデックス管理表の更新を行う際には、当該更新されたフィールドに対応するファイルのデータを検索インデックス管理表７４００に取り込むことができる。すなわち、検索サーバ１１００では、検索インデックススキーマ管理表７３００に所望の検索インデックススキーマ定義を追加した後に、追加したフィールド名に対応するメタデータ名を持つファイルを更新対象として特定する。検索サーバ１１００は、更新対象として特定したファイルについてインデクシングを行って検索インデックス管理表７４００及び検索インデックス登録ファイル管理表７５００を更新することができる。
【実施例２】
【０１７６】
上述した実施例１は、検索サーバ１１００の検索インデックススキーマ管理表７３００のフィールドを更新した後、最初に検索インデックスの更新を行う時に、当該更新フィールドに関するデータを検索インデックス管理表７４００に取り込んで検索できる。当該フィールドを更新した後に、フルインデクシングにて検索インデックスの更新を行う場合、検索対象ファイルの全てに関する更新フィールドの情報も漏れなく取得できる。【０１７７】
しかし、ファイルサーバ２１００に格納されるファイル数が多い場合、フルインデクシングによる検索インデックスの更新処理は時間がかかりすぎてしまう問題が起こりえる。【０１７８】
一方で、差分インデクシングによる検索インデックスの更新を行う場合、更新フィールドを持つファイルがファイルサーバ２１００上で更新されていないとき、検索サーバ１１００が当該ファイルを検索インデックスの更新対象ファイルと判別できないため、当該更新フィールドに関するデータを検索インデックス管理表７４００に取り込めない。具体的には、前回の検索インデックス更新日時よりも前に当該ファイルが更新されている場合が該当する。このため、検索インデックススキーマ管理表７３００にフィールドを追加しても、検索対象ファイルの最終更新日時によっては、検索インデックス管理表７４００に当該ファイルのフィールドに関する情報を反映できない。【０１７９】
このことは、検索インデックススキーマ管理表７３００へのフィールド追加のみならず、フィールドタイプの変更や、フィールド名のリネームなども同じような問題が発生する可能性がある。【０１８０】
このため、検索インデックススキーマ管理表７３００におけるフィールド情報の更新後における検索インデックス更新処理をより高速かつ効率よく実施する仕組みが必要となる。【０１８１】
そこで、以下では、検索サーバ１１００がファイルサーバ２１００に格納されているファイルを対象に検索インデックス更新を行う際に、自検索サーバ１１００における検索インデックススキーマ管理表７３００におけるフィールド更新があるか否かを判定する。フィールド更新があった場合は、当該フィールド名をキーワードとして、自検索サーバ１１００にて管理する検索インデックス管理表７４００を使用してファイル検索を行い、当該検索にヒットしたファイルも検索インデックス更新の対象ファイルとして扱うことが可能な差分インデクシングの制御を第２の実施例として説明する。【０１８２】
なお、第２の実施例と第１の実施例の差異は、検索インデックススキーマ管理表７３００と、検索インデックススキーマ定義の登録処理と、検索インデックスの更新処理の一部が異なり、その他の構成は前記第１の実施例と同様である。【０１８３】
図２３は、実施例２の計算機システムで行われる一連の処理の流れを例示する説明図である。ここでは、管理マシン３１００から検索サーバ１１００に対するスキーママッピング登録処理（処理（６−ｎ））ならびに検索サーバ１１００からファイルサーバ２１００上のファイルに対する検索インデックスの更新処理（処理（７−ｎ））の２つの処理について、それぞれ説明する。なお、処理（６−ｎ）ならびに処理（７−ｎ）は、それぞれ実施例１の図６における処理（３−ｎ）ならびに処理（４−ｎ）に対応するものである。図６における処理（１−ｎ）、処理（２−ｎ）および処理（５−ｎ）は、実施例２においても同じ処理の流れとなる。このため、重複した説明は省略する。【０１８４】
はじめに、スキーママッピング登録処理（６−ｎ）について説明する。システム管理者は、管理マシン３１００の検索サーバ管理クライアント制御プログラム３１２４を利用して、検索サーバ１１００に対して検索インデックススキーマ登録画面８３００（図１８参照）を呼び出す（処理（６−１））。この処理において、システム管理者は、検索インデックススキーマ登録に利用するために、実施例１の処理（２−ｎ）で利用したネームスペースエイリアスを指定する。検索サーバ１１００は、指定されたネームスペースエイリアスより、スキーママッピング管理表７２００から該当するスキーママッピング情報を取得し、当該情報をもとに検索インデックススキーマ定義の候補を生成し、要求元（管理マシン３１００）に候補の内容を提示する（処理（６−２））。ここで生成する検索インデックススキーマ定義は、スキーママッピング定義におけるフィールド名と、各フィールドのデータ種別からなる。システム管理者は、提示された内容を確認し、必要に応じて候補の内容に対する更新情報を検索サーバ１１００に対して送る（処理（６−３））。検索サーバ１１００は、検索インデックススキーマ定義の候補と、要求元からの更新情報をもとに、最終的な検索インデックススキーマ定義を生成し、検索インデックススキーマ管理表７３００に格納する（処理（６−４））。この処理を行う時、検索インデックススキーマ管理表７３００のレコードごとに、当該レコードの最終更新日時に関する情報を新たに格納する。これにより、検索サーバ１１００における検索インデックススキーマ定義を更新でき、新たに検索可能なメタデータを追加すると共に、当該メタデータに対応するフィールドがいつ追加されたのかを判別することができる。以上が、検索インデックススキーマ定義登録処理の一連の流れとなる。【０１８５】
次に、検索インデックスの更新処理（７−ｎ）について説明する。検索サーバ１１００上の検索制御プログラム１１２４は、ファイルサーバ２１００に対してファイルアクセスを行い、検索インデックスを更新する必要があるファイルを特定し、更新が必要なファイルの読み出しを行う（処理（７−１））。【０１８６】
ここで、検索サーバ１１００検索がインデックスを更新する必要があるファイルを特定するためには、対象ファイルの最終更新日時を取得して、前回の検索インデックス更新日時よりも新しいか否かをもとに判断する。ファイルアクセス要求を受けたファイルサーバ２１００は、必要に応じて自身が管理するファイルシステム２１７０を利用して、対象ファイルの情報を取得し、要求元（管理マシン３１００）に送信する（処理（７−２））。更新対象ファイルを取得した検索制御プログラム１１２４は、当該ファイルのファイル種別を特定する。そして、検索インデックススキーマ管理表７３００から当該ファイル種別に合致するスキーマ定義情報を取得の上、当該ファイルを解析して検索インデックスデータ生成のために必要な情報を抽出する（処理（７−３））。検索制御プログラム１１２４は、生成した情報をもとに検索インデックスデータを生成し、検索インデックス管理表７４００ならびに検索インデックス登録ファイル管理表７５００に反映させる（処理（７−４））。その後、検索制御プログラム１１２４は、検索インデックススキーマ管理表７３００の各レコードに新たに登録したスキーマ定義最終更新日時を取得し、前回の検索インデックス更新日時よりも新しいレコードのフィールド名一覧を取得する（処理（７−５））。【０１８７】
検索制御プログラム１１２４は、取得したフィールド名を検索キーワードとして指定し、検索インデックス管理表７４００ならびに検索インデックス登録ファイル管理表７５００を利用して、当該検索キーワード（フィールド名）を含むファイルを検索する（処理（７−６））。【０１８８】
検索サーバ１１００上の検索制御プログラム１１２４は、検索結果として取得したファイルリストをもとに、ファイルサーバ２１００に対してファイルアクセスを行い、対象ファイルの読み出しを行う（処理（７−７））。ファイルアクセス要求を受けたファイルサーバ２１００は、必要に応じて自身が管理するファイルシステム２１７０を利用して、対象ファイルの情報を取得し、要求元に提供する（処理（７−８））。さらなる更新対象ファイルを取得した検索制御プログラム１１２４は、当該ファイルのファイル種別を特定し、検索インデックススキーマ管理表７３００から当該ファイル種別に合致するスキーマ定義情報を取得の上、当該ファイルを解析して検索インデックスデータ生成のために必要な情報を抽出する（処理（７−９））。【０１８９】
検索制御プログラム１１２４は、生成した情報をもとに検索インデックスデータを生成し、検索インデックス管理表７４００ならびに検索インデックス登録ファイル管理表７５００に反映させる（処理（７−１０））。以上が、検索サーバ１１００による検索インデックスの更新処理の一連の流れとなる。【０１９０】
上述のように、検索インデックススキーマ管理表７３００のフィールドを更新した後、更新フィールドを特定し、キーワード検索機能を利用して当該フィールド名を持つファイルを取得し、差分インデクシングによる検索インデックスの更新を実施するためには、検索インデックススキーマ管理表７３００の構成と、検索インデックススキーマ定義登録処理と、検索インデックス更新処理の一部を変更する。これらの変更内容は、図２４、図２５、図２６で説明する。【０１９１】
図２４は、実施例１の図１０で説明した検索インデックススキーマ管理表７３００の変更内容を示す。本管理表の構成は、図１０で説明した構成と比べて、各レコードにスキーマ定義最終更新日時７３３０を新たに格納する点が実施例１と異なる。このスキーマ定義最終更新日時７３３０には、当該レコードを検索インデックススキーマ管理表７３００に追加した時、ならびに当該レコードの設定内容を更新した時に日時情報を格納する。これ以外は、図１０の構成と同じである。【０１９２】
図２５は、実施例１の図１７で説明した検索インデックススキーマ定義登録処理の変更内容を示す。本フローチャートは、図１７で説明した検索インデックススキーマ定義登録処理に比べて、検索インデックススキーマ管理表７３００への検索インデックススキーマ定義候補を登録する際に新たな情報として、図２４に示したスキーマ定義最終更新日時７３３０に関する情報も追加登録する点が異なる。具体的には、以下で説明する。【０１９３】
図２５のフローチャートにおいて、実施例１に示した図１７からの変更点は、ステップＳ３０８の次にステップＳ３０９を新たに追加している点である。それ以外は、図１７と同じである。以下、変更した部分に関する説明のみを行う。【０１９４】
ステップＳ３０８による処理が終わった後、検索インデックススキーマ制御サブプログラム１１７１は、検索インデックススキーマ管理表７３００の新規追加レコードや更新レコードに対して、現時点の日時情報をスキーマ定義最終更新日時７３３０に登録する（ステップＳ３０９）。これにより、当該レコードがいつ更新されたのかがわかるようになる。この情報は、後述する検索インデックス更新処理で使用する。【０１９５】
図２６Ａ、図２６Ｂは、実施例１の図１９で説明した検索インデックス更新処理の一部を変更したフローチャートを示す。本フローチャートは、図１９で説明した検索インデックス更新処理と比べて、検索インデックススキーマ管理表７３００に新たに登録されたスキーマ定義最終更新日時７３３０を取得し、当該更新日時が前回の検索インデックス更新日時よりも新しいレコードに格納されているフィールド名７３１０を取得し、当該フィールド名７３１０をキーワードとしてファイル検索を行い、ヒットしたファイルも検索インデックス更新対象ファイルとして扱う点が異なる。具体的には、以下で説明する。【０１９６】
図２６Ａのフローチャートにおいて、図１９からの変更点は、ステップＳ４０１にてＹｅｓとなる場合の処理が、図１９のステップＳ４０６に先立ち、ステップＳ４１０を新たに追加している点と、図２６ＢのステップＳ４０６にてＹｅｓとなる場合の処理が、図１９のステップＳ４０５に先立ち、ステップＳ４１１を新たに追加している点である。それ以外は、図１９と同じである。以下、変更した部分に関する説明のみを行う。【０１９７】
ステップＳ４０１でＹｅｓとなる場合、インデクシング制御サブプログラム１１７３は、検索インデックススキーマ管理表７３００のスキーマ定義最終更新日時７３３０の情報が、前回の検索インデックス更新日時よりも新しい全レコードのフィールド名７３１０を取得する（ステップＳ４１０）。ここで取得したフィールド名７３１０は、後の処理で検索インデックス更新対象ファイルの特定に使用する。ちなみに、ここでは、取得したフィールド名７３１０から、当該フィールド名と関連付けられているメタデータ名７２３０についても、スキーママッピング管理表７２００から取得する。以降の処理で、フィールド名７３１０で検索を行う場合、このメタデータ名７２３０でも検索を行う。【０１９８】
また、図２６ＢのステップＳ４０６でＹｅｓとなる場合、インデクシング制御サブプログラム１１７３は、検索インデックス管理表７４００を利用し、ステップＳ４１０で取得したフィールド名７３１０ならびに当該フィールド名と関連付けられたメタデータ名７２３０と同じ文字列を含むファイルを全文検索する。インデクシング制御サブプログラム１１７３は、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する（ステップＳ４１１）。【０１９９】
ここで、検索結果としてヒットしたファイルのファイル名については、検索インデックス登録ファイル管理表７５００から取得する。この処理によって、前記実施例１に示したファイル最終更新日時による差分インデクシングでは、検索インデックス更新対象ファイルとして抽出困難だったファイルも更新対象ファイルとしてリストアップすることが可能となり、検索インデックスの更新を行うことができる。【０２００】
以上の処理を実施することで、検索サービスの利用者から見れば、検索対象ファイル数が多い場合でも検索インデックスの更新をより高速かつ効率よく実施することが可能となる。これにより、検索サービスにおける検索鮮度の向上につながり、検索サービスへの満足度向上にも寄与することが可能になる。また、検索サービスのシステム管理者から見れば、検索対象のファイル数が多い場合でも、検索インデックス更新をより高速かつ効率よく実施することは、検索インデックスの更新処理に必要となる計算機資源の削減にも寄与することが可能になる。
【実施例３】
【０２０１】
上述した実施例２は、フィールド名をキーワードとして指定した全文検索機能を利用することで、検索インデックスの更新対象ファイルの取りこぼしを防ぐものであった。しかし、単純な全文検索機能を利用した場合、当該フィールド名と同じ文字列を任意のフィールド値として格納されているファイルについても、対象ファイルとしてリストアップされてしまう。これは、検索インデックスの更新対象ファイルの取得漏れは回避できる半面、更新対象ではないファイルも更新対象として取得してしまうという問題が生じる。【０２０２】
このため、検索インデックススキーマ管理表７３００におけるフィールド更新後に、当該更新フィールド名を持つファイルのみをリストアップするための仕組みが必要となる。【０２０３】
そこで、以下では、検索サーバ１１００が検索対象ファイルに関連付けられている全てのメタデータ名を、当該ファイルをインデクシングする際に、あわせてインデクシングする。検索サーバ１１００がファイルサーバ２１００に格納されているファイルを対象に検索インデックスの更新を行う際に、自検索サーバにおける検索インデックススキーマ管理表７３００においてフィールドの更新があるか否かを判定する。フィールドの更新があった場合は、当該フィールド名を検索条件に指定して、自検索サーバ１１００にて管理する検索インデックス管理表７４００を使用してメタデータ検索を行い、当該メタデータ検索にヒットしたファイルも検索インデックス更新対象ファイルとして扱うことが可能な差分インデクシングの制御を実施例３として説明する。【０２０４】
上述のように、検索サーバ１１００は、検索インデックススキーマ管理表７３００のフィールドを更新した後、更新したフィールドを特定し、メタデータ検索機能を使用して当該フィールド名を持つファイルを抽出し、差分インデクシングによる検索インデックス更新を実施するためには、検索インデックススキーマ管理表７３００のフィールド定義と、検索インデックススキーマ定義更新処理と、検索インデックス更新処理の一部を変更する。これらの変更内容は、図２７、図２８Ａ、図２８Ｂ、図２９Ａ、図２９Ｂで説明する。【０２０５】
図２７は、実施例２の図２４で説明した検索インデックススキーマ管理表７３００の一部を変更したものである。の変更内容を示す。本管理表の構成は、図２４で説明した構成と比べて、”ＭｅｔａｄａｔａＮａｍｅ”というフィールド名７３１０を持つレコードを追加している点が異なる。このレコードには、検索対象ファイルに関連付けられているメタデータ名の文字列を抽出し、インデクシングすることを意味する。なお、ここで新たに追加したレコードのフィールド名７３１０として設定する文字列は、任意の文字列でもよい。ここで追加するレコードのフィールドタイプ７３２０は、文字列の配列もしくは文字列のリストにする。この理由は、ファイルに複数のメタデータが関連付けられている場合、全てのメタデータ名をインデクシングするためである。これ以外は、図２４の構成と同じである。【０２０６】
図２８Ａ、図２８Ｂは、実施例２の図２５で説明した検索インデックススキーマ定義登録処理の一部を変更したフローチャートである。本フローチャートは、図２５で説明した検索インデックススキーマ定義登録処理に比べて、検索インデックススキーマ管理表７３００に、メタデータ名をインデクシングするフィールドを追加する点が異なる。具体的には、以下で説明する。【０２０７】
図２８Ａ、図２８Ｂのフローチャートにおいて、図２５からの変更点は、図２８ＢのステップＳ３０８の次にステップＳ３１０を新たに追加している点である。それ以外は、図２５と同じである。以下、変更部分に関する説明のみを行う。【０２０８】
ステップＳ３０８による処理が終わった後、検索インデックススキーマ制御サブプログラム１１７１は、メタデータ名をインデクシングするフィールドを、検索インデックススキーマ管理表７３００に登録する（ステップＳ３１０）。この処理では、当該検索サーバ１１００において、メタデータ名のインデクシング用に付与したフィールド名を持つレコードを検索インデックススキーマ管理表７３００に登録する。【０２０９】
このレコードを追加することにより、次に検索インデックスの更新を行う際に、検索対象ファイルのメタデータ名一式をインデクシングし、検索できる。この情報は、後述する検索インデックス更新処理で使用する。なお、検索インデックススキーマ管理表７３００において、既にメタデータ名のインデクシング用のレコードが登録済みであった場合は、何もせずに次の処理に遷移する。【０２１０】
図２９Ａ、図２９Ｂは、実施例２の図２６Ａ、図２６Ｂで説明した検索インデックス更新処理の一部を変更したフローチャートである。本フローチャートは、図２６Ａ、図２６Ｂで説明した検索インデックス更新処理と比べて、検索インデックススキーマ管理表７３００のメタデータ名のインデクシング用のフィールドを使用してメタデータ検索を行い、ヒットしたファイルも検索インデックスの更新対象ファイルとして扱う点が異なる。具体的には、以下で説明する。【０２１１】
図２９Ａ、図２９Ｂのフローチャートにおいて、図２６Ａ、図２６Ｂからの変更点は、図２９ＢのステップＳ４０６にてＹｅｓとなる場合の処理が、図２６ＢのステップＳ４１１をステップＳ４１２に変更している点、ならびに図２６ＢのステップＳ４０５をステップ４１３に変更している点である。それ以外は、図２６Ａ、図２６Ｂと同じである。以下、変更部分に関する説明のみを行う。【０２１２】
図２９ＢのステップＳ４０６でＹｅｓとなる場合、インデクシング制御サブプログラム１１７３は、検索インデックス管理表のメタデータ名のインデクシング用フィールドを使用し、当該フィールド名ならびに関連付けられたメタデータ名と同じ文字列をメタデータ名として含むファイルを検索し、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する（ステップＳ４１２）。【０２１３】
ここで、検索結果としてヒットしたファイルのファイル名については、検索インデックス登録ファイル管理表７５００から取得する。この処理によって、実施例２のような全文検索を利用した場合と比べて、検索インデックス更新対象リストに追加されるファイルについて、本来検索インデックス更新が不要なファイルがリストアップされる可能性を下げることができる。【０２１４】
また、ステップＳ４１２の処理が終わった後、あるいはステップＳ４０２でＹｅｓとなる場合、インデクシング制御サブプログラム１１７３は、ステップＳ４０５のかわりに、検索インデックス更新対象リストに記載されたファイルを対象に検索インデックスを更新すると共に、対象ファイルの全てのメタデータ名を抽出してインデクシングする（ステップＳ４１３）。ここでメタデータ名をインデクシングすることによって、前述したステップＳ４１２において、検索インデックス更新対象リストに載せるべきファイルについて、フィールド名７３１０ならびに関連付けられたメタデータ名７２３０で検索することで対象ファイルを特定することができる。【０２１５】
以上の処理を実施することで、実施例２と比べて、さらに検索インデックスの更新対象ファイルの絞り込み精度を向上させることができる。
【実施例４】
【０２１６】
上述した実施例３は、フィールド名をインデクシングした上で、フィールド名を使用したメタデータ検索機能を利用することで、検索インデックス更新対象ファイルの取りこぼしを防ぐものであった。しかし、これらの情報を検索インデックス管理表７４００の中に格納することによって、当該管理表７４００のデータ量が増え、本来の検索サービスで提供すべき検索機能に関する処理性能が悪化する可能性も考えることができる。【０２１７】
このため、フィールド名ならびに当該フィールド名と関連付けられたメタデータ名を検索インデックス管理表７４００の中に格納するのではなく、別途管理する仕組みが必要になる。【０２１８】
そこで、以下では、検索インデックススキーマ管理表７３００のフィールド名７３１０に関連付けられたメタデータ名７２３０について、それぞれどのファイルに存在するのかを示すメタデータ名管理表を検索サーバ１１００に新たに導入し、メタデータ名管理表７６００を使用した差分インデクシングによって検索インデックスを更新する制御の例を実施例４として説明する。【０２１９】
上述のように、メタデータ名管理表７６００を導入し、当該メタデータ名管理表７６００を利用した差分インデクシングによる検索インデックス更新を実施するためには、検索サーバ１１００の構成と、検索インデックス更新処理の一部を変更することに加え、新たにメタデータ名管理表７６００を追加する。これらの内容は、図３０、図３１、図３２Ａ、図３２Ｂで説明する。【０２２０】
図３０は、実施例１の図２で説明した検索サーバ１１００の構成の一部を変更したブロック図である。本構成は、図２で説明した構成と比べて、メモリ１１２０上に新たにメタデータ名管理表７６００を追加している点が異なる。このメタデータ名管理表７６００については後述する。これ以外は、図２の構成と同じである。【０２２１】
図３１は、メタデータ名管理表７６００の構成を示す図である。メタデータ名管理表７６００では、検索対象ファイルに含まれているメタデータ名を抽出し、メタデータ名の抽出結果をもとに、あるメタデータ名を含むファイルがどれなのかを特定するために必要な情報を管理する。【０２２２】
具体的に、メタデータ名管理表７６００は、メタデータＩＤ７６１０と、メタデータ名７６２０と、ファイルリスト７６３０という情報からなる。【０２２３】
メタデータＩＤ７６１０は、メタデータ名を一意に特定するためのものである。これは本メタデータ名管理表７６００の各レコードに機械的に付与された識別番号である。メタデータ名７６２０は、対象ファイルの中に含まれるメタデータ名の文字列を格納する。ファイルリスト７６３０は、当該レコードのメタデータ名７６２０を持つファイルを識別するための情報のリストを格納する。例えば、対象ファイルのファイルパス名を格納してもよいし、対象ファイルのＵＲＬを格納してもよいし、検索インデックス格納ファイル管理表７５００のファイル識別情報７５１０と同じものを格納してもよい。【０２２４】
図３２Ａ、図３２Ｂは、図２６Ａ、図２６Ｂで説明した検索インデックス更新処理のフローチャートの一部を変更したものである。本フローチャートは、図２６２６Ａ、図２６Ｂで説明した検索インデックス更新処理と比べて、対象ファイルから抽出したメタデータ名をメタデータ名管理表７６００に登録する点と、当該メタデータ名管理表７６００を使用して検索インデックス更新対象ファイルを特定できる点が異なる。具体的には、以下で説明する。【０２２５】
図３２Ａ、図３２Ｂのフローチャートにおいて、図２６Ａ、図２６Ｂからの変更点は、図３２Ａに示すステップＳ４０４の後の処理、図３２Ｂに示すステップＳ４０９の後の処理およびステップＳ４０８にてＮｏとなる場合の処理が、図２６Ａ、図２６Ｂの処理に先立ち、ステップＳ４１４という新しい処理を追加している点、ならびに図２６ＢのステップＳ４１１をステップＳ４１５に変更している点である。それ以外は、図２６Ａ、図２６Ｂと同じである。以下、変更した部分に関する説明のみ行う。【０２２６】
ステップＳ４０４の後や、ステップＳ４０９の後や、ステップＳ４０８にてＮｏとなる場合において、インデクシング制御サブプログラム１１７３は、対象ファイルからメタデータ名を抽出して、抽出した情報をメタデータ名管理表７６００に反映させる（ステップＳ４１４、Ｓ４１４Ａ）。この処理は、各対象ファイルのインデクシング処理の一環として行ってもよい。【０２２７】
また、ステップＳ４０６でＹｅｓとなる場合、インデクシング制御サブプログラム１１７３は、ステップＳ４１１のかわりに、メタデータ名管理表７６００を使用し、当該フィールド名ならびに関連付けられたメタデータ名と同じ文字列を含むファイルを検索し、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する（ステップＳ４１５）。ここで、検索結果としてヒットしたファイルのファイル名については、必要に応じてさらなる変換処理を施す。例えば、メタデータ名管理表７６００のファイルリスト７６３０に、検索インデックス登録ファイル管理表７５００におけるファイル識別情報７５１０と同じ情報が格納されている場合、インデクシング制御サブプログラム１１７３は、検索インデックス登録ファイル管理表７５００を使用して、当該ファイル識別情報７５１０に関連付けられているファイルパス名を別途取得する。この処理によって、実施例３のように、検索インデックス管理表７４００にメタデータ名をインデクシングしなくても、実施例３と同程度の精度にて検索インデックス更新対象ファイルを特定できる。【０２２８】
以上の処理を実施することで、実施例３と比べて検索インデックス管理表７４００に格納するデータ量を増やすことなく、実施例３と同じ程度の精度で検索インデックスの更新対象ファイルの絞り込みを行うことができる。
【実施例５】
【０２２９】
上述した実施例４は、検索インデックススキーマ管理表７３００のフィールド名７３１０に関連付けられたメタデータ名７２３０について、それぞれどのファイルに存在するのかを示すメタデータ名管理表７６００を検索サーバ１１００に新たに導入し、メタデータ名管理表７６００を使用した差分インデクシングの処理を示した。この手法を利用する場合、メタデータ名管理表７６００のデータを検索サーバ１１００上に格納する必要がある。検索サーバ１１００における要件として、ストレージに格納可能なデータ量がそれほど多くないシステムの場合、メタデータ名管理表７６００のデータを検索サーバ１１００に格納することは難しい可能性がある。【０２３０】
このため、メタデータ名管理表７６００を検索サーバ１１００にて管理するのではなく、別サーバにて管理する仕組みが必要になる。【０２３１】
そこで、以下では、このメタデータ名管理表７６００を検索対象ファイルが格納されているファイルサーバ２１００に新たに導入し、検索サーバ１１００がメタデータ名管理表７６００を使用した差分インデクシングによって検索インデックスを更新する制御を実施例５として説明する。【０２３２】
上述のように、メタデータ名管理表７６００をファイルサーバ２１００に導入し、メタデータ名管理表７６００を利用した差分インデクシングによる検索インデックス更新を実施するためには、ファイルサーバ２１００のハードウェア構成と、検索インデックス更新処理の一部を変更することに加え、上記実施例１〜実施例４でファイルサーバ２１００にて提供していたファイルアクセス処理において、メタデータ名管理表７６００に関する処理を新たに追加する。これらの内容は、図３３、図３４、図３５Ａ、図３５Ｂで説明する。【０２３３】
図３３は、図３で説明したファイルサーバ２１００の構成の一部を変更したブロック図である。本構成は、実施例１の図３で説明した構成と比べて、メモリ２１２０上に新たにメタデータ名抽出制御プログラム２１２５とメタデータ名管理表７６００を追加している点が異なる。メタデータ名抽出制御プログラム２１２５については後述する。このメタデータ名管理表７６００については前記実施例４の図３１で説明したものと同じである。これ以外は、実施例１の図３の構成と同じである。【０２３４】
図３４は、ファイルサーバ２１００のファイル共有制御プログラム２１２４によって提供されているファイル共有サービスにおけるファイルアクセス処理の一例を示すフローチャートである。本処理では、ファイル共有サービスのクライアント（検索サーバ１１００やクライアントマシン４１００）から要求された各種ファイルアクセス処理を行う。【０２３５】
このファイルアクセス処理を行う時、ファイル共有制御プログラム２１２４はメタデータ名抽出制御プログラム２１２５と連携して、対象ファイルの内容を解析してメタデータ名を抽出し、メタデータ名管理表７６００に反映させる処理を新たに実施する。このメタデータ名抽出制御プログラム２１２５は、公知または周知の文字列解析プログラムなどを利用して、対象ファイルからメタデータ名に相当する文字列を抽出してもよい。【０２３６】
はじめに、ファイル共有制御プログラム２１２４を実行するプロセッサ２１２０は、クライアントから要求されたファイルアクセス処理がファイル新規作成処理もしくは更新処理なのか否かを判定する（ステップＳ６０１）。ここでは、当該ファイルアクセス要求における処理種別情報をもとに、判別を行う。【０２３７】
ファイル新規作成処理もしくは更新処理であった場合（ステップＳ６０１でＹｅｓの場合）、ファイル共有制御プログラム２１２４は、対象ファイルからメタデータ名を抽出し、抽出したメタデータ名をメタデータ名管理表７６００に反映する（ステップＳ６０２）。ここで、メタデータ名の抽出は、メタデータ名抽出制御プログラム２１２５が連携して行う。その後、ファイル共有制御プログラム２１２４は、指定されたファイルアクセス処理を実施して（ステップＳ６０３）、処理を終了する。【０２３８】
ファイル新規作成処理もしくは更新処理でない場合（ステップＳ６０１でＮｏの場合）、ファイル共有制御プログラム２１２４は、クライアントから要求されたファイルアクセス処理がファイル削除処理なのか否かを判定する（ステップＳ６０４）。ファイル削除処理であった場合（ステップＳ６０４でＹｅｓの場合）、ファイル共有制御プログラム２１２４は、削除対象ファイルに関する情報をメタデータ名管理表７６００から削除する（ステップＳ６０５）。その後、ファイル共有制御プログラム２１２４は、指定されたファイルアクセス処理として、対象ファイルの削除を実施して（ステップＳ６０６）、処理を終了する。【０２３９】
ファイル削除処理でない場合（ステップＳ６０４でＮｏの場合）、ファイル共有制御プログラム２１２４は、クライアントから指定されたファイルアクセス処理を実施して（ステップＳ６０７）、処理を終了する。【０２４０】
図３５Ａ、図３５Ｂは、実施例２の図２６Ａ、図２６Ｂで説明した検索インデックス更新処理の一部を変更したフローチャートである。本フローチャートは、図２６Ａ、図２６Ｂで説明した検索インデックス更新処理と比べて、ファイルサーバ２１００上のメタデータ名管理表７６００を使用して検索を行い、検索でヒットしたファイルも検索インデックス更新対象ファイルとして扱う点が異なる。具体的には、以下で説明する。【０２４１】
図３５Ａ、図３５Ｂのフローチャートにおいて、図２６Ａ、図２６Ｂからの変更点は、図３５ＢのステップＳ４０６にてＹｅｓとなる場合の処理が、図２６ＢのステップＳ４１１をステップＳ４１６に変更している点である。それ以外は、図２６Ａ、図２６Ｂと同じである。以下、変更部分に関する説明のみを行う。【０２４２】
図３５ＢのステップＳ４０６でＹｅｓとなる場合、インデクシング制御サブプログラム１１７３は、ステップＳ４１１のかわりに、ファイルサーバ２１００上のメタデータ名管理表７６００を使用し、ステップＳ４１０で取得したフィールド名ならびに関連付けられたメタデータ名と同じ文字列を含むファイルを検索し、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する（ステップＳ４１６）。ここで、検索結果としてヒットしたファイルのファイル名については、メタデータ名管理表７６００のファイルリスト欄７６３０に格納されているファイルパス名を使用する。【０２４３】
以上を実施することで、実施例４と比べて検索サーバ１１００におけるデータ量を削減すると共に、実施例３と同じ程度の精度で検索インデックス更新対象ファイルの絞り込みを行うことができる。また、ファイルサーバ２１００にて検索インデックス更新処理の前に事前にメタデータ名抽出処理を実施できるため、検索インデックス更新処理時におけるステップ数を削減することもできる。
【実施例６】
【０２４４】
上述した実施例５は、メタデータ名管理表７６００をファイルサーバ２１００に管理する例を示した。このメタデータ名管理表７６００は、検索サーバ１１００やファイルサーバ２１００とは別のサーバにて管理してもよい。例えば、メタデータに関するデータを、検索サーバ１１００やファイルサーバ２１００とは別に、新たに設けたメタデータ管理サーバに集約して管理するような計算機システムでは、このメタデータ名管理表７６００を当該メタデータ管理サーバにて管理することを考えることができる。【０２４５】
このため、メタデータ名管理表７６００を、検索サーバ１１００やファイルサーバ２１００とは別の任意のサーバで管理する仕組みが必要になる。【０２４６】
そこで、以下では、このメタデータ名管理表７６００を任意のサーバ（以降では、メタデータ管理サーバ５１００と呼ぶ）に新たに導入し、検索サーバ１１００ならびにファイルサーバ２１００が、メタデータ名管理表７６００を使用し、検索サーバ１１００がメタデータ名管理表７６００を使用した差分インデクシングによる検索インデックスの更新を実施する制御を実施例６として説明する。【０２４７】
上述のように、メタデータ名管理表７６００を検索サーバ１１００やファイルサーバ２１００以外のメタデータ管理サーバ５１００に導入し、メタデータ名管理表７６００を使用した差分インデクシングによる検索インデックスの更新を実施するためには、計算機システムの構成と、検索インデックス更新処理と、ファイルサーバ２１００におけるファイルアクセス処理の一部を変更することに加え、メタデータ管理サーバ５１００を新たに追加する。これらの内容は、図３６、図３７、図３８Ａ、図３８Ｂ、図３９で説明する。【０２４８】
図３６は、実施例１の図１で説明した計算機システム構成の一部を変更したブロック図を示す。本構成は、図１で説明した構成と比べて、メタデータ管理サーバ５１００を追加している点が実施例１と異なる。メタデータ管理サーバ５１００については後述する。このメタデータ管理サーバ５１００は、図３６の例では１台しか示していないが、この限りではない。メタデータ管理サーバ５１００は、複数台存在してもよい。これ以外は、実施例１の図１の構成と同じである。【０２４９】
図３７は、メタデータ管理サーバ５１００の構成を例示するブロック図である。メタデータ管理サーバ５１００は、プログラムを実行するプロセッサ５１１０と、プログラムならびにデータを一時的に格納するメモリ５１２０と、外部記憶装置５１６０にアクセスするための外部記憶装置Ｉ／Ｆ５１３０と、ネットワークで接続された他装置にアクセスするためのネットワークＩ／Ｆ５１４０と、それらを接続するバス５１５０から構成されている。メモリ５１２０には、外部記憶装置Ｉ／Ｆ５１３０を制御するプログラムである外部記憶装置Ｉ／Ｆ制御プログラム５１２１と、ネットワークＩ／Ｆ５１４０を制御するプログラムであるネットワークＩ／Ｆ制御プログラム５１２２と、当該メタデータ管理サーバ５１００において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム５１２３と、メタデータ名抽出制御プログラム５１２４と、メタデータ名管理表７６００が格納される。【０２５０】
図３８Ａ，図３８Ｂは、実施例４の図３２Ａ、図３２Ｂで説明した検索インデックス更新処理の一部を変更したフローチャートを示す。本フローチャートは、図３２で説明した検索インデックス更新処理と比べて、対象ファイルから抽出したメタデータ名をメタデータ管理サーバ５１００上のメタデータ名管理表７６００に登録する点と、メタデータ管理サーバ５１００上のメタデータ名管理表７６００を使用して検索インデックス更新対象ファイルを特定できる点が異なる。具体的には、以下で説明する。【０２５１】
図３８Ａ、図３８Ｂのフローチャートにおいて、図３２Ａ、図３２Ｂからの変更点は、図３２Ａ、図３２ＢのステップＳ４１４、Ｓ４１４ＡをステップＳ４１７、Ｓ４１７Ａに変更している点、ならびに図３２ＢのステップＳ４１５をステップＳ４１８に変更している点である。それ以外は、図３２と同じである。以下、変更部分に関する説明のみ行う。【０２５２】
ステップＳ４０４の後や、ステップＳ４０９の後や、ステップＳ４０８にてＮｏとなる場合において、インデクシング制御サブプログラム１１７３は、ステップＳ４１４にかわって、対象ファイルからメタデータ名を抽出して、抽出した情報をメタデータ管理サーバ５１００上のメタデータ名管理表７６００に反映させる（ステップＳ４１７）。この処理は、各対象ファイルのインデクシング処理の一環として行ってもよい。なお、この処理は、メタデータ名抽出を検索サーバ１１００で行う場合にのみ実施すればよく、ファイルサーバ２１００にてメタデータ名を抽出する場合は実施する必要はない。【０２５３】
また、ステップＳ４０６でＹｅｓとなる場合、インデクシング制御サブプログラム１１７３は、ステップＳ４１５のかわりに、メタデータ管理サーバ５１００上のメタデータ名管理表７６００を使用し、当該フィールド名ならびに関連付けられたメタデータ名と同じ文字列を含むファイルを検索し、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する（ステップＳ４１８）。【０２５４】
図３９は、実施例５の図３４で説明したファイルサーバ２１００におけるファイルアクセス処理の一部を変更したフローチャートを示す。本フローチャートは、実施例５の図３４で説明したファイルアクセス処理と比べて、抽出したメタデータ名をメタデータ管理サーバ５１００上のメタデータ名管理表７６００に反映させる点と、ファイル削除処理の際に、削除対象ファイルに関する情報をメタデータ管理サーバ５１００上のメタデータ名管理表７６００から削除する点が異なる。具体的には、以下で説明する。【０２５５】
図３９のフローチャートにおいて、実施例５の図３４からの変更点は、図３４のステップＳ６０２をステップＳ６０８に変更している点、ならびに図３４のステップＳ６０５をステップＳ６０９に変更している点である。それ以外は、実施例５の図３４と同じである。以下、変更部分に関する説明のみ行う。【０２５６】
ステップＳ６０１でＹｅｓとなる場合、ファイル共有制御プログラム２１２４は、ステップＳ６０２にかわって、対象ファイルからメタデータ名を抽出し、メタデータ管理サーバ５１００上のメタデータ名管理表７６００に反映する（ステップＳ６０８）。なお、この処理は、メタデータ名抽出をファイルサーバ２１００で行う場合にのみ実施すればよく、検索サーバ１１００にてメタデータ名を抽出する場合は実施する必要はない。【０２５７】
また、ステップＳ６０４でＹｅｓとなる場合、ファイル共有制御プログラム２１２４は、ステップＳ６０５にかわって、メタデータ管理サーバ５１００上のメタデータ名管理表７６００から削除対象ファイルに関する情報を削除する（ステップＳ６０９）。なお、この処理は、メタデータ名抽出をファイルサーバ２１００で行う場合にのみ実施すればよく、検索サーバ１１００にてメタデータ名を抽出する場合は実施する必要はない。【０２５８】
以上の処理を実施することで、検索サーバ１１００やファイルサーバ２１００とは別のメタデータ管理サーバ５１００にてメタデータ名管理表７６００を提供するとともに、実施例３と同じ程度の精度で検索インデックス更新対象ファイルの絞り込みを行うことができる。
【実施例７】
【０２５９】
上述した実施例６は、メタデータ名管理表７６００に登録するためのメタデータ抽出処理を、検索サーバ１１００あるいはファイルサーバ２１００にて行う例を示した。このメタデータ抽出処理は、検索サーバ１１００やファイルサーバ２１００とは別のサーバにて行ってもよい。例えば、ファイルサーバ２１００上のファイルを定期的にクローリングして、対象ファイルからメタデータを抽出するようなメタデータ抽出サーバが存在してもよいし、ファイルサーバ２１００にファイルを格納する際に、リバースプロキシサーバを経由するようなシステム構成にした上で、当該リバースプロキシサーバがメタデータ抽出サーバの役割も担って対象ファイルからメタデータを抽出してもよい。メタデータ抽出サーバを別サーバとすることで、例えば、メタデータ抽出処理に関する処理を負荷分散することも可能になる。【０２６０】
このため、メタデータ抽出処理を検索サーバ１１００やファイルサーバ２１００とは別の任意のサーバで実施する仕組みが必要になる。【０２６１】
そこで、以下では、任意のサーバ（以降では、メタデータ抽出サーバと呼ぶ）を新たに導入し、当該メタデータ抽出サーバにて対象ファイルのメタデータ名を抽出し、抽出した情報をメタデータ名管理表７６００に格納する制御方法を実施例７として説明する。【０２６２】
なお、当該メタデータ抽出サーバでは、メタデータ名の抽出だけでなく、任意の情報を抽出してもよい。また、抽出した情報をメタデータ名管理表７６００に反映させるだけでなく、任意の管理表などに情報を反映させてもよい。【０２６３】
上述のように、メタデータ抽出サーバを新たに導入し、そこでメタデータ名抽出を行うためには、システム構成の一部を変更することに加え、メタデータ抽出サーバとメタデータ抽出処理を新たに追加する。これらの内容は、図４０、図４１、図４２で説明する。【０２６４】
図４０は、実施例６の図３６で説明した計算機システムに構成の変更を加えたブロック図である。本構成は、実施例６の図３６で説明した構成に比べて、メタデータ抽出サーバ６１００を追加している点が異なる。メタデータ抽出サーバ６１００については後述する。このメタデータ抽出サーバ６１００は、図の例では１台しか示していないが、この限りではない。メタデータ抽出サーバ６１００は、複数台存在してもよい。これ以外は、図３６の構成と同じである。【０２６５】
図４１は、メタデータ抽出サーバ６１００の構成を例示する説明図である。メタデータ抽出サーバ６１００は、プログラムを実行するプロセッサ６１１０と、プログラムならびにデータを一時的に格納するメモリ６１２０と、外部記憶装置６１６０にアクセスするための外部記憶装置Ｉ／Ｆ６１３０と、ネットワークで接続された他装置にアクセスするためのネットワークＩ／Ｆ６１４０と、それらを接続するバス６１５０から構成されている。【０２６６】
メモリ６１２０には、外部記憶装置Ｉ／Ｆ６１３０を制御するプログラムである外部記憶装置Ｉ／Ｆ制御プログラム６１２１と、ネットワークＩ／Ｆ６１４０を制御するプログラムであるネットワークＩ／Ｆ制御プログラム６１２２と、当該メタデータ抽出サーバ６１００において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム６１２３と、メタデータ名抽出制御プログラム６１２４が格納される。【０２６７】
このメタデータ名抽出制御プログラム６１２４は、公知または周知の文字列解析プログラムなどを利用して、対象ファイルからメタデータ名に相当する文字列を抽出してもよい。なお、このメタデータ抽出サーバ６１００にて、メタデータ名管理表７６００を管理してもよい。【０２６８】
図４２は、メタデータ抽出サーバ６１００のメタデータ抽出制御プログラム６１２４によって提供されているメタデータ抽出処理の流れを示す。本処理では、メタデータ抽出制御プログラム６１２４を実行するプロセッサ６１１０が抽出対象となるファイルを取得し、メタデータの抽出処理と抽出したメタデータの出力処理を行う。【０２６９】
はじめに、メタデータ抽出制御プログラム６１２４を実行するプロセッサ６１１０は、メタデータ抽出対象ファイルを受信する（ステップＳ７０１）。なお、メタデータ抽出制御プログラム６１２４がどのように抽出対象ファイルを特定して取得するのかについては、公知または周知の手法を用いればよいのでここでは詳述しない。メタデータ抽出サーバ６１００が抽出対象ファイルを格納したファイルサーバ２１００のファイルシステム２１７０を定期的にクローリングしてもよいし、ファイルサーバ２１００などから更新対象ファイルを送信してもよいし、ファイルサーバ２１００におけるファイルアクセス操作のリバースプロキシサーバとして位置づけることにより、各ファイルアクセス操作の中で対象ファイルの情報を取得してもよい。【０２７０】
次に、メタデータ抽出制御プログラム６１２４は、対象ファイルからメタデータを抽出し、所定の処理を実行して所定の場所（計算機）に抽出結果を出力する（ステップＳ７０２）。例えば、抽出したメタデータの名前と値のペアを検索サーバ１１００に送ることで、検索サーバ１１００がメタデータ検索のために当該メタデータ一式をインデクシングしてもよい。もちろん、出力先は、自サーバ６１００内でもよいし、リモートのサーバでもよい。出力方法ならびに出力形式は、出力先で受付可能な方法や形式を選択することができる。【０２７１】
次に、メタデータ抽出制御プログラム６１２４は、メタデータ名管理表７６００を持つサーバ（５１００）に対して、抽出したメタデータ名を反映する（ステップＳ７０３）。このメタデータ名管理表７６００は任意のサーバでよく、ローカルのサーバでもリモートのサーバでもよい。この処理により、検索サーバ１１００が差分インデクシングによる検索インデックス更新処理を行う際に、検索インデックス更新対象ファイルの特定のために、当該メタデータ名管理表７６００に格納されている情報を利用することができる。【０２７２】
以上の処理を実施することで、検索サーバ１１００やファイルサーバ２１００とは別のメタデータ抽出サーバ６１００にてメタデータ抽出処理を行うことができる。これにより、メタデータ抽出処理の負荷分散などを実現できる。
【実施例８】
【０２７３】
上述した実施例２は、検索サーバ１１００が差分インデクシングにて検索インデックス更新処理を行う際に、検索サーバ１１００からファイルサーバ２１００上の全ファイルをクロールし、対象ファイルの最終更新日時を確認した上で、検索インデックスの更新対象ファイルを特定していた。しかし、かかる検索インデックスの更新対象ファイルの特定を、ファイルサーバ２１００側にて行う方法もある。具体的には、ファイルサーバ２１００において、格納されたファイルに対するファイル操作履歴を保管する。このファイル操作履歴には、ファイルに対する作成、更新、削除、参照といった操作種別も付与しておく。【０２７４】
ファイルサーバ２１００は、かかるファイル操作履歴をもとにした検索サービスを提供する。具体的には、当該ファイルサーバ２１００において、任意の日時以降に作成、更新、および削除されたファイルの一覧が欲しい場合、かかる検索条件を指定することで、検索結果としてかかる検索条件に合致するファイルのリストを提供できる。【０２７５】
この仕組みを検索サーバ１１００が利用できれば、前回のインデックス更新日時を検索条件に指定して、当該日時以降に作成、更新、削除されたファイルのリストをファイルサーバ２１００に対して要求し、かかる検索条件のファイルリストを取得することができる。これが利用できれば、検索対象ファイル全てをクローリングする必要がなくなるため、検索サーバ１１００側における差分インデクシング処理をさらに効率よく実施できる。【０２７６】
このため、ファイルサーバ２１００には、当該ファイルサーバにおけるファイル操作履歴を保管し、ファイル操作履歴を検索する仕組み（以降、Ｃｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御と呼ぶ）が必要となる。【０２７７】
そこで、以下では、ファイルサーバ２１００にてファイルに対する操作履歴を保管し、操作履歴を検索できるようにした上で、検索サーバ１１００が検索インデックススキーマ管理表７３００を更新した後で、差分インデクシングによる検索インデックス更新処理を行う際に、検索インデックス更新対象ファイルの特定のためにかかる検索機能を利用する制御を実施例８として説明する。【０２７８】
上述のように、ファイルサーバ２１００においてＣｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎを実施し、このＮｏｔｉｆｉｃａｔｉｏｎを利用して差分インデクシングによる検索インデックス更新処理を行うためには、ファイルサーバのハードウェア構成と、検索インデックス更新処理の一部を変更することに加え、ファイル更新リスト管理表と、ファイル更新リスト登録処理と、ファイル更新リスト問合せ処理を新たに追加する。これらの内容は、図４３、図４４、図４５、図４６Ａ、図４６Ｂ、図４７で説明する。【０２７９】
図４３は、実施例１の図３で説明したファイルサーバ２１００の構成の一部を変更したブロック図を示す。本構成は、図３で説明した構成と比べて、メモリ１１２０上に新たにＣｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御プログラム２１２６とファイル更新リスト管理表７７００を追加している点が異なる。Ｃｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御プログラム２１２６とファイル更新リスト管理表７７００については後述する。これ以外は、実施例１の図３の構成と同じである。【０２８０】
図４４は、ファイルサーバ２１００上で管理されるファイル更新リスト管理表７７００の構成を例示する図である。ファイル更新リスト管理表７７００では、ファイルサーバ２１００において、ユーザ（クライアントマシン４１００）からの要求によってファイルが新規に作成されたり、ファイルが更新されたり、ファイルが削除されたりした場合に、変更または削除されたときのイベント情報を記録し、管理する。具体的に、ファイル更新リスト管理表７７００は、発生日時７７１０と、操作種別７７２０と、オブジェクト種別７７３０と、パス名７７４０などという構成要素からなる。【０２８１】
ここで、発生日時７７１０は、作成や更新や削除に関するイベントが発生した日時に関する情報を格納する。【０２８２】
操作種別７７２０は、当該イベントの種別に関する情報を格納する。具体的には、作成や更新や削除といった種別を登録する。なお、ここで更新については、更新が発生した対象を特定する情報を追加してもよい。例えば、ファイルのデータ更新とメタデータ更新を分けたい場合には、この操作種別７７２０の欄に、データ更新、メタデータ更新という種別を登録してもよい。【０２８３】
オブジェクト種別７７３０は、当該イベントが発生した対象を分類する種別に関する情報を格納する。具体的には、ファイルシステムを使用している場合、ファイルやディレクトリといった種別を登録する。データベースを使用している場合、レコードやカラムやタプルといった種別を登録する。【０２８４】
最後に、パス名７７４０は、当該イベントが発生したオブジェクトにアクセスするために必要な情報を格納する。具体的には、ファイルシステムを使用している場合、対象ファイルのパス名やノード番号といった情報を格納してもよい。また、データベースを使用している場合。対象レコードの識別レコード番号といった情報を格納してもよい。【０２８５】
図４５は、ファイルサーバ２１００のデータ制御プログラム２１２３にて管理するファイルシステムに対してファイルアクセスがなされた時において、データ制御プログラム２１２３とＣｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御プログラム２１２６が連携して行うファイル更新リスト登録処理の流れを示すフローチャートである。Ｃｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御プログラム２１２６は、常時データ制御プログラム２１２３におけるファイルアクセス操作について監視を行い、ファイル更新リストの登録が必要なイベントが発生した際に、以下に説明するような所定の動作を行う。【０２８６】
はじめに、データ制御プログラム２１２３を実行するプロセッサ２１１０は、ファイルシステムに対するファイルアクセス要求を受けた後、当該ファイルシステムに対して所定の操作を実行する（ステップＳ８０１）。例えば、ファイル作成要求だった場合は、指定された名前のファイルを作成する。ファイル更新要求だった場合は、指定されたファイルに対して指定された更新内容を反映する。ファイル削除要求だった場合は、指定されたファイルを削除する。ここでは、ファイルを対象にした操作だけでなく、ディレクトリを対象にした操作もファイル更新リスト登録処理を行う範囲に含むものとする。【０２８７】
次に、データ制御プログラム２１２３は、対象ファイルに対する操作種別は、作成、更新あるいは削除か否かを判定する（ステップＳ８０２）。すなわち、ステップＳ８０２では、当該ファイル操作がファイル更新リスト登録を行うイベントか否かを判定する。【０２８８】
ファイル更新リスト登録を行うイベントであると判断した場合（ステップＳ８０２でＹｅｓの場合）、データ制御プログラム２１２３はＣｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御プログラム２１２６に通知し、当該ファイル操作をファイル更新リスト管理表７７００に登録し（ステップＳ８０３）、処理を終了する。ファイル更新リスト登録を行うイベントでないと判断した場合（ステップＳ８０２でＮｏの場合）は、そのまま処理を終了する。【０２８９】
図４６Ａ、図４６Ｂは、実施例２の図２６Ａ、図２６Ｂで説明した検索インデックス更新処理の一部を変更したフローチャートを示す。本フローチャートは、図２６Ａ、図２６Ｂで説明した検索インデックス更新処理と比べて、ファイルサーバ２１００上のＣｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御プログラム２１２６を使用して検索を行い、検索インデックスの更新対象ファイルを特定できる点が異なる。具体的には、以下で説明する。【０２９０】
図４６Ａ、図４６Ｂのフローチャートにおいて、図２６Ａ、図２６Ｂからの変更点は、ステップＳ４１０の次に行う図２６Ｂの一連の処理（ステップＳ４０６、Ｓ４０７、Ｓ４０８、Ｓ４０９）をステップＳ４１９に変更している点である。それ以外は、図２６Ａ、図２６Ｂと同じである。以下、変更した部分に関する説明のみを行う。【０２９１】
ステップＳ４１０による処理が終わった後、インデクシング制御サブプログラム１１７３は、図２６ＢのステップＳ４０６からステップＳ４０９のかわりに、ファイルサーバ２１００に対してファイル更新リストの問合せ処理を実行する（ステップＳ４１９）。ここでは、前回の検索インデックス更新日時よりも後に新規作成、更新および削除されたファイルで構成されるリストの提供を要求する。ファイル更新リスト問合せ処理については後述する。【０２９２】
この処理が終わった後、図２６ＢのステップＳ４０９において、インデクシング制御サブプログラム１１７３は、ファイル更新リスト問合せ処理によって取得したファイルリストに記載されているファイル名を、検索インデックス更新対象リストに追加する。【０２９３】
図４７は、図４６ＢにおけるステップＳ４１９のファイル更新リストの問合せ処理の流れを示すフローチャートである。はじめに、インデクシング制御サブプログラム１１７３は、当該検索サーバ１１００が所望のインデックス更新対象ファイルのリストを全て取得できたか否かを判断する（ステップＳ９０１）。ここでは、インデックス更新対象リストを分割して取得するケースもあるため、分割して取得する全ての要素を取得し終わったか否かを判断する。全て取得できた場合（ステップＳ９０１でＹｅｓの場合）、本処理は終了する。【０２９４】
全て取得できていない場合（ステップＳ９０１でＮｏの場合）、インデクシング制御サブプログラム１１７３は、ファイル更新リストの取得条件と共に、ファイル更新リスト問合せ要求をファイルサーバ２１００に送信する（ステップＳ９０２）。ここでは、当該問合せ要求を行う際に、当該検索サーバ１１００にて前回検索インデックス更新を行った日時についての情報を取得条件として指定して送信する。【０２９５】
問合せを受信したファイルサーバ２１００上のＣｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御プログラム２１２６は、ファイル更新リスト７７００を検索し、指定された取得条件に合致するレコードを抽出する（ステップＳ９０３）。【０２９６】
その後、Ｃｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御プログラム２１２６は、抽出したレコードに関する情報を要求元が処理可能な形式に変換した上で、要求元である検索サーバ１１００に提供する（ステップＳ９０４）。その後は、ステップＳ９０１に戻り、上記処理を繰り返す。【０２９７】
以上の処理を実施することで、ファイルサーバ２１００においてＣｈａｎｇｅ  Ｆｉｌｅ  Ｎｏｔｉｆｉｃａｔｉｏｎ制御を行う場合、検索サーバ１１００によって全ファイルクローリングをすることなく、検索サーバ１１００が差分インデクシングによる検索インデックス更新処理を効率よく実施できる。【０２９８】
したがって、検索インデックススキーマ管理表７３００のフィールドを更新した後に検索インデックス更新を行う場合においても、当該検索インデックスの更新処理を効率よく実施できる。
【図１】
2014010082.tif 000003
【図２】
2014010082.tif 000004
【図３】
2014010082.tif 000005
【図４】
2014010082.tif 000006
【図５】
2014010082.tif 000007
【図６】
2014010082.tif 000008
【図７】
2014010082.tif 000009
【図８】
2014010082.tif 000010
【図９】
2014010082.tif 000011
【図１０】
2014010082.tif 000012
【図１１Ａ】
2014010082.tif 000013
【図１１Ｂ】
2014010082.tif 000014
【図１２】
2014010082.tif 000015
【図１３】
2014010082.tif 000016
【図１４】
2014010082.tif 000017
【図１５】
2014010082.tif 000018
【図１６】
2014010082.tif 000019
【図１７】
2014010082.tif 000020
【図１８】
2014010082.tif 000021
【図１９】
2014010082.tif 000022
【図２０】
2014010082.tif 000023
【図２１】
2014010082.tif 000024
【図２２】
2014010082.tif 000025
【図２３】
2014010082.tif 000026
【図２４】
2014010082.tif 000027
【図２５】
2014010082.tif 000028
【図２６Ａ】
2014010082.tif 000029
【図２６Ｂ】
2014010082.tif 000030
【図２７】
2014010082.tif 000031
【図２８Ａ】
2014010082.tif 000032
【図２８Ｂ】
2014010082.tif 000033
【図２９Ａ】
2014010082.tif 000034
【図２９Ｂ】
2014010082.tif 000035
【図３０】
2014010082.tif 000036
【図３１】
2014010082.tif 000037
【図３２Ａ】
2014010082.tif 000038
【図３２Ｂ】
2014010082.tif 000039
【図３３】
2014010082.tif 000040
【図３４】
2014010082.tif 000041
【図３５Ａ】
2014010082.tif 000042
【図３５Ｂ】
2014010082.tif 000043
【図３６】
2014010082.tif 000044
【図３７】
2014010082.tif 000045
【図３８Ａ】
2014010082.tif 000046
【図３８Ｂ】
2014010082.tif 000047
【図３９】
2014010082.tif 000048
【図４０】
2014010082.tif 000049
【図４１】
2014010082.tif 000050
【図４２】
2014010082.tif 000051
【図４３】
2014010082.tif 000052
【図４４】
2014010082.tif 000053
【図４５】
2014010082.tif 000054
【図４６Ａ】
2014010082.tif 000055
【図４６Ｂ】
2014010082.tif 000056
【図４７】
2014010082.tif 000057
【国際調査報告】
2014010082.tif 000058
2014010082.tif 000059