特許第5843965号(P5843965)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立ソリューションズの特許一覧

特許5843965検索装置、検索装置の制御方法及び記録媒体
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5843965
(24)【登録日】2015年11月27日
(45)【発行日】2016年1月13日
(54)【発明の名称】検索装置、検索装置の制御方法及び記録媒体
(51)【国際特許分類】
   G06F 17/30 20060101AFI20151217BHJP
【FI】
   G06F17/30 320C
   G06F17/30 220C
【請求項の数】18
【全頁数】60
(21)【出願番号】特願2014-524573(P2014-524573)
(86)(22)【出願日】2012年7月13日
(86)【国際出願番号】JP2012067942
(87)【国際公開番号】WO2014010082
(87)【国際公開日】20140116
【審査請求日】2014年10月1日
(73)【特許権者】
【識別番号】000233055
【氏名又は名称】株式会社日立ソリューションズ
(74)【代理人】
【識別番号】110001678
【氏名又は名称】特許業務法人藤央特許事務所
(72)【発明者】
【氏名】石井 陽介
(72)【発明者】
【氏名】児玉 昇司
【審査官】 野崎 大進
(56)【参考文献】
【文献】 特開2001−092844(JP,A)
【文献】 特開2007−072526(JP,A)
【文献】 特開2007−257083(JP,A)
【文献】 特開2000−224257(JP,A)
【文献】 特開2007−193532(JP,A)
【文献】 米国特許出願公開第2006/0085465(US,A1)
【文献】 米国特許出願公開第2006/0026567(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
プロセッサとメモリとを備えてデータの検索を行う検索装置であって、
前記検索装置は、
メタデータを含む検索対象のファイルの構造を定義したメタデータスキーマ定義を管理するメタデータスキーマ管理情報と、
検索インデックスデータの構造を定義した検索インデックススキーマ定義を管理する検索インデックススキーマ管理情報と、
前記メタデータスキーマ定義情報と前記検索インデックススキーマ定義との対応関係を管理するスキーママッピング管理情報と、
検索要求を受け付けて前記スキーママッピング管理情報及び前記検索インデックス管理情報を参照して前記検索要求に合致するファイルを抽出する検索制御部と、を備え、
前記メタデータスキーマ管理情報は、
当該メタデータスキーマ定義を識別するネームスペースの別名とメタデータ名を含み、
前記検索インデックススキーマ定義は、
前記検索対象のファイルのフィールド名を含み、
前記スキーママッピング管理情報は、
前記メタデータ名とフィールド名の対応関係を含み、
前記検索制御部は、
前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出し、
前記メタデータスキーマ管理情報を参照して、前記別名をメタデータ名に変換し、
前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定することを特徴とする検索装置。
【請求項2】
請求項1に記載の検索装置であって、
前記検索インデックススキーマ定義で設定されたフィールド名とファイルの対応関係を保持する検索インデックス管理情報をさらに有し、
前記検索制御部は、
前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出し、
前記メタデータスキーマ管理情報を参照して、前記別名からメタデータ名を特定し、
前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定し、
前記検索インデックス管理情報を参照して、前記特定したフィールド名に合致するファイルを特定することを特徴とする検索装置。
【請求項3】
請求項2に記載の検索装置であって、
前記検索制御部は、
前記検索インデックススキーマ定義を登録する際に、前記フィールド名毎に前記検索インデックス管理情報を作成するか否かを識別する情報を受け付け、前記作成する情報を受け付けたときに前記フィールド名を前記検索インデックス管理情報に登録することを特徴とする検索装置。
【請求項4】
請求項1に記載の検索装置であって、
前記メタデータスキーマ管理情報は、
前記検索制御部が一意に識別可能なネームスペースの別名を格納することを特徴とする検索装置。
【請求項5】
請求項2に記載の検索装置であって、
前記検索インデックススキーマ管理情報は、
前記検索インデックススキーマ定義が更新、作成または削除の何れかの操作が行われた日時を格納する更新日時情報を含み、
前記検索制御部は、
前記更新日時情報の値が所定の条件を満たすフィールド名を特定し、前記特定したフィールド名に対応するファイルを前記検索インデックス管理情報から更新対象ファイルとして特定し、前記特定した更新対象ファイルについて前記検索インデックス管理情報の値を更新する差分インデクシングを実行することを特徴とする検索装置。
【請求項6】
請求項2に記載の検索装置であって、
前記検索制御部は、
前記検索インデックス管理情報の値を更新するファイルをクローリングにより更新対象ファイルとして特定し、前記特定した更新対象ファイルについて前記検索インデックス管理情報の値を更新することを特徴とする検索装置。
【請求項7】
請求項2に記載の検索装置であって、
前記検索装置は、前記検索対象のファイルを格納するファイルサーバに接続され、
前記ファイルサーバは、
前記検索対象のファイルに対する操作履歴を蓄積し、前記操作履歴が所定の条件に合致するファイルを更新対象ファイルとして特定し、
前記検索制御部は、
前記ファイルサーバが特定した前記更新対象ファイルについて前記検索インデックス管理情報の値を更新することを特徴とする検索装置。
【請求項8】
請求項5に記載の検索装置であって、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、全ての前記更新対象ファイルについて前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項9】
請求項5に記載の検索装置であって、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、前記更新対象ファイルの全てのメタデータ名を抽出してインデクシングし、前記検索インデックススキーマ定義のフィールド名に関連付けられたメタデータ名と同じ文字列をメタデータ名として含むファイルを検索し、当該検索結果としてヒットしたファイルを更新対象ファイルとして前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項10】
請求項5に記載の検索装置であって、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを格納するメタデータ名管理情報を有し、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、前記検索インデックススキーマ定義のフィールド名に関連付けられたメタデータ名と同じ文字列を含むファイルを前記メタデータ名管理情報から検索し、当該検索結果としてヒットしたファイルを更新対象ファイルとして前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項11】
請求項5に記載の検索装置であって、
前記検索装置は、前記検索対象のファイルを格納するファイルサーバに接続され、
前記ファイルサーバは、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを格納するメタデータ名管理情報を有し、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、前記検索インデックススキーマ定義のフィールド名に関連付けられたメタデータ名と同じ文字列を含むファイルを前記ファイルサーバのメタデータ名管理情報から検索し、当該検索結果としてヒットしたファイルを更新対象ファイルとして前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項12】
請求項5に記載の検索装置であって、
前記検索装置は、メタデータ管理サーバに接続され、
前記メタデータ管理サーバは、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを格納するメタデータ名管理情報を有し、
前記検索制御部は、
前記検索インデックススキーマ定義を更新した後に、前記検索インデックススキーマ定義のフィールド名に関連付けられたメタデータ名と同じ文字列を含むファイルを前記メタデータ管理サーバのメタデータ名管理情報から検索し、当該検索結果としてヒットしたファイルを更新対象ファイルとして前記検索インデックス管理情報の値を更新し、前記更新された検索インデックススキーマ定義に対応するファイルの情報を前記検索インデックス管理情報に取り込むことを特徴とする検索装置。
【請求項13】
請求項5に記載の検索装置であって、
前記検索装置は、前記検索対象のファイルを格納するファイルサーバに接続され、
前記ファイルサーバは、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを抽出することを特徴とする検索装置。
【請求項14】
請求項5に記載の検索装置であって、
前記検索装置は、メタデータを抽出するメタデータ抽出サーバに接続され、
前記メタデータ抽出サーバは、
前記検索インデックススキーマ管理情報のフィールド名に関連付けられたメタデータ名が存在するファイルを抽出することを特徴とする検索装置。
【請求項15】
プロセッサとメモリとを備えてデータの検索を行う検索装置の制御方法であって、
前記検索装置は、
メタデータを含む検索対象のファイルの構造を定義したメタデータスキーマ定義を識別するネームスペースの別名とメタデータ名を含んで管理するメタデータスキーマ管理情報と、
前記検索対象のファイルのフィールド名を含んで検索インデックスデータの構造を定義した検索インデックススキーマ定義を管理する検索インデックススキーマ管理情報と、
前記メタデータスキーマ定義情報の前記メタデータ名と、前記検索インデックススキーマ定義の前記フィールド名の対応関係を管理するスキーママッピング管理情報と、を有し、
前記検索装置が、検索要求を受け付ける第1のステップと、
前記検索装置が、前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出する第2のステップと、
前記検索装置が、前記メタデータスキーマ管理情報を参照して、前記別名をメタデータ名に変換する第3のステップと、
前記検索装置が、前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定する第4のステップと、
を含むことを特徴とする検索装置の制御方法。
【請求項16】
請求項15に記載の検索装置の制御方法であって、
前記検索装置は、
検索インデックススキーマ定義で設定されたフィールド名とファイルの対応関係を保持する検索インデックス管理情報をさらに有し、
前記検索装置が、前記検索インデックス管理情報を参照して、前記特定したフィールド名に合致するファイルを特定する第5のステップをさらに含むことを特徴とする検索装置の制御方法。
【請求項17】
プロセッサとメモリとを備えてデータの検索を行う計算機のプログラムを格納する非一時的な記録媒体であって、
前記計算機は、
メタデータを含む検索対象のファイルの構造を定義したメタデータスキーマ定義を識別するネームスペースの別名とメタデータ名を含んで管理するメタデータスキーマ管理情報と、
前記検索対象のファイルのフィールド名を含んで検索インデックスデータの構造を定義した検索インデックススキーマ定義を管理する検索インデックススキーマ管理情報と、
前記メタデータスキーマ定義情報の前記メタデータ名と、前記検索インデックススキーマ定義の前記フィールド名の対応関係を管理するスキーママッピング管理情報と、を有し、
前記プログラムは、
検索要求を受け付ける第1のステップと、
前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出する第2のステップと、
前記メタデータスキーマ管理情報を参照して、前記別名をメタデータ名に変換する第3のステップと、
前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定する第4のステップと、
を前記計算機に実行させることを特徴とする非一時的な記録媒体。
【請求項18】
請求項17に記載の非一時的な記録媒体であって、
前記計算機は、
検索インデックススキーマ定義で設定されたフィールド名とファイルの対応関係を保持する検索インデックス管理情報をさらに有し、
前記プログラムは、
前記検索インデックス管理情報を参照して、前記特定したフィールド名に合致するファイルを特定する第5のステップをさらに含むことを特徴とする非一時的な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイルストレージシステムに格納されているファイル群を検索する機能を提供する検索サーバの制御方法に関するものである。
【背景技術】
【0002】
コンピュータの高性能化ならびに低価格化により、様々な業種や用途においてコンピュータの利用が広がっている。近年では、コンピュータシステムに保管されるデータファイルの数が膨大になっている。このように大量のファイルを管理する場合、利用者にとって欲しいファイルがどこに格納されているのかがわからなくなるという問題も発生している。
【0003】
この問題に対しては、全文検索サービスやメタデータ検索サービスが利用されるようになってきている。
【0004】
全文検索サービスは、コンピュータシステムに格納されているファイルデータを検索サーバが解析し、検索インデックスを事前に作成する。利用者は、検索サーバに対して取得したいファイルを検索するための検索クエリを送信し、検索サーバが応答した検索結果をもとに対象ファイルにアクセスすることができる。
【0005】
メタデータ検索サービスは、検索対象ファイルに含まれるメタデータ名ならびにメタデータ値の組からなるデータを抽出し、データの検索インデックスを事前に作成する。利用者は、検索サーバに対して、当該メタデータ名とメタデータ値に関する検索条件を指定することで、当該検索結果を取得することができる。
【0006】
このような検索サービスは、今後、コンピュータシステムに格納するファイルデータ数がさらに増加することが考えられる上、利用者自身がどこにどのようなファイルデータを格納しているのかを全て把握することは困難になるため、利用者にとってさらに重要なサービスとなり、検索サービスの利用はさらに広がるものと考えられる。
【0007】
従来、メタデータ検索サービスを提供する検索サーバにおいては、メタデータ検索対象データフォーマットやデータスキーマに関する定義情報をもとに、どのようなメタデータをインデクシングして検索するか、といった定義情報を事前に登録する必要がある。この定義情報には、メタデータの名前を識別するためのメタデータ名や、メタデータが取りうる値やデータ構造を規定するためのメタデータ形式といった情報が必要になる。
【0008】
また、メタデータ検索の対象となるデータフォーマットは一種類だけではなく、複数のデータフォーマットを対象にするケースも十分考えられる。このようなケースでは、検索サーバに対して、各データフォーマットにおけるメタデータに関する定義情報を登録する必要がある。
【0009】
複数のデータフォーマットに関するメタデータに関する定義情報を管理できるようにする一つの方法として、検索サーバ側で複数のデータフォーマットの定義情報と、複数のデータフォーマットを統合的に管理するためのマッピング定義情報を管理するという技術が知られている。このような技術については、例えば、特許文献1に内容が開示されている。この特許文献1の技術では、複数のデータフォーマットにおけるメタデータ名を、統一的な表記で表現できる。これにより、検索サーバは、統一的な表記方法に基づいてメタデータにアクセスできるため、統一的な表記を利用したインデクシングや検索を行うことが可能になる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】米国特許第7,725,454号明細書
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上記特許文献1記載の技術では、複数のデータフォーマットに関するメタデータを統一的な表記で扱える反面、特定のメタデータを持つファイルの識別が難しいという問題が起こりえる。
【0012】
これは、検索サーバが統一的な表記でメタデータ名を管理しているため、利用者が検索サービスを利用するときには、元々のメタデータ名を利用するか、あるいは検索サーバによって利用されている統一表記のメタデータ名を利用するしか選択肢がないことに起因する。
【0013】
前者のメタデータ名を利用する場合では、複数のデータフォーマット間で同名のメタデータ名が存在する場合、その区別が難しい。したがって、メタデータ検索を行った場合に、同名だが使われ方が違うメタデータ名を持つファイルまで検索結果に含まれてしまい、所望の結果を取得することが難しくなる。
【0014】
また、後者の統一表記のメタデータ名を利用する場合では、統一表記におけるデータフォーマット間のメタデータ名の衝突を防ぐために、機械的に長い文字列の名前が付与されることになる。利用者が直接この名前を指定して利用する場合では、検索サービスの利便性を損なってしまうことになるため、結果として特定のメタデータを持つファイルを識別することが難しくなる。
【0015】
以上より、利用者が検索サービスを利用する際に、検索結果として、所望のメタデータを持つファイルを効率よく取得できるようにするためには、特定のメタデータを持つファイルの識別を容易に直接的に行うための制御技術が必要になる。
【課題を解決するための手段】
【0016】
本発明は、プロセッサとメモリとを備えてデータの検索を行う検索装置であって、前記検索装置は、メタデータを含む検索対象のファイルの構造を定義したメタデータスキーマ定義を管理するメタデータスキーマ管理情報と、検索インデックスデータの構造を定義した検索インデックススキーマ定義を管理する検索インデックススキーマ管理情報と、前記メタデータスキーマ定義情報と前記検索インデックススキーマ定義との対応関係を管理するスキーママッピング管理情報と、検索要求を受け付けて前記スキーママッピング管理情報及び前記検索インデックス管理情報を参照して前記検索要求に合致するファイルを抽出する検索制御部と、を備え、前記メタデータスキーマ管理情報は、当該メタデータスキーマ定義を識別するネームスペースの別名とメタデータ名を含み、前記検索インデックススキーマ定義は、前記検索対象のファイルのフィールド名を含み、前記スキーママッピング管理情報は、前記メタデータ名とフィールド名の対応関係を含み、前記検索制御部は、前記検索要求から、前記別名とメタデータ名の少なくとも一方を抽出し、前記メタデータスキーマ管理情報を参照して、前記別名をメタデータ名に変換し、前記スキーママッピング管理情報を参照して、前記メタデータ名からフィールド名を特定する。
【発明の効果】
【0017】
本発明によれば、メタデータ検索で指定する検索条件として、データフォーマットのオリジナルのメタデータ名や、検索サーバが付与するメタデータ名だけでなく、検索時の利便性を考慮した別名も設定することが可能となる。これにより、検索装置は、検索対象データのデータフォーマットが異なっていても、特定のメタデータを持つファイルを容易に識別することが可能となって、所望のメタデータを持つファイルで検索サービスを提供することが可能となる。
【図面の簡単な説明】
【0018】
図1】本発明の第1の実施例を示し、計算機システムの一例を示すブロック図である。
図2】本発明の第1の実施例を示し、管理サーバの機能部位の一例を示すブロック図である。
図3】本発明の第1の実施例を示し、ファイルサーバの機能部位の一例を示すブロック図である。
図4】本発明の第1の実施例を示し、管理マシンの機能部位の一例を示すブロック図である。
図5】本発明の第1の実施例を示し、クライアントマシンの機能部位の一例を示すブロック図である。
図6】本発明の第1の実施例を示し、本発明で実施する一連の処理の流れを例示する説明図である。
図7】本発明の第1の実施例を示し、スキーマ定義のファイルの構成を例示する説明図である。
図8】本発明の第1の実施例を示し、メタデータスキーマ管理表を例示する説明図である。
図9】本発明の第1の実施例を示し、スキーママッピング管理表を例示する説明図である。
図10】本発明の第1の実施例を示し、検索インデックススキーマ管理表を例示する説明図である。
図11A】本発明の第1の実施例を示し、検索インデックス管理表を例示する説明図である。
図11B】本発明の第1の実施例を示し、検索インデックス管理表を例示する説明図である。
図12】本発明の第1の実施例を示し、検索インデックス登録ファイル管理表を例示する説明図である。
図13】本発明の第1の実施例を示し、メタデータスキーマ登録処理の一例を示すフローチャートである。
図14】本発明の第1の実施例を示し、メタデータスキーマ登録画面を例示する説明図である。
図15】本発明の第1の実施例を示し、スキーママッピング定義の登録処理の一例を示すフローチャートである。
図16】本発明の第1の実施例を示し、スキーママッピング定義登録画面を例示する説明図である。
図17】本発明の第1の実施例を示し、検索インデックススキーマ定義登録処理の一例を示すフローチャートである。
図18】本発明の第1の実施例を示し、検索インデックススキーマ定義登録画面を例示する説明図である。
図19】本発明の第1の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートである。
図20】本発明の第1の実施例を示し、ファイル検索処理の一例を示すフローチャートである。
図21】本発明の第1の実施例を示し、ファイル検索画面(リスト出力形式)を例示する説明図である。
図22】本発明の第1の実施例を示し、ファイル検索画面(テーブル出力形式)を例示する説明図である。
図23】本発明の第2の実施例を示し、計算機システムで行われる一連の処理の流れを例示する説明図である。
図24】本発明の第2の実施例を示し、検索インデックススキーマ管理表を例示する説明図である。
図25】本発明の第2の実施例を示し、検索インデックススキーマ定義の登録処理の一例を示すフローチャートである。
図26A】本発明の第2の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
図26B】本発明の第2の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
図27】本発明の第3の実施例を示し、検索インデックススキーマ管理表を例示する説明図である。
図28A】本発明の第3の実施例を示し、検索インデックススキーマ定義の登録処理の一例を示すフローチャートの前半部である。
図28B】本発明の第3の実施例を示し、検索インデックススキーマ定義の登録処理の一例を示すフローチャートの後半部である。
図29A】本発明の第3の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
図29B】本発明の第3の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
図30】本発明の第4の実施例を示し、検索サーバの機能部位の一例を示すブロック図である。
図31】本発明の第4の実施例を示し、メタデータ名管理表を例示する説明図である。
図32A】本発明の第4の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
図32B】本発明の第4の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
図33】本発明の第5の実施例を示し、ファイルサーバの機能部位の一例を示すブロック図である。
図34】本発明の第5の実施例を示し、ファイルアクセス処の一例を示すフローチャートである。
図35A】本発明の第5の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
図35B】本発明の第5の実施例を示し、検索インデックスの更新処理の一例の一例を示すフローチャートの後半部である。
図36】本発明の第6の実施例を示し、計算機システムのブロック図である。
図37】本発明の第6の実施例を示し、メタデータ管理サーバの機能部位の一例を示すブロック図である。
図38A】本発明の第6の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
図38B】本発明の第6の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
図39】本発明の第6の実施例を示し、ファイルアクセス処理の一例を示すフローチャートである。
図40】本発明の第7の実施例を示し、計算機システムの一例を示すブロック図である。
図41】本発明の第7の実施例を示し、メタデータ抽出サーバの機能部位の一例を示すブロック図である。
図42】本発明の第7の実施例を示し、メタデータ抽出処理の一例を示すフローチャートである。
図43】本発明の第8の実施例を示し、ファイルサーバの機能部位の一例を示すブロック図である。
図44】本発明の第8の実施例を示し、ファイル更新リスト管理表を例示する説明図である。
図45】本発明の第8の実施例を示し、ファイル更新リストの登録処理の一例を示すフローチャートである。
図46A】本発明の第8の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの前半部である。
図46B】本発明の第8の実施例を示し、検索インデックスの更新処理の一例を示すフローチャートの後半部である。
図47】本発明の第8の実施例を示し、ファイル更新リストの問合せ処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の一実施形態について添付図面を用いて示す。
【実施例1】
【0020】
図1は、本発明の第1の実施例の計算機システムの一例を示すブロック図である。本実施例では、検索サーバ1100における検索インデックスのスキーマ定義の更新について説明する。本実施例では、全文検索機能と共にメタデータ検索機能を提供する検索サーバ1100において、メタデータ検索の対象をカスタマイズ可能にする。これにより、新たなデータフォーマットのメタデータに対する検索や、既知のデータフォーマットにおいて独自に拡張されたカスタムメタデータに対する検索を実施することができる。
【0021】
図1は、本発明の実施例における計算機システムの構成を例示するブロック図である。ネットワーク100を介して、検索サーバ1100と、ファイルサーバ2100と、管理マシン3100と、クライアントマシン4100とが接続されている。
【0022】
本計算機システムにおいて、検索サーバ1100は、ファイルサーバ2100に格納されたファイルに対するファイル検索サービスを提供する。このファイル検索サービスでは、検索キーワード指定による全文検索機能ならびに検索対象のメタデータ名と検索条件を指定したメタデータ検索機能を提供する。ファイルサーバ2100は、ユーザからのファイルアクセス要求を受け付け、ファイル共有サービスを提供する。管理マシン3100は、検索サーバ1100やファイルサーバ2100を保守管理するためにシステム管理者が利用するマシンである。クライアントマシン4100は、ユーザからの入力を入力装置4171で受け付けて検索サーバ1100に検索要求を行ったり、ファイルサーバ2100へファイルアクセス要求を行ったりすることができる。本計算機システムを利用することで、ユーザはファイルサーバ2100に格納したファイルに対して、検索サーバ1100を利用したファイル検索を行うことが可能になる。
【0023】
なお、図1では、各構成要素をそれぞれ一台ずつ記載しているが、この限りではない。可能であれば、各構成要素とも複数の台数でシステムを構成してもよい。また、図1では、各構成要素を別装置として記載しているが、この限りではない。可能であれば、任意の二つあるいはそれ以上の構成要素を一台の装置として実施する構成でもよい。また、ネットワーク100による接続形態については、どのようなネットワーク形態でもよく、例えば、インターネット接続でもよいし、ローカルエリアネットワークによるイントラネット接続などでもよい。
【0024】
図2は、検索サーバ1100のハードウェア構成と機能部位を例示するブロック図である。検索サーバ1100は、プログラムを実行するプロセッサ1110と、プログラムならびにデータを一時的に格納するメモリ1120と、外部記憶装置1160にアクセスするための外部記憶装置I/F1130と、ネットワーク100に接続された他装置にアクセスするためのネットワークI/F1140と、それらを接続するバス1150から構成されている。
【0025】
メモリ1120には、外部記憶装置I/F1130を制御するプログラムである外部記憶装置I/F制御プログラム1121と、ネットワークI/F1140を制御するプログラムであるネットワークI/F制御プログラム1122と、当該検索サーバ1100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム1123と、当該検索サーバ1100においてインデクシングと検索サービスを提供するための検索制御プログラム(検索制御部)1124と、かかる検索制御プログラム1124が利用するメタデータスキーマ管理表7100、スキーママッピング管理表7200、検索インデックススキーマ管理表7300、検索インデックス管理表7400および検索インデックス登録ファイル管理表7500が格納される。
【0026】
検索制御プログラム1124は内部に、検索インデックススキーマ制御サブプログラム(検索インデックススキーマ制御部)1171と、ファイルアクセス制御サブプログラム(ファイルアクセス制御部)1172と、インデクシング制御(インデクシング制御部)サブプログラム1173と、検索応答制御(検索応答制御部)サブプログラム1174を持つ。
【0027】
検索インデックススキーマ制御サブプログラム1171は、検索サーバ1100にて提供するファイル検索サービスのために使用する検索インデックススキーマ定義を管理する。この検索インデックススキーマ定義とは、検索対象ファイルをどのようにインデクシングするのかを規定するものである。例えば、全文検索用に、全てのテキストデータを任意の長さのトークンに分割してインデクシングしたり、特定メタデータの名前と値の組をインデクシングしたりすることができる。具体的な検索インデックススキーマ定義内容については後述する。
【0028】
ファイルアクセス制御サブプログラム1172は、当該検索サーバがファイルサーバに格納されているファイルのデータならびにメタデータを取得する処理を行う。
【0029】
インデクシング制御サブプログラム1173は、インデックス更新対象ファイルのデータならびにメタデータを解析した上で、当該検索サーバ1100が検索サービス用に管理する検索インデックスに反映させる処理を行う。具体的には、前記ファイルアクセス制御サブプログラム1172によって取得したインデックス更新対象ファイルのデータならびにメタデータを分析し、当該検索サーバで管理される検索インデックス管理表7400ならびに検索インデックス登録ファイル管理表7500に反映させる。
【0030】
検索応答制御サブプログラム1174は、ユーザからの検索要求を受け付け、自検索サーバの検索インデックス管理表7400や検索インデックス登録ファイル管理表7500などを利用した上で、検索結果を生成して提供する処理を行う。
【0031】
なお、メタデータスキーマ管理表7100、スキーママッピング管理表7200、検索インデックススキーマ管理表7300、検索インデックス管理表7400および検索インデックス登録ファイル管理表7500については後述する。
【0032】
プロセッサ1110は、メモリ1120にロードした各プログラムを実行することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ1110は、検索制御プログラム1124に従って動作することで検索制御部として機能し、データ制御プログラム1123実行することでデータ管理部として機能する。他のプログラムについても同様である。さらに、プロセッサ1110は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【0033】
検索サーバ1100の各機能を実現するプログラム、テーブル等の情報は、外部記憶装置1160や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【0034】
図3は、ファイルサーバ2100のハードウェア構成と機能部位を例示するブロック図である。ファイルサーバ2100は、プログラムを実行するプロセッサ2110と、プログラムならびにデータを一時的に格納するメモリ2120と、外部記憶装置2160にアクセスするための外部記憶装置I/F2130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F2140と、それらを接続するバス2150から構成されている。
【0035】
メモリ2120には、外部記憶装置I/F2130を制御するプログラムである外部記憶装置I/F制御プログラム2121と、ネットワークI/F2140を制御するプログラムであるネットワークI/F制御プログラム2122と、当該ファイルサーバにおいて保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム2123と、当該ファイルサーバにおいてファイルを保管し複数ユーザ間で共有するためのファイル共有サービスを提供するためのファイル共有制御プログラム2124が格納される。
【0036】
プロセッサ2110は、メモリ2120にロードした各プログラムを実行することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ2110は、ファイル共有制御プログラム2124を実行することで、ファイル共有制御部として機能する。他のプログラムについても同様である。各プログラムやテーブルなどは、検索サーバ1100と同様に、外部記憶装置2160や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【0037】
図4は、管理マシン3100のハードウェア構成を例示する説明図である。管理マシン3100は、プログラムを実行するプロセッサ3110と、プログラムならびにデータを一時的に格納するメモリ3120と、外部記憶装置3160にアクセスするための外部記憶装置I/F3130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F3140と、それらを接続するバス3150から構成されている。
【0038】
また、管理マシン3100は、入力装置3171と出力装置3172(コンソールまたは管理画面)を備えて、I/Oインターフェース(I/F)を介してバス3150に接続される。システム管理者からの入力を入力装置3171で受け付け、検索サーバ1100等から受信した応答などを出力装置3172に出力する。
【0039】
メモリ3120には、外部記憶装置I/F3130を制御するプログラムである外部記憶装置I/F制御プログラム3121と、ネットワークI/F3140を制御するプログラムであるネットワークI/F制御プログラム3122と、当該管理マシンから検索サーバ1100を管理するために利用する検索サーバ管理クライアント制御プログラム3124が格納される。なお、この図では記載していないが、当該管理マシンからファイルサーバ2100を管理するために利用するファイルサーバ管理クライアント制御プログラムを格納してもよい。
【0040】
なお、検索サーバ管理クライアント制御プログラム3124は、管理対象となる検索サーバ1100が提供する管理用クライアントプログラム、あるいは当該検索サーバが提供する仕様に従った機能を提供するプログラムに相当する。例えば、検索サーバ用のWebアプリケーションプログラムを利用する形態でもよいし、汎用のWebブラウザを利用する形態でもよい。
【0041】
プロセッサ3110は、メモリ3120にロードした各プログラムを実行することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ3110は、検索サーバ管理クライアント制御プログラム3124を実行することで、検索サーバ管理部として機能する。他のプログラムについても同様である。各プログラムやテーブルなどは、検索サーバ1100と同様に、外部記憶装置3160や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【0042】
図5は、クライアントマシン4100のハードウェア構成を例示する説明図である。クライアントマシン4100は、プログラムを実行するプロセッサ4110と、プログラムならびにデータを一時的に格納するメモリ4120と、外部記憶装置4160にアクセスするための外部記憶装置I/F4130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F4140と、それらを接続するバス4150から構成されている。
【0043】
また、クライアントマシン4100は、入力装置4171と出力装置4172(コンソールまたは管理画面)を備えて、I/Oインターフェース(I/F)4170を介してバス4150に接続される。ユーザからの入力を入力装置4171で受け付け、検索サーバ1100等から受信した応答などを出力装置4172に出力する。
【0044】
メモリ4120には、外部記憶装置I/F4130を制御するプログラムである外部記憶装置I/F制御プログラム4121と、ネットワークI/F4140を制御するプログラムであるネットワークI/F制御プログラム4122と、当該クライアントマシン4100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム4123と、当該クライアントマシン4100から検索サーバ1100にアクセスするために利用する検索クライアント制御プログラム4124と、当該クライアントマシン4100からファイルストレージにて共有されているファイルにアクセスするために利用するファイル共有クライアント制御プログラム4125が格納される。
【0045】
なお、検索クライアント制御プログラム4124は、利用する検索サーバ1100が提供するクライアントプログラム、あるいは当該サーバが提供する仕様に従った機能を提供するプログラムに相当する。例えば、検索サーバ用のWebアプリケーションプログラムを利用する形態でもよいし、汎用のWebブラウザを利用する形態でもよい。
【0046】
図6は、本発明の計算機システムで実施する一連の処理の流れを例示する説明図である。ここでは、管理マシン3100から検索サーバ1100に対するメタデータスキーマ登録処理(処理(1−n))と、管理マシン3100から検索サーバ1100に対するスキーママッピング定義登録処理(処理(2−n))と、管理マシン3100から検索サーバ1100に対する検索インデックススキーマ定義登録処理(処理(3−n))と、検索サーバ1100からファイルサーバ2100上のファイルに対する検索インデックス更新処理(処理(4−n))と、およびクライアントマシン4100から検索サーバ1100に対するファイル検索処理(処理(5−n))の5つの処理についてそれぞれ説明する。
【0047】
はじめに、処理(1−n)について説明する。システム管理者は、管理マシン3100の検索サーバ管理クライアント制御プログラム3124を利用して、検索サーバ1100に対してメタデータのスキーマ定義ファイル(図7の7000)の登録要求を送信する(処理(1−1))。このメタデータのスキーマ定義ファイルは、メタデータ検索を行う対象ファイルの構造を定義し、当該構造にネームスペースという識別情報を定義したファイルである。
【0048】
この処理において、システム管理者は、当該メタデータのスキーマ定義ファイルの中で定義されているネームスペースに対するエイリアスを指定する。このエイリアスを利用することで、検索サーバ1100内で一意にネームスペースを簡単に識別することができる。なお、メタデータのスキーマ定義ファイルの詳細については後述する。
【0049】
検索サーバ1100は、受信したメタデータのスキーマ定義ファイルからメタデータスキーマ定義を抽出し、必要に応じて要求元である管理マシン3100のシステム管理者に抽出内容を確認してもらい、さらに必要に応じて抽出内容を更新した上で、メタデータスキーマ管理表7100にメタデータスキーマ定義を格納する(処理(1−2))。以上が、メタデータスキーマ登録処理の一連の流れとなる。
【0050】
次に、スキーママッピング定義登録処理(2−n)について説明する。システム管理者は、管理マシン3100の検索サーバ管理クライアント制御プログラム3124を利用して、検索サーバ1100に対してスキーママッピング定義の登録画面を呼び出す(処理(2−1))。この処理において、システム管理者は、スキーママッピング定義を利用するために、処理(1−2) にて検索サーバ1100に登録したメタデータスキーマ定義を特定するためのネームスペースエイリアスを指定する。
【0051】
検索サーバ1100は、指定されたネームスペースのエイリアスより、メタデータスキーマ管理表7100から該当するメタデータスキーマ定義を取得し、当該情報をもとにスキーママッピング情報の候補を生成し、要求元に候補の内容を提示する(処理(2−2))。ここで検索サーバ1100が生成するスキーママッピング情報は、メタデータスキーマにおける各メタデータ名に対応させる検索インデックスのフィールド名と、各フィールドのデータ種別からなる。
【0052】
システム管理者は、検索サーバ1100から提示されたスキーママッピング情報の候補を管理マシン3100で確認し、必要に応じて候補の内容に対する更新情報を検索サーバ1100に対して送る(処理(2−3))。検索サーバ1100は、スキーママッピング情報の候補と、要求元(管理計算機)からの更新情報をもとに、最終的なスキーママッピング情報を生成し、スキーママッピング管理表7200に格納する(処理(2−4))。以上が、スキーママッピング定義登録処理の一連の流れとなる。
【0053】
次に、検索インデックススキーマ定義登録処理(3−n)について説明する。システム管理者は、管理マシン3100の検索サーバ管理クライアント制御プログラム3124を利用して、検索サーバ1100に対して検索インデックススキーマ登録画面を呼び出す(処理(3−1))。
【0054】
この処理において、システム管理者は、検索インデックススキーマ定義の登録に利用するために、上記処理(2−1)で利用したネームスペースのエイリアスを指定する。検索サーバ1100は、指定されたネームスペースエイリアスより、スキーママッピング管理表7200から該当するスキーママッピング情報を取得し、当該情報をもとに検索インデックススキーマ定義の候補を生成し、要求元(管理マシン3100)に候補の内容を提示する(処理(3−2))。ここで検索サーバ1100が生成する検索インデックススキーマ定義は、スキーママッピング定義におけるフィールド名と、各フィールドのデータ種別からなる。
【0055】
システム管理者は、管理マシン3100の出力装置3172に提示された内容を確認し、必要に応じて候補の内容に対する更新情報を検索サーバ1100に対して送信する(処理(3−3))。
【0056】
検索サーバ1100は、検索インデックススキーマ定義の候補と、要求元(管理マシン3100)からの更新情報をもとに、最終的な検索インデックススキーマ定義を生成し、検索インデックススキーマ管理表7300に格納する(処理(3−4))。
【0057】
これにより、検索サーバ1100における検索インデックススキーマ定義(検索インデックススキーマ情報)を更新することが可能となって、新たに検索可能なメタデータを容易に追加することができる。以上が、検索インデックススキーマ定義登録処理の一連の流れとなる。
【0058】
次に、検索インデックス更新処理(4−n)について説明する。検索サーバ1100上の検索制御プログラム1124は、ファイルサーバ2100に対してファイルアクセスを行い、検索インデックスを更新する必要があるファイルを特定し、更新が必要なファイルの読み出しを行う(処理(4−1))。
【0059】
ここで、検索インデックスを更新する必要があるファイルを特定するためには、例えば、対象ファイルの最終更新日時を取得して、前回の検索インデックス更新日時よりも新しいか否かをもとに判断する方法がある。ファイルアクセス要求を受けたファイルサーバ2100は、必要に応じて自身が管理するファイルシステム2170を利用して、対象ファイルの情報を取得し、要求元(例えば、検索サーバ1100)に提供する(処理(4−2))。更新対象ファイルを取得した検索制御プログラム1124は、当該ファイルのファイル種別を特定し、検索インデックススキーマ管理表7300から当該ファイル種別に合致するスキーマ定義情報を取得の上、当該ファイルを解析して検索インデックスデータ生成のために必要な情報を抽出する(処理(4−3))。
【0060】
その後、検索制御プログラム1124は、生成した情報をもとに検索インデックスデータを生成し、検索インデックス管理表7400ならびに検索インデックス登録ファイル管理表7500に反映させる(処理(4−4))。以上が、検索サーバ1100による検索インデックス更新処理の一連の流れとなる。
【0061】
最後に、ファイル検索処理(5−n)について説明する。ユーザは、クライアントマシン4100の検索クライアント制御プログラム4124を利用して、検索サーバ1100に対してファイル検索要求を送信する(処理(5−1))。
【0062】
検索サーバ1100上の検索制御プログラム1124は、ファイル検索要求を受信すると検索条件として指定されたクエリ文の中で指定されたメタデータ名について、当該検索サーバ1100の検索インデックススキーマにて利用されているフィールド名に変換する(処理(5−2))。
【0063】
検索サーバ1100は、スキーママッピング管理表7200の情報を取得して上記フィールド名の変換に利用する。この変換の後、検索制御プログラム1124は、検索インデックス管理表7400ならびに検索インデックス登録ファイル管理表7500を利用して、指定された検索条件に合致するファイルを抽出し、検索結果をまとめ、要求元(クライアントマシン4100)に提供する(処理(5−3))。検索サーバ1100は、検索結果をまとめる際、検索インデックススキーマのフィールド名に変換されたメタデータ名について、元のメタデータ名に戻す処理を行う。以上が、ファイル検索処理の一連の流れとなる。
【0064】
図7は、メタデータスキーマ登録処理において、システム管理者が検索サーバ1100に対して登録するスキーマ定義のファイルの構成を例示する図である。ここで示しているスキーマ定義ファイル7000は、W3C XML Schemaの定義に従ったファイルの内容を例として示している。ここで示したスキーマ定義ファイル7000は、ネームスペース名として、”http://AAA.com/ProductA/v2”という文字列からなるURIをネームスペースとして宣言している。
【0065】
また、当該ファイルでは、”ProductA”という名前のXML要素の中に、メタデータとしてinteger型の”PatientID”、string型の”PatientName”およびinteger型の”VendorPatientID”という子要素を持つXML文書を定義している。
【0066】
なお、ここではW3C XML Schemaを利用した例を示したが、この限りではない。検索サーバ1100が、メタデータスキーマに関する情報を抽出可能なものであれば何でもよい。
【0067】
図8は、検索サーバ1100上で管理されるメタデータスキーマ管理表7100の構成を例示する図である。メタデータスキーマ管理表7100は、検索サーバ1100に登録されたメタデータ検索対象ファイルが利用するスキーマ定義情報(メタデータスキーマ定義)を管理する。
【0068】
具体的に、メタデータスキーマ管理表7100は、ID7110と、ネームスペースエイリアス7120と、ネームスペース名7130と、メタデータ名7140と、メタデータタイプ7150という構成情報からなる。
【0069】
ID7110は、本表の各レコードに機械的に付与された識別番号を格納する。ネームスペースエイリアス7120は、当該メタデータスキーマ定義を記載したスキーマ定義ファイル7000(図7参照)を登録する際に、当該スキーマ定義ファイルで定義されているネームスペースに対して、要求元(例えば、管理マシン3100を利用するシステム管理者等)が別途付与する別名を格納する。このネームスペースエイリアス7120については、検索サーバ1100内で一意性を保つように設定する。
【0070】
ネームスペース名7130は、当該メタデータスキーマ定義を記載したスキーマ定義ファイル7000を登録する際に、当該スキーマ定義ファイル7000で定義されているネームスペースを示す名前を格納する。このネームスペース名7120については、検索サーバ1100内で一意性を保つようにする。また、ネームスペース名7120としてXMLネームスペースを利用する場合は、一意に識別可能なURIを使用する。
【0071】
メタデータ名7140は、当該スキーマ定義ファイル7000から抽出したメタデータ名を格納する。スキーマ定義がXML形式である場合、検索サーバ1100は、XMLの要素名あるいは属性名に相当するものをメタデータ名7140として抽出し、XPath形式にて当該エントリに格納してもよい。
【0072】
メタデータタイプ7150は、当該スキーマ定義ファイル7000から抽出したメタデータ名に関連付けられているデータ種別(図7の”type”)に関する情報を格納する。
【0073】
図9は、検索サーバ1100上で管理されるスキーママッピング管理表7200の構成を例示する図である。スキーママッピング管理表7200は、前述したメタデータスキーマ管理表7100におけるメタデータスキーマ定義と、後述する検索インデックススキーマ管理表7300における検索インデックススキーマ定義との対応関係を管理する。
【0074】
具体的に、スキーママッピング管理表7200は、マッピングID7210と、ネームスペース名7220と、メタデータ名7230と、フィールド名7240と、フィールドタイプ7250と、フィールドエイリアス7260という構成情報からなる。
【0075】
マッピングID7210は、本表の各レコードに機械的に付与された識別番号を格納する。ネームスペース名7220は、メタデータスキーマ管理表7100のネームスペース名7130の欄に格納されている情報と同じ情報を格納する。メタデータ名7230は、メタデータスキーマ管理表7100のメタデータ名7140の欄に格納されている情報と同じ情報を格納する。
【0076】
フィールド名7240は、検索インデックススキーマ定義において、メタデータ名7230の欄に格納されたメタデータ名と関連付けた名前を格納する。このフィールド名7240は、検索サーバ1100内で一意性を保つ。例えば、図9で示しているように、個別に追加されたフィールド名として、個別拡張を示す文字列(CUSTOMMETA_)と、ネームスペースエイリアスを示す文字列(A2)と、メタデータ名を示す文字列(ProductA/〜)を連結した文字列を使用してもよい。
【0077】
フィールドタイプ7250は、当該フィールドに格納されるデータの種別を定義した情報を格納する。ここでは、メタデータスキーマ管理表7100のメタデータタイプ7150に格納されたものと同じものを格納してもよいし、システム管理者によって設定してもよい。ここで指定するデータ種別には、数値型を示すinteger型、文字列型を示すstring型、文字列をトークンに分割してキーワード検索できるようにしたtext型といったものがある。
【0078】
また、各データ型について、検索結果を当該フィールドの値を使用して整列するために、整列可能なデータ型を使用したり、検索インデックスデータサイズをなるべく小さくしたりするために、値の整列はできないが格納サイズを小さくできるデータ型を使用することができる。
【0079】
フィールドエイリアス7260は、フィールド名7240の別名を格納する。このフィールドエイリアス7260は、利用するネームスペース内で一意性を保つようにしてもよいし、検索サーバ1100内で一意性を保つようにしてもよい。以降では、ネームスペース内で一意性を保つようにフィールドエイリアス7260を設定するケースで説明する。
【0080】
このフィールドエイリアス7260は、検索サーバ1100内で機械的に設定してもよいし、システム管理者が設定してもよい。このフィールドエイリアス7260を利用することで、検索サーバ1100に対してフィールド名を指定したメタデータ検索を行う場合に、一意性を保証するために文字列が長くなる可能性があるフィールド名7240を利用するかわりに、短い長さの文字列からなるフィールドエイリアス7260を利用してもよい。
【0081】
なお、事前にインデクシングする必要がないとわかっているメタデータ名7230については、当該メタデータ名7230と対応させるフィールド名7240とフィールドタイプ7250とフィールドエイリアス7260の欄に、対応付けするものがないことを示す文字列を格納してもよい。例えば、図に示しているように、”<NONE>”という文字列を対応付けするものなしという意味で格納してもよい。
【0082】
図10は、検索サーバ1100上で管理される検索インデックススキーマ管理表7300の構成を例示する図である。検索インデックススキーマ管理表7300は、当該検索サーバ1100において検索サービスを提供する際に利用するインデックスデータの構造を定義したスキーマ情報を管理する。
【0083】
検索サーバ1100は、検索インデックススキーマ管理表7300で定義された情報をもとに、キーワードによる全文検索や、メタデータ名と検索条件を指定したメタデータ検索といった検索機能を実現するために必要なインデックスデータを作成する。具体的に、検索インデックススキーマ管理表7300は、フィールド名7310と、フィールドタイプ7320などといった構成要素からなる。
【0084】
フィールド名7310は、前述したスキーママッピング管理表7200のフィールド名7240の欄に格納されている情報と同じ情報を格納する。ただし、スキーママッピング管理表7200のフィールド名7240の欄に存在する名前の中で、検索インデックススキーマ管理表7300のフィールド名7310の欄に存在しない名前があってもよい。
【0085】
これは、スキーママッピング管理表7200ではフィールド名7240が登録されているが、検索インデックススキーマ管理表7300に該当するフィールド名7310が登録されていない場合、すなわち当該フィールド名ではインデクシングされないし、検索できないことになる。本実施例1では、インデクシングするかしないかの判断をフィールド名7310の単位で設定することができる。これにより、検索サーバ1100における検索インデックススキーマ定義のカスタマイズをする際に、試行錯誤的にフィールドの追加や削除、フィールドタイプを変更するといったことを行うことも可能になる。
【0086】
なお、フィールド名7310とフィールドタイプ7320については、スキーママッピング管理表7200にて登録されているものを利用する。このため、フィールド名7310やフィールドタイプ7320を変更したい場合は、スキーママッピング管理表7200のフィールド名7240とフィールドタイプ7250を変更した上で、スキーママッピング管理表7200の変更後の情報を検索インデックススキーマ管理表7300に取り込む。
【0087】
図11A図11Bは、検索サーバ1100上で管理される検索インデックス管理表7400の構成を例示する図である。検索インデックス管理表7400では、検索サーバ1100が作成した検索インデックスの情報を管理する。具体的には、検索インデックス管理表7400は、フィールド名7410と、フィールド値7420と、該当位置情報7430などという構成情報からなる。
【0088】
フィールド名7410は、前述した検索インデックススキーマ管理表7400のフィールド名7310の欄に格納されている情報と同じ情報を格納する。フィールド値7420は、検索対象ファイルをインデクシング処理にて解析して得られたオブジェクト(数値や文字列など)を、フィールド名7410で指定されたフィールドごとに格納する。図で示す例では、フィールド名7410が”filename”の場合、検索対象ファイルのファイル名からなる文字列を格納する。
【0089】
また、フィールド名7410が”content”の場合、対象ファイルの中身全体の文字列に対して、キーワード検索できるようトークンに分割したものを格納する。該当位置情報7430は、当該フィールド値7420の欄に登録されているオブジェクトが存在するファイルの情報を登録する。
【0090】
この該当位置情報7430は、ファイル識別情報7431、7434と、該当位置オフセット7432、7435と、重み付け7433、7436という構成要素からなる。ファイル識別情報7431、7434は、当該フィールド値7420に格納されているオブジェクトが出現するファイルを識別するための情報を登録する。
【0091】
具体的には、後述する検索インデックス登録ファイル管理表7500におけるファイル識別情報7510の欄に登録されている情報を登録してもよいし、対象ファイルに実際にアクセスするときのファイルパス名やファイル識別子でもよい。該当位置オフセット7432、7435は、当該ファイルの中で、当該オブジェクトが出現するオフセット情報を登録する。この欄では、一つのファイルで複数箇所に当該オブジェクトが出現する場合、複数個のオフセット情報を登録する。重み付け7433、7436は、当該ファイルの当該オフセットにおいて、当該オブジェクトが出現することによる重要度の値を登録する。この重要度の値は、検索サーバ1100が適宜設定する。この値は、大きければ大きいほど重要だという意味づけを行う。また、この値は、検索結果の絞り込みや整列に利用することができる。
【0092】
ここで、該当位置情報7430については、一つのフィールド値7420に対して複数個登録可能にする。これにより、フィールド値7420に格納されたオブジェクトを持つファイルが複数存在する場合にも対応可能となる。なお、該当位置情報7430の欄において、該当するエントリの値が無効であることを意味するnull値を登録することもできる。これは、該当位置情報7430の欄において、登録数が他のエントリより少ない場合に項目が空いてしまうエントリや、該当位置オフセット7432、7435の情報が不要な場合なエントリに対して利用することができる。
【0093】
図12は、検索サーバ1100上で管理される検索インデックス登録ファイル管理表7500の構成を例示する図である。検索インデックス登録ファイル管理表7500では、当該検索サーバ1100が検索インデックスの作成対象とするファイルサーバ2100上のファイル共有から取得したファイルに関する情報を管理する。具体的に、検索インデックス登録ファイル管理表7500は、ファイル識別情報7510と、ファイルパス名7520と、メタデータ7530などという構成要素からなる。
【0094】
ここで、ファイル識別情報7510は、検索サーバ1100が検索インデックス作成のために取得したファイルを一意に識別するための識別子である。この識別子は、当該検索サーバ1100が付与する連番でもよいし、当該ファイルが格納されているファイルサーバ2100が付与した連番でもよい。なお、連番以外にも、識別に使用可能な文字列を利用してもよい。
【0095】
ファイルパス名7520は、対象ファイルが格納されているファイルパス名に相当する。これにより、検索サーバ1100は、当該ファイルパス名7520を指定してファイルの取得要求をファイルサーバ2100へ送信することで、当該ファイルを取得することができる。
【0096】
この検索インデックス登録ファイル管理表7500を利用することで、検索制御プログラム1124がユーザからの検索要求に応える場合、当該検索条件に合致するか否かの判断は検索インデックス管理表7400のみを利用すればよく、条件に合致したファイルについてのみ、適宜検索インデックス登録管理表7500から対象ファイルアクセスに必要な情報を取得することができる。
【0097】
ここまでに、本発明によって提供するシステムの構成、管理情報の構成について説明した。以降では、本発明によって実施する処理と、各処理を実行するときに利用する操作画面例について説明する。
【0098】
以下の説明では、処理として、メタデータスキーマ登録処理(図13)、スキーママッピング定義登録処理(図15)、検索インデックススキーマ定義登録処理(図17)、検索インデックス更新処理(図19)、およびファイル検索処理(図20)について説明する。また、操作画面例として、メタデータスキーマ登録画面(図14)、スキーママッピング定義登録画面(図16)、検索インデックススキーマ定義登録画面(図18)、およびファイル検索画面(図21図22)について説明する。
【0099】
図13は、検索サーバ1100の検索インデックススキーマ制御サブプログラム1171が行うメタデータスキーマ登録処理の一例を示すフローチャートである。本処理では、システム管理者からメタデータスキーマ定義を記載したスキーマ定義ファイル7000を検索サーバ1100に登録してもらい、当該スキーマ定義ファイル7000からメタデータのスキーマ定義情報を抽出して、メタデータスキーマ管理表7100に登録する処理を行う。
【0100】
はじめに、検索インデックススキーマ制御サブプログラム1171を実行するプロセッサ1110は、検索対象ファイルのスキーマ定義ファイル7000と、当該ファイルにて定義されているネームスペースのエイリアスを管理用マシン3100上の検索サーバ管理クライアント制御プログラム3124から受信する(ステップS101)。ここでは、図7に示したようなスキーマ定義ファイル7000を取得する。なお、スキーマ定義情報が取得できるものであれば、図7以外のどのような形式のものでもよい。なお、以下の説明ではプログラムを実行する主体は、プロセッサ1110で同様であるため、説明を簡易にするためプロセッサ1110の記載は省略する。
【0101】
次に、検索インデックススキーマ制御サブプログラム1171は、スキーマ定義ファイル7000で指定されたネームスペースエイリアスが既に当該検索サーバ1100にて利用されているネームスペースエイリアスと重複しているか否かを判定する(ステップS102)。
【0102】
ネームスペースのエイリアスが重複している場合(ステップS102でYesの場合)は、エラーとなって検索インデックススキーマ制御サブプログラム1171は終了する。一方、ネームスペースのエイリアスが重複していない場合(ステップS102でNoの場合)、検索インデックススキーマ制御サブプログラム1171は、受信したスキーマ定義ファイル7000からメタデータスキーマ定義を抽出する(ステップS103)。
【0103】
ここで抽出するメタデータスキーマ定義としては、メタデータ名ならびに当該メタデータのデータ型を示すメタデータタイプといった情報を抽出する。ここでは、スキーマ定義ファイル7000がXML形式で記載されている場合、あるXML形式のデータを別のXML形式に変換するXSLTなどを利用して、所望のメタデータスキーマ定義を抽出してもよい。
【0104】
次に、検索インデックススキーマ制御サブプログラム1171は、抽出したメタデータ情報を要求元(例えば、管理マシン3100)に提示(送信)する(ステップS104)。ここでは、提示した情報を管理用マシン3100上の検索サーバ管理クライアントプログラム3124に送信し、検索サーバ管理クライアントプログラム3124が提示情報をシステム管理者が閲覧できるように管理マシン3100の出力装置3172(管理画面や管理コンソール)などに出力する。
【0105】
その後、検索インデックススキーマ制御サブプログラム1171は、要求元が提示情報を確認した結果、当該抽出情報に対して変更が必要か否かを判定する(ステップS105)。ここでは、提示情報を送信した後で、検索サーバ管理クライアントプログラム3124から返ってくる情報の中に、変更が必要か否かを示す情報も含めてもよい。この情報を利用して上記の判定を行う。
【0106】
変更が必要な場合(ステップS105でYesの場合)、検索インデックススキーマ制御サブプログラム1171は、要求元(管理マシン3100)から当該メタデータスキーマ定義に対する変更情報を取得し、当該変更情報をメタデータスキーマ定義に反映させる(ステップS106)。その後、ステップS104以降の処理を再度繰り返す。
【0107】
変更が不要の場合(ステップS105でNoの場合)、検索インデックススキーマ制御サブプログラム1171は、抽出したメタデータスキーマ定義をメタデータスキーマ管理表7100に登録して処理を終了する。
【0108】
なお、上記の説明では、スキーマ定義ファイル7000を検索サーバ1100に登録し、スキーマ定義ファイル7000の内容を解析して解析結果を利用する例を説明したが、その限りではない。システム管理者が、メタデータスキーマ管理表7100に登録すべき情報を直接指定して、当該管理表に登録してもよい。
【0109】
図14は、前述したメタデータスキーマ登録処理を管理マシン3100の管理画面から行う場合における操作画面例を示す。管理マシン3100の出力装置3172に表示されるメタデータスキーマ登録画面8100では、メタデータスキーマ定義ファイル登録欄8110と、メタデータスキーマ管理表登録欄8120を提供する。
【0110】
メタデータスキーマ定義ファイル登録欄8110には、ネームスペースエイリアス入力欄8111と登録ファイル名入力欄8112を提供する。上記二つを入力した後、Uploadボタン8113を押下することで、指定したスキーマ定義ファイルを検索サーバ1100に登録することができる。また、Cancelボタン8114を押下することで、ファイル登録処理をキャンセルすることができる。
【0111】
メタデータスキーマ管理表登録欄8120には、前述したUploadボタン8113を押下した後、検索サーバ1100にて抽出したメタデータスキーマの内容を表示する。表示内容は、メタデータスキーマ管理表7100のエントリと同じである。表示された項目について、チェックボックス欄8126にて対象レコードを特定し、Editボタン8127を押下することで内容を修正する。また、同様にDeleteボタン8128を押下することで内容を削除する。登録内容が確定したら、Registerボタン8129を押下することで、メタデータスキーマ管理表7100に登録することができる。なお、Cancelボタン8130を押下することで、メタデータスキーマ管理表7100への登録処理をキャンセルすることができる。
【0112】
図15は、検索サーバ1100の検索インデックススキーマ制御サブプログラム1171を実行するプロセッサ1110が行うスキーママッピング定義登録処理の流れを示す。なお、図13と同様にプロセッサ1110を省略して以下の説明を簡易にする。
【0113】
本処理では、管理マシン3100を操作するシステム管理者からメタデータスキーマ定義を特定するためのネームスペースエイリアスを指定してもらい、当該ネームスペースを持つメタデータスキーマ定義を取得し、メタデータスキーマ定義からスキーママッピング定義に必要な情報を生成の上、スキーママッピング管理表7200に生成した情報を登録する処理を行う。
【0114】
はじめに、検索インデックススキーマ制御サブプログラム1171は、マッピング定義を設定する対象となるメタデータスキーマ定義を特定するためのネームスペースのエイリアスを管理用マシン3100上の検索サーバ管理クライアントプログラム3124から受信する(ステップS201)。なお、メタデータスキーマ定義を特定できる情報であれば、どのような形式のものでもよい。例えば、ネームスペース名そのものでもよい。
【0115】
次に、検索インデックススキーマ制御サブプログラム1171は、ステップS201で指定されたネームスペースのエイリアスが当該検索サーバ1100に登録されているか否かを判定する(ステップS202)。
【0116】
ネームスペースエイリアスが登録されていない場合(ステップS202でNo場合)は、エラーとなって処理を終了する。一方、ネームスペースエイリアスが登録されている場合(ステップS202でYesの場合)、検索インデックススキーマ制御サブプログラム1171は、受信したネームスペースエイリアスより、メタデータスキーマ定義をメタデータスキーマ管理表7100から取得する(ステップS203)。ここでメタデータスキーマ定義は、メタデータスキーマ管理表7100に登録されているレコードの中で、ネームスペースエイリアス7120が指定されたエイリアスと同じレコードから取得する。
【0117】
次に、検索インデックススキーマ制御サブプログラム1171は、取得したメタデータスキーマ定義より、スキーママッピング情報候補を生成する(ステップS204)。ここでは、ネームスペース名7130とメタデータ名7140からフィールド名7240の候補を生成し、メタデータタイプ7150からフィールドタイプ7250の候補を生成し、メタデータ名7140からフィールドエイリアス7260の候補を生成する。これら三つの構成要素と、メタデータスキーマ管理表7100から取得した内容を組み合わせて、スキーママッピング情報候補とする。
【0118】
次に、検索インデックススキーマ制御サブプログラム1171は、生成したスキーママッピング情報候補を要求元(例えば、管理マシン3100)に送信して出力装置3172に提示する(ステップS205)。ここでは、提示情報を管理用マシン3100上の検索サーバ管理クライアントプログラム3124に送信し、検索サーバ管理クライアントプログラム3124が提示情報をシステム管理者が閲覧できるように管理画面や管理コンソールなどの出力装置3172に出力する。
【0119】
その後、検索インデックススキーマ制御サブプログラム1171は、要求元が提示情報を確認した結果、当該提示情報に対して変更が必要か否かを判定する(ステップS206)。ここでは、提示情報を送信した後で、検索サーバ管理クライアントプログラム3124から返ってくる情報の中に、変更が必要か否かを示す情報も含めてもよい。この情報を利用して上記の判断を行う。
【0120】
変更が必要な場合(ステップS206でYesの場合)、検索インデックススキーマ制御サブプログラム1171は、要求元から当該スキーママッピング情報候補に対する変更情報を取得し、当該変更情報をスキーママッピング情報候補に反映させる(ステップS207)。その後、ステップS205以降の処理を再度繰り返す。
【0121】
変更が不要な場合(ステップS206でNoの場合)、検索インデックススキーマ制御サブプログラム1171は、当該スキーママッピング情報をスキーママッピング管理表7200に登録して処理を終了する。
【0122】
なお、上記の説明では、ネームスペースエイリアスを指定し、メタデータスキーマ管理表7100に登録されている内容をもとにスキーママッピング情報候補を生成して利用する例を説明したが、その限りではない。システム管理者が、スキーママッピング管理表7200に登録すべき情報を直接指定して、当該管理表に登録する。
【0123】
図16は、前述したスキーママッピング定義登録処理を管理マシン3100等の管理画面から行う場合における操作画面の一例を示す。スキーママッピング定義登録画面8200では、メタデータスキーマ管理表呼び出し欄8210と、スキーママッピング管理表登録欄8220を提供する。
【0124】
メタデータスキーマ管理表呼び出し欄8210には、ネームスペースエイリアス入力欄8211を提供する。上記ネームスペースエイリアスを入力した後、Callボタン8212を押下することで、指定されたネームスペースエイリアスを持つレコードをメタデータスキーマ管理表7100から探索し、後述するスキーママッピング管理表登録欄8220に出力することができる。
【0125】
スキーママッピング管理表登録欄8220には、前述したCallボタン8212を押下した後、指定されたネームスペースエイリアスを持つメタデータスキーマ管理表7100のレコードの内容と、これらのレコードから生成した内容からなるスキーママッピング情報候補を出力する。表示内容は、メタデータスキーマ管理表7100のエントリ(ID8221、ネームスペースエイリアス8222、ネームスペース名8223、メタデータ名8224、メタデータタイプ8225)と、上述した三つの生成情報に関するエントリ(フィールド名8226、フィールドタイプ8227、フィールドエイリアス8228)である。表示された項目について、チェックボックス欄8229にて対象レコードを特定し、Editボタン8230を押下することで内容が修正(更新)される。また、同様にDeleteボタン8231を押下することで内容を削除する。登録内容が確定したら、Registerボタン8232を押下することで、スキーママッピング管理表7200に登録することができる。なお、Cancelボタン8233を押下することで、スキーママッピング管理表7200への登録処理をキャンセルすることができる。
【0126】
図17は、検索サーバ1100の検索インデックススキーマ制御サブプログラム1171を実行するプロセッサ1110が行う検索インデックススキーマ定義登録処理の流れを示す。なお、図13と同様に説明を簡易にするためプロセッサ1110の記載を省略する。
【0127】
本処理では、検索インデックススキーマ定義に登録するフィールド情報を特定するために当該フィールドに関連付けられたネームスペースエイリアスをシステム管理者などに指定してもらい、当該ネームスペースを持つメタデータスキーマ定義とスキーママッピング定義を取得し、これらの定義から登録対象フィールド情報を取得の上、検索インデックススキーマ管理表7300に上記登録対象フィールド情報を登録する処理を行う。
【0128】
はじめに、検索インデックススキーマ制御サブプログラム1171は、検索インデックススキーマ定義を登録する対象となるスキーママッピング情報を特定するためのネームスペースエイリアスを、管理用マシン3100上の検索サーバ管理クライアントプログラム3124から受信する(ステップS301)。なお、スキーママッピング情報を特定できる情報であれば、どのような形式のものでもよい。例えば、ネームスペース名そのものでもよい。
【0129】
次に、検索インデックススキーマ制御サブプログラム1171は、指定されたネームスペースエイリアスが当該検索サーバ1100に登録されているか否かを判定する(ステップS302)。
【0130】
ネームスペースエイリアスが登録されていない場合(ステップS302でNoの場合)は、エラーとなって処理を終了する。登録されている場合(ステップS302でYesの場合)、検索インデックススキーマ制御サブプログラム1171は、受信したネームスペースエイリアスより、スキーママッピング情報をメタデータスキーマ管理表7100ならびにスキーママッピング管理表7200から取得する(ステップS303)。
【0131】
ここで、メタデータスキーマ定義は、メタデータスキーマ管理表7100に登録されているレコードの中で、ネームスペースエイリアス7120が指定されたエイリアスと同じレコードを選択して取得する。また、スキーママッピング情報は、スキーママッピング管理表7200に登録されているレコードの中で、ネームスペース名7220がメタデータスキーマ定義に含まれるネームスペース名と同じレコードを選択して取得する。
【0132】
次に、検索インデックススキーマ制御サブプログラム1171は、取得したスキーママッピング情報より、検索インデックススキーマ定義候補を生成する(ステップS304)。ここでは、メタデータスキーマ管理表7100から取得したネームスペースエイリアス7120と、スキーママッピング管理表7200から取得したフィールド名7240とフィールドタイプ7250を組み合わせて、検索インデックススキーマ定義の候補とする。
【0133】
次に、検索インデックススキーマ制御サブプログラム1171は、生成した検索インデックススキーマ定義の候補を要求元(例えば、管理マシン3100)へ送信して出力装置3172に出力する(ステップS305)。
【0134】
ここでは、提示する情報を管理用マシン3100上の検索サーバ管理クライアントプログラム3124に送信し、検索サーバ管理クライアントプログラム3124が提示する情報をシステム管理者が閲覧できるように管理画面や管理コンソールなどの出力装置3172に出力する。
【0135】
その後、検索インデックススキーマ制御サブプログラム1171は、要求元が提示した情報を確認した結果、当該提示情報に対して変更が必要か否かを判断する(ステップS306)。具体的には、提示されたフィールド名の中で、実際に検索インデックススキーマ管理表7300に登録するものと登録しないものをシステム管理者等に選択してもらい、選択された内容をもとに変更の要否の判定を行う。ここでは、提示情報を送信した後で、検索サーバ管理クライアントプログラム3124から返ってくる情報の中に、変更が必要か否かを示す情報も含めてもよい。この情報を利用して上記の判定を行う。
【0136】
変更が必要な場合(ステップS306でYesの場合)、検索インデックススキーマ制御サブプログラム1171は、要求元から当該検索インデックススキーマ定義候補に対する変更情報を取得し、変更情報を検索インデックススキーマ定義の候補に反映させる(ステップS307)。具体的には、検索インデックススキーマ管理表7300への登録が必要と指定されたフィールドを残し、登録が不要と指定されたフィールドを削除する。その後、ステップS305以降の処理を再度繰り返す。
【0137】
一方、変更が不要な場合(ステップS306でNoの場合)、検索インデックススキーマ制御サブプログラム1171は、当該検索インデックススキーマ定義の候補を検索インデックススキーマ管理表7300に登録して処理を終了する。
【0138】
なお、上記の説明では、ネームスペースエイリアスを指定し、メタデータスキーマ管理表7100ならびにスキーママッピング管理表7200に登録されている内容をもとに検索インデックススキーマ定義候補を生成して利用する例を説明したが、その限りではない。システム管理者が、検索インデックススキーマ管理表7300に登録すべき情報を直接指定して、当該管理表に登録してもよい。ただし、この場合はスキーママッピング管理表7200に登録しているエントリの情報との整合性は別途保証する必要がある。
【0139】
図18は、前述した検索インデックススキーマ定義登録処理を管理マシン3100等の管理画面から行う場合における操作画面の一例を示す。検索インデックススキーマ定義登録画面8300では、スキーママッピング管理表呼び出し欄8310と、検索インデックススキーマ管理表登録欄8320を提供する。
【0140】
スキーママッピング管理表呼び出し欄8310には、ネームスペースエイリアス入力欄8311を提供する。上記を入力した後、Callボタン8312を押下することで、指定されたネームスペースエイリアスを持つレコードをメタデータスキーマ管理表7100ならびにスキーママッピング管理表7200から探索し、後述する検索インデックススキーマ管理表登録欄8320に出力することができる。
【0141】
検索インデックススキーマ管理表登録欄8320には、前述したCallボタン8312を押下した後、指定されたネームスペースエイリアスを持つメタデータスキーマ管理表7100のレコードの内容と、当該レコードと同じネームスペース名7130を持つスキーママッピング管理表7200のレコードの内容から生成した検索インデックススキーマ定義候補を出力する。表示内容は、メタデータスキーマ管理表7100のエントリ(ネームスペースエイリアス8323)と、スキーママッピング管理表7200のエントリ(マッピングID8321、フィールド名8324、フィールドタイプ8325)と、当該レコードを検索インデックススキーマ管理表7300に追加するか否かを示すエントリ(フィールド更新フラグ8322)である。表示された項目について、チェックボックス欄8326にて対象レコードを特定し、Editボタン8327を押下することで内容を修正する。また、同様にDeleteボタン8328を押下することで内容を削除する。登録内容が確定したら、Registerボタン8329を押下することで、検索インデックススキーマ管理表7300に登録することができる。なお、Cancelボタン8330を押下することで、検索インデックススキーマ管理表7300への登録処理をキャンセルすることができる。
【0142】
上記、検索インデックススキーマ定義登録画面8300では、フィールド更新フラグ8322を設けることで、検索対象とはならないフィールドについて検索インデックススキーマ定義を作成しないことを選択できる。つまり、検索制御プログラム1124は、フィールド更新フラグ8322が「Yes」であれば検索インデックススキーマ定義を生成し、フィールド更新フラグ8322が「No」であれば検索インデックススキーマ定義を生成しない。これにより、検索対象とはならないフィールドを除外して検索インデックススキーマ管理表7300が肥大化するのを防止できる。
【0143】
図19は、検索サーバ1100のインデクシング制御サブプログラム1173が行う検索インデックス更新処理の流れを示すフローチャートである。本処理では、検索サーバ1100にて予め設定された検索インデックス更新開始要求を契機に、ファイルアクセス制御サブプログラム1172を利用してファイルサーバ2100上のファイルにアクセスする。インデクシング制御サブプログラム1173を実行するプロセッサ1110は、ファイルサーバ2100のファイルから検索インデックス更新対象ファイルを特定し、当該ファイルサーバ2100から検索インデックス更新対象ファイルに関するデータやメタデータを取得する。インデクシング制御サブプログラム1173を実行するプロセッサ1110は、取得したデータをもとに検索インデックスの更新を行い、更新の結果を検索インデックス管理表7400ならびに検索インデックス登録ファイル管理表7500に反映させる。なお、上記図13と同様にプログラムを実行するプロセッサ1110の記述は省略する。
【0144】
はじめに、インデクシング制御サブプログラム1173は、当該検索インデックス更新処理を差分インデクシングによって行うのか否かを判断する(ステップS401)。ここでは、当該検索インデックス更新要求が出される際に、差分インデクシングを行うのか、あるいはフルインデクシングを行うのかを示す情報も指定し、指定された情報をもとに判断してもよい。
【0145】
差分インデクシングではなくフルインデクシングを行う場合(ステップS401でNoの場合)、以下に説明する処理を行う。はじめに、インデクシング制御サブプログラム1173は、ファイルサーバ2100に格納されている検索対象ファイル全てをクロールしたか否かを判定する(ステップS402)。
【0146】
全ファイルをクロールしていない場合(ステップS402でNoの場合)、インデクシング制御サブプログラム1173は、ファイルサーバ2100に格納されているファイルのうち、今回のクローリングにて未選択のファイルの中から任意の一つのファイルを選択する(ステップS403)。
【0147】
その後、インデクシング制御サブプログラム1173は、検索インデックス更新対象リストに対象ファイル名を追加する(ステップS404)。ここでは、ステップS403で選択したファイルのファイル名を当該リストに追加する。その後、ステップS402に戻り、全ての対象ファイルのファイル名を検索インデックス更新対象リストに追加し終えるまで繰り返す。なお、ここではファイル一つ一つの名前を当該リストに追加する例を示したが、この限りではない。例えば、対象ファイルリストが別途取得可能であれば、そのまま利用してもよい。
【0148】
フルインデクシング処理のケースにて全ファイルをクロールした場合(ステップS402でYesの場合)、インデクシング制御サブプログラム1173は、検索インデックス更新対象リストに記載されたファイルを対象に、検索インデックス更新を行う(ステップS405)。
【0149】
ここでは、インデクシング制御サブプログラム1173は、対象ファイルのデータやメタデータをファイルサーバ2100から取得し、検索インデックス更新対象リストに記載されたファイルの種別を特定する。インデクシング制御サブプログラム1173は、当該特定した種別でインデクシングすべきメタデータスキーマ定義とインデクシングすべき情報をメタデータスキーマ管理表7100、スキーママッピング管理表7200および検索インデックススキーマ管理表7300から取得する。インデクシング制御サブプログラム1173は、取得した情報を元に対象ファイルからインデクシングすべき内容を抽出し、抽出した内容を検索インデックス管理表7400ならびに検索インデックス登録ファイル管理表7500に反映させる。以上で、フルインデクシング処理を終了する。
【0150】
一方で、差分インデクシングを行う場合(ステップS401でYesの場合)、以下に説明する処理を行う。はじめに、インデクシング制御サブプログラム1173は、ファイルサーバ2100に格納されている検索対象ファイル全てをクロールしたか否かを判定する(ステップS406)。
【0151】
全ファイルをクロールしていない場合(ステップS406でNoの場合)、インデクシング制御サブプログラム1173は、ファイルサーバ2100に格納されているファイルのうち、今回のクローリングにて未選択のファイルの中から任意の一つのファイルを選択する(ステップS407)。
【0152】
その後、インデクシング制御サブプログラム1173は、選択した対象ファイルの最終更新日時情報を参照し、前回のインデックス更新日時よりも新しいか否かを判定する(ステップS408)。
【0153】
当該ファイルの最終更新日時が前回のインデックス更新日時よりも新しい場合(ステップS408でYesの場合)、インデクシング制御サブプログラム1173は、対象ファイルを検索インデックスの更新対象ファイルと判断し、検索インデックス更新対象リストに、当該ファイルのファイル名を追加する(ステップS409)。その後、ステップS406に戻り、全ての対象ファイルについて上記処理を繰り返す。
【0154】
また、当該ファイルの最終更新日時が前回のインデックス更新日時よりも古い場合(ステップS408でNoの場合)、インデクシング制御サブプログラム1173は、対象ファイルの検索インデックスを更新不要と判断し、ステップS406に戻る。以降は同様に全ての対象ファイルについて上記処理を繰り返す。
【0155】
差分インデクシング処理のケースにて全ファイルをクロールした場合(ステップS406でYesの場合)、インデクシング制御サブプログラム1173は、検索インデックス更新対象リストに記載されたファイルを対象に、検索インデックス更新を行う(ステップS405)。以上で、差分インデクシング処理を終了する。
【0156】
上記処理により、予め設定された契機(または周期)になるとフルインデクシング処理または差分インデクシング処理によって、検索インデックスの更新が完了する。
【0157】
図20は、検索サーバ1100における検索インデックスを利用したファイル検索処理の流れを示すフローチャートである。以下では、検索サーバ1100上の検索応答制御サブプログラム1174を実行するプロセッサ1110が行うファイル検索処理を例に説明する。具体的には、クライアントマシン4100上の検索クライアント制御プログラム4124から検索サーバ1100に対して検索要求が送信された場合における検索処理を説明する。この処理は、検索制御プログラム1124が検索要求を受信したときに開始される。なお、上記図13と同様に説明を簡易にするためプロセッサ1110の記載は省略する。
【0158】
はじめに、検索応答制御サブプログラム1174は、検索要求元(クライアントマシン4100)から受信した検索要求の内容を解析して、検索要求で指定された検索条件を取得する(ステップS501)。
【0159】
次に、検索応答制御サブプログラム1174は、検索要求で指定された検索条件について、検索用のフィールド名を変換する必要があるか否かを判定する(ステップS502)。ここでは、検索インデックススキーマ管理表7300のフィールド名7310と同じ名前を検索条件で指定している場合は、当該フィールド名で直接検索可能なため変換不要であると判定する。一方、検索条件としてスキーママッピング管理表7200のフィールドエイリアス7260とネームスペース名7220を指定している場合、またはスキーママッピング管理表7200のフィールドエイリアス7260とメタデータスキーマ管理表7100のネームスペースエイリアス7120を指定している場合は、直接検索できないため、検索可能なフィールド名に変換する。したがって、検索条件として検索インデックススキーマ管理表7300のフィールド名7310が指定されている場合は、変換不要と判断し、それ以外の場合は変換必要と判断する。
【0160】
フィールド名の変換が必要な場合(ステップS502でYesの場合)、検索応答制御サブプログラム1174は、メタデータスキーマ管理表7100とスキーママッピング管理表7200の登録情報を基に、フィールド名の変換を行う(ステップS503)。具体的には、検索条件としてスキーママッピング管理表7200のフィールドエイリアス7260とネームスペース名7220を指定している場合は、当該レコードのフィールド名7240に変換する。また、検索条件としてスキーママッピング管理表7200のフィールドエイリアス7260とメタデータスキーマ管理表7100のネームスペースエイリアス7120を指定している場合は、当該ネームスペースエイリアス7120に対するネームスペース名7130を取得することで、上記と同様にネームスペース名7220に対応するフィールド名7240に変換する。その後、ステップS504に遷移する。
【0161】
一方、フィールド名の変換が不要な場合(ステップS502でNoの場合)、検索応答制御サブプログラム1174は、検索インデックス管理表7400を参照して、検索条件に合致するレコードを特定し、当該レコードに格納されているファイル識別情報7431、7434などを取得する(ステップS504)。
【0162】
次に、検索応答制御サブプログラム1174は、検索インデックス登録ファイル管理表7500を参照して、前の処理で取得したファイル識別情報7431、7434から対象ファイルのファイルパス名7520を取得する(ステップS505)。
【0163】
最後に、検索応答制御サブプログラム1174は、取得した情報をもとに検索結果をまとめて要求元に応答し、処理を終了する(ステップS506)。
【0164】
上記処理により、検索サーバ1100は、クライアントマシン4100から検索要求を受信すると、検索条件に合致するファイルパスを応答する。このとき、検索サーバ1100は、検索要求がフィールド名の変換が必要な場合には、メタデータスキーマ管理表7100とスキーママッピング管理表7200からフィールド名を変換することで、検索条件に合致するファイルパスを検索できる。
【0165】
図21は、前述したファイル検索処理を検索ユーザが利用するクライアントマシン4100の出力装置4172の画面から行う場合における操作画面例を示す。ファイル検索画面8400では、検索条件入力欄8410と、検索結果出力欄8420を提供する。
【0166】
検索条件入力欄8410には、各種検索条件を入力するための入力欄を提供する。ここでは、複数の条件を論理式で組み合わせたものを検索条件として入力できれば、どのような形式でもよい。ここで述べる検索条件とは、検索対象フィールド名、当該フィールドで特定されるフィールドに格納されている値もしくは値の範囲を示したものを組み合わせたものに相当する。検索対象フィールド名を特定するために、さらに当該フィールド名のネームスペース名や、ネームスペース名のエイリアスを追加してもよい。また、フィールド名のかわりにフィールドエイリアスを指定してもよい。図で示している例では、ネームスペースエイリアスが”A2”であって、かつフィールド名”PatientID”で特定されるフィールドの値が”1000”となるものを検索する場合の検索条件を示している。
【0167】
上記の検索条件を入力した後、Searchボタン8411を押下することで、指定された検索条件をクライアントマシン4100から検索サーバ1100へ送信し、検索が実行される。
【0168】
検索結果出力欄8420には、前述したSearchボタン8411を押下した後、指定された検索条件で検索サーバ1100が検索した結果を出力する。図で示している例では、検索結果として検索条件に合致するファイルをリスト形式で出力したリスト出力8430を示している。検索結果の出力形式は、Listボタン8421を押下することで、リスト出力形式で出力し、Tableボタン8422を押下することで、後述するテーブル出力形式で出力する。なお、リスト出力形式やテーブル出力形式以外の任意の出力形式を指定してもよい。
【0169】
また、リスト出力8430において、各ファイルのメタデータに関するフィールド名とメタデータの値に関する情報を出力してもよい。どのフィールドを出力するのか、またはどのようなフォーマットで出力するのかについて設定してもよい。
【0170】
また、検索結果の整列条件入力欄8423を提供し、どのフィールドで整列させるのかを指定すると共に、降順昇順のどちらで整列させるのかを指定するため、それぞれASCボタン8424、DESCボタン8425を提供する。整列条件入力欄8423にフィールド名を入力した後、ASCボタン8424を押下することで、当該フィールドの値を使用して昇順に整列したものを出力する。整列条件入力欄8423にフィールド名を入力した後、DESCボタン8425を押下することで、当該フィールドの値を使用して降順に整列したものを出力する。
【0171】
図22は、前述したファイル検索処理をクライアントマシン4100の検索ユーザ向け画面から行う場合における操作画面例として、検索結果をテーブル出力形式にした場合の例を示す。画面構成は図21とほとんど同じである。以降では、図21との差分についてのみ説明する。
【0172】
図21に示した画面との差分は、検索結果出力欄8420において、検索結果として検索条件に合致するファイルをテーブル形式で出力したテーブル出力8440になっている点である。テーブル出力形式で出力する場合、各ファイルのメタデータに関するフィールド名とメタデータの値に関する情報をテーブルの各カラムとして出力している。どのフィールドを出力するのか、またはどのようなフォーマットで出力するのかについて設定してもよい。
以上、本発明の実施例1について説明したが、本発明はこの実施例1に限定されることなくその趣旨を逸脱しない範囲内で種々の構成をとることができることは言うまでもない。
【0173】
以上のように、本実施例1によれば、データ検索で指定する検索条件として、データフォーマットのオリジナルのメタデータ名や、検索サーバ1100が付与するメタデータ名だけでなく、検索時の利便性を考慮したネームスペース名7130の別名(ネームスペースエイリアス7120)も設定可能とする。これにより、検索サーバ1100は、検索対象のデータのデータフォーマットが異なっていても、特定のメタデータを持つファイルを容易に識別することが可能となる。したがって、複数種類のメタデータを持つファイルをファイルサーバ2100に蓄積して検索サーバ1100で検索サービスを提供することが可能となる。
【0174】
なお、上記実施例1では、メタデータ名をスキーマ定義ファイル7000から抽出する例を示したが、スキーマ定義ファイル7000がXMLで構成される場合、メタデータ名に代わってタグ名を用いてもよい。
【0175】
また、上記実施例1では、検索サーバ1100は、検索インデックススキーマ管理表7300のフィールドを更新した後に、最初に検索インデックス管理表の更新を行う際には、当該更新されたフィールドに対応するファイルのデータを検索インデックス管理表7400に取り込むことができる。すなわち、検索サーバ1100では、検索インデックススキーマ管理表7300に所望の検索インデックススキーマ定義を追加した後に、追加したフィールド名に対応するメタデータ名を持つファイルを更新対象として特定する。検索サーバ1100は、更新対象として特定したファイルについてインデクシングを行って検索インデックス管理表7400及び検索インデックス登録ファイル管理表7500を更新することができる。
【実施例2】
【0176】
上述した実施例1は、検索サーバ1100の検索インデックススキーマ管理表7300のフィールドを更新した後、最初に検索インデックスの更新を行う時に、当該更新フィールドに関するデータを検索インデックス管理表7400に取り込んで検索できる。当該フィールドを更新した後に、フルインデクシングにて検索インデックスの更新を行う場合、検索対象ファイルの全てに関する更新フィールドの情報も漏れなく取得できる。
【0177】
しかし、ファイルサーバ2100に格納されるファイル数が多い場合、フルインデクシングによる検索インデックスの更新処理は時間がかかりすぎてしまう問題が起こりえる。
【0178】
一方で、差分インデクシングによる検索インデックスの更新を行う場合、更新フィールドを持つファイルがファイルサーバ2100上で更新されていないとき、検索サーバ1100が当該ファイルを検索インデックスの更新対象ファイルと判別できないため、当該更新フィールドに関するデータを検索インデックス管理表7400に取り込めない。具体的には、前回の検索インデックス更新日時よりも前に当該ファイルが更新されている場合が該当する。このため、検索インデックススキーマ管理表7300にフィールドを追加しても、検索対象ファイルの最終更新日時によっては、検索インデックス管理表7400に当該ファイルのフィールドに関する情報を反映できない。
【0179】
このことは、検索インデックススキーマ管理表7300へのフィールド追加のみならず、フィールドタイプの変更や、フィールド名のリネームなども同じような問題が発生する可能性がある。
【0180】
このため、検索インデックススキーマ管理表7300におけるフィールド情報の更新後における検索インデックス更新処理をより高速かつ効率よく実施する仕組みが必要となる。
【0181】
そこで、以下では、検索サーバ1100がファイルサーバ2100に格納されているファイルを対象に検索インデックス更新を行う際に、自検索サーバ1100における検索インデックススキーマ管理表7300におけるフィールド更新があるか否かを判定する。フィールド更新があった場合は、当該フィールド名をキーワードとして、自検索サーバ1100にて管理する検索インデックス管理表7400を使用してファイル検索を行い、当該検索にヒットしたファイルも検索インデックス更新の対象ファイルとして扱うことが可能な差分インデクシングの制御を第2の実施例として説明する。
【0182】
なお、第2の実施例と第1の実施例の差異は、検索インデックススキーマ管理表7300と、検索インデックススキーマ定義の登録処理と、検索インデックスの更新処理の一部が異なり、その他の構成は前記第1の実施例と同様である。
【0183】
図23は、実施例2の計算機システムで行われる一連の処理の流れを例示する説明図である。ここでは、管理マシン3100から検索サーバ1100に対するスキーママッピング登録処理(処理(6−n))ならびに検索サーバ1100からファイルサーバ2100上のファイルに対する検索インデックスの更新処理(処理(7−n))の2つの処理について、それぞれ説明する。なお、処理(6−n)ならびに処理(7−n)は、それぞれ実施例1の図6における処理(3−n)ならびに処理(4−n)に対応するものである。図6における処理(1−n)、処理(2−n)および処理(5−n)は、実施例2においても同じ処理の流れとなる。このため、重複した説明は省略する。
【0184】
はじめに、スキーママッピング登録処理(6−n)について説明する。システム管理者は、管理マシン3100の検索サーバ管理クライアント制御プログラム3124を利用して、検索サーバ1100に対して検索インデックススキーマ登録画面8300(図18参照)を呼び出す(処理(6−1))。この処理において、システム管理者は、検索インデックススキーマ登録に利用するために、実施例1の処理(2−n)で利用したネームスペースエイリアスを指定する。検索サーバ1100は、指定されたネームスペースエイリアスより、スキーママッピング管理表7200から該当するスキーママッピング情報を取得し、当該情報をもとに検索インデックススキーマ定義の候補を生成し、要求元(管理マシン3100)に候補の内容を提示する(処理(6−2))。ここで生成する検索インデックススキーマ定義は、スキーママッピング定義におけるフィールド名と、各フィールドのデータ種別からなる。システム管理者は、提示された内容を確認し、必要に応じて候補の内容に対する更新情報を検索サーバ1100に対して送る(処理(6−3))。検索サーバ1100は、検索インデックススキーマ定義の候補と、要求元からの更新情報をもとに、最終的な検索インデックススキーマ定義を生成し、検索インデックススキーマ管理表7300に格納する(処理(6−4))。この処理を行う時、検索インデックススキーマ管理表7300のレコードごとに、当該レコードの最終更新日時に関する情報を新たに格納する。これにより、検索サーバ1100における検索インデックススキーマ定義を更新でき、新たに検索可能なメタデータを追加すると共に、当該メタデータに対応するフィールドがいつ追加されたのかを判別することができる。以上が、検索インデックススキーマ定義登録処理の一連の流れとなる。
【0185】
次に、検索インデックスの更新処理(7−n)について説明する。検索サーバ1100上の検索制御プログラム1124は、ファイルサーバ2100に対してファイルアクセスを行い、検索インデックスを更新する必要があるファイルを特定し、更新が必要なファイルの読み出しを行う(処理(7−1))。
【0186】
ここで、検索サーバ1100検索がインデックスを更新する必要があるファイルを特定するためには、対象ファイルの最終更新日時を取得して、前回の検索インデックス更新日時よりも新しいか否かをもとに判断する。ファイルアクセス要求を受けたファイルサーバ2100は、必要に応じて自身が管理するファイルシステム2170を利用して、対象ファイルの情報を取得し、要求元(管理マシン3100)に送信する(処理(7−2))。更新対象ファイルを取得した検索制御プログラム1124は、当該ファイルのファイル種別を特定する。そして、検索インデックススキーマ管理表7300から当該ファイル種別に合致するスキーマ定義情報を取得の上、当該ファイルを解析して検索インデックスデータ生成のために必要な情報を抽出する(処理(7−3))。検索制御プログラム1124は、生成した情報をもとに検索インデックスデータを生成し、検索インデックス管理表7400ならびに検索インデックス登録ファイル管理表7500に反映させる(処理(7−4))。その後、検索制御プログラム1124は、検索インデックススキーマ管理表7300の各レコードに新たに登録したスキーマ定義最終更新日時を取得し、前回の検索インデックス更新日時よりも新しいレコードのフィールド名一覧を取得する(処理(7−5))。
【0187】
検索制御プログラム1124は、取得したフィールド名を検索キーワードとして指定し、検索インデックス管理表7400ならびに検索インデックス登録ファイル管理表7500を利用して、当該検索キーワード(フィールド名)を含むファイルを検索する(処理(7−6))。
【0188】
検索サーバ1100上の検索制御プログラム1124は、検索結果として取得したファイルリストをもとに、ファイルサーバ2100に対してファイルアクセスを行い、対象ファイルの読み出しを行う(処理(7−7))。ファイルアクセス要求を受けたファイルサーバ2100は、必要に応じて自身が管理するファイルシステム2170を利用して、対象ファイルの情報を取得し、要求元に提供する(処理(7−8))。さらなる更新対象ファイルを取得した検索制御プログラム1124は、当該ファイルのファイル種別を特定し、検索インデックススキーマ管理表7300から当該ファイル種別に合致するスキーマ定義情報を取得の上、当該ファイルを解析して検索インデックスデータ生成のために必要な情報を抽出する(処理(7−9))。
【0189】
検索制御プログラム1124は、生成した情報をもとに検索インデックスデータを生成し、検索インデックス管理表7400ならびに検索インデックス登録ファイル管理表7500に反映させる(処理(7−10))。以上が、検索サーバ1100による検索インデックスの更新処理の一連の流れとなる。
【0190】
上述のように、検索インデックススキーマ管理表7300のフィールドを更新した後、更新フィールドを特定し、キーワード検索機能を利用して当該フィールド名を持つファイルを取得し、差分インデクシングによる検索インデックスの更新を実施するためには、検索インデックススキーマ管理表7300の構成と、検索インデックススキーマ定義登録処理と、検索インデックス更新処理の一部を変更する。これらの変更内容は、図24図25図26で説明する。
【0191】
図24は、実施例1の図10で説明した検索インデックススキーマ管理表7300の変更内容を示す。本管理表の構成は、図10で説明した構成と比べて、各レコードにスキーマ定義最終更新日時7330を新たに格納する点が実施例1と異なる。このスキーマ定義最終更新日時7330には、当該レコードを検索インデックススキーマ管理表7300に追加した時、ならびに当該レコードの設定内容を更新した時に日時情報を格納する。これ以外は、図10の構成と同じである。
【0192】
図25は、実施例1の図17で説明した検索インデックススキーマ定義登録処理の変更内容を示す。本フローチャートは、図17で説明した検索インデックススキーマ定義登録処理に比べて、検索インデックススキーマ管理表7300への検索インデックススキーマ定義候補を登録する際に新たな情報として、図24に示したスキーマ定義最終更新日時7330に関する情報も追加登録する点が異なる。具体的には、以下で説明する。
【0193】
図25のフローチャートにおいて、実施例1に示した図17からの変更点は、ステップS308の次にステップS309を新たに追加している点である。それ以外は、図17と同じである。以下、変更した部分に関する説明のみを行う。
【0194】
ステップS308による処理が終わった後、検索インデックススキーマ制御サブプログラム1171は、検索インデックススキーマ管理表7300の新規追加レコードや更新レコードに対して、現時点の日時情報をスキーマ定義最終更新日時7330に登録する(ステップS309)。これにより、当該レコードがいつ更新されたのかがわかるようになる。この情報は、後述する検索インデックス更新処理で使用する。
【0195】
図26A図26Bは、実施例1の図19で説明した検索インデックス更新処理の一部を変更したフローチャートを示す。本フローチャートは、図19で説明した検索インデックス更新処理と比べて、検索インデックススキーマ管理表7300に新たに登録されたスキーマ定義最終更新日時7330を取得し、当該更新日時が前回の検索インデックス更新日時よりも新しいレコードに格納されているフィールド名7310を取得し、当該フィールド名7310をキーワードとしてファイル検索を行い、ヒットしたファイルも検索インデックス更新対象ファイルとして扱う点が異なる。具体的には、以下で説明する。
【0196】
図26Aのフローチャートにおいて、図19からの変更点は、ステップS401にてYesとなる場合の処理が、図19のステップS406に先立ち、ステップS410を新たに追加している点と、図26BのステップS406にてYesとなる場合の処理が、図19のステップS405に先立ち、ステップS411を新たに追加している点である。それ以外は、図19と同じである。以下、変更した部分に関する説明のみを行う。
【0197】
ステップS401でYesとなる場合、インデクシング制御サブプログラム1173は、検索インデックススキーマ管理表7300のスキーマ定義最終更新日時7330の情報が、前回の検索インデックス更新日時よりも新しい全レコードのフィールド名7310を取得する(ステップS410)。ここで取得したフィールド名7310は、後の処理で検索インデックス更新対象ファイルの特定に使用する。ちなみに、ここでは、取得したフィールド名7310から、当該フィールド名と関連付けられているメタデータ名7230についても、スキーママッピング管理表7200から取得する。以降の処理で、フィールド名7310で検索を行う場合、このメタデータ名7230でも検索を行う。
【0198】
また、図26BのステップS406でYesとなる場合、インデクシング制御サブプログラム1173は、検索インデックス管理表7400を利用し、ステップS410で取得したフィールド名7310ならびに当該フィールド名と関連付けられたメタデータ名7230と同じ文字列を含むファイルを全文検索する。インデクシング制御サブプログラム1173は、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する(ステップS411)。
【0199】
ここで、検索結果としてヒットしたファイルのファイル名については、検索インデックス登録ファイル管理表7500から取得する。この処理によって、前記実施例1に示したファイル最終更新日時による差分インデクシングでは、検索インデックス更新対象ファイルとして抽出困難だったファイルも更新対象ファイルとしてリストアップすることが可能となり、検索インデックスの更新を行うことができる。
【0200】
以上の処理を実施することで、検索サービスの利用者から見れば、検索対象ファイル数が多い場合でも検索インデックスの更新をより高速かつ効率よく実施することが可能となる。これにより、検索サービスにおける検索鮮度の向上につながり、検索サービスへの満足度向上にも寄与することが可能になる。また、検索サービスのシステム管理者から見れば、検索対象のファイル数が多い場合でも、検索インデックス更新をより高速かつ効率よく実施することは、検索インデックスの更新処理に必要となる計算機資源の削減にも寄与することが可能になる。
【実施例3】
【0201】
上述した実施例2は、フィールド名をキーワードとして指定した全文検索機能を利用することで、検索インデックスの更新対象ファイルの取りこぼしを防ぐものであった。しかし、単純な全文検索機能を利用した場合、当該フィールド名と同じ文字列を任意のフィールド値として格納されているファイルについても、対象ファイルとしてリストアップされてしまう。これは、検索インデックスの更新対象ファイルの取得漏れは回避できる半面、更新対象ではないファイルも更新対象として取得してしまうという問題が生じる。
【0202】
このため、検索インデックススキーマ管理表7300におけるフィールド更新後に、当該更新フィールド名を持つファイルのみをリストアップするための仕組みが必要となる。
【0203】
そこで、以下では、検索サーバ1100が検索対象ファイルに関連付けられている全てのメタデータ名を、当該ファイルをインデクシングする際に、あわせてインデクシングする。検索サーバ1100がファイルサーバ2100に格納されているファイルを対象に検索インデックスの更新を行う際に、自検索サーバにおける検索インデックススキーマ管理表7300においてフィールドの更新があるか否かを判定する。フィールドの更新があった場合は、当該フィールド名を検索条件に指定して、自検索サーバ1100にて管理する検索インデックス管理表7400を使用してメタデータ検索を行い、当該メタデータ検索にヒットしたファイルも検索インデックス更新対象ファイルとして扱うことが可能な差分インデクシングの制御を実施例3として説明する。
【0204】
上述のように、検索サーバ1100は、検索インデックススキーマ管理表7300のフィールドを更新した後、更新したフィールドを特定し、メタデータ検索機能を使用して当該フィールド名を持つファイルを抽出し、差分インデクシングによる検索インデックス更新を実施するためには、検索インデックススキーマ管理表7300のフィールド定義と、検索インデックススキーマ定義更新処理と、検索インデックス更新処理の一部を変更する。これらの変更内容は、図27図28A図28B図29A図29Bで説明する。
【0205】
図27は、実施例2の図24で説明した検索インデックススキーマ管理表7300の一部を変更したものである。の変更内容を示す。本管理表の構成は、図24で説明した構成と比べて、”MetadataName”というフィールド名7310を持つレコードを追加している点が異なる。このレコードには、検索対象ファイルに関連付けられているメタデータ名の文字列を抽出し、インデクシングすることを意味する。なお、ここで新たに追加したレコードのフィールド名7310として設定する文字列は、任意の文字列でもよい。ここで追加するレコードのフィールドタイプ7320は、文字列の配列もしくは文字列のリストにする。この理由は、ファイルに複数のメタデータが関連付けられている場合、全てのメタデータ名をインデクシングするためである。これ以外は、図24の構成と同じである。
【0206】
図28A図28Bは、実施例2の図25で説明した検索インデックススキーマ定義登録処理の一部を変更したフローチャートである。本フローチャートは、図25で説明した検索インデックススキーマ定義登録処理に比べて、検索インデックススキーマ管理表7300に、メタデータ名をインデクシングするフィールドを追加する点が異なる。具体的には、以下で説明する。
【0207】
図28A図28Bのフローチャートにおいて、図25からの変更点は、図28BのステップS308の次にステップS310を新たに追加している点である。それ以外は、図25と同じである。以下、変更部分に関する説明のみを行う。
【0208】
ステップS308による処理が終わった後、検索インデックススキーマ制御サブプログラム1171は、メタデータ名をインデクシングするフィールドを、検索インデックススキーマ管理表7300に登録する(ステップS310)。この処理では、当該検索サーバ1100において、メタデータ名のインデクシング用に付与したフィールド名を持つレコードを検索インデックススキーマ管理表7300に登録する。
【0209】
このレコードを追加することにより、次に検索インデックスの更新を行う際に、検索対象ファイルのメタデータ名一式をインデクシングし、検索できる。この情報は、後述する検索インデックス更新処理で使用する。なお、検索インデックススキーマ管理表7300において、既にメタデータ名のインデクシング用のレコードが登録済みであった場合は、何もせずに次の処理に遷移する。
【0210】
図29A図29Bは、実施例2の図26A図26Bで説明した検索インデックス更新処理の一部を変更したフローチャートである。本フローチャートは、図26A図26Bで説明した検索インデックス更新処理と比べて、検索インデックススキーマ管理表7300のメタデータ名のインデクシング用のフィールドを使用してメタデータ検索を行い、ヒットしたファイルも検索インデックスの更新対象ファイルとして扱う点が異なる。具体的には、以下で説明する。
【0211】
図29A図29Bのフローチャートにおいて、図26A図26Bからの変更点は、図29BのステップS406にてYesとなる場合の処理が、図26BのステップS411をステップS412に変更している点、ならびに図26BのステップS405をステップ413に変更している点である。それ以外は、図26A図26Bと同じである。以下、変更部分に関する説明のみを行う。
【0212】
図29BのステップS406でYesとなる場合、インデクシング制御サブプログラム1173は、検索インデックス管理表のメタデータ名のインデクシング用フィールドを使用し、当該フィールド名ならびに関連付けられたメタデータ名と同じ文字列をメタデータ名として含むファイルを検索し、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する(ステップS412)。
【0213】
ここで、検索結果としてヒットしたファイルのファイル名については、検索インデックス登録ファイル管理表7500から取得する。この処理によって、実施例2のような全文検索を利用した場合と比べて、検索インデックス更新対象リストに追加されるファイルについて、本来検索インデックス更新が不要なファイルがリストアップされる可能性を下げることができる。
【0214】
また、ステップS412の処理が終わった後、あるいはステップS402でYesとなる場合、インデクシング制御サブプログラム1173は、ステップS405のかわりに、検索インデックス更新対象リストに記載されたファイルを対象に検索インデックスを更新すると共に、対象ファイルの全てのメタデータ名を抽出してインデクシングする(ステップS413)。ここでメタデータ名をインデクシングすることによって、前述したステップS412において、検索インデックス更新対象リストに載せるべきファイルについて、フィールド名7310ならびに関連付けられたメタデータ名7230で検索することで対象ファイルを特定することができる。
【0215】
以上の処理を実施することで、実施例2と比べて、さらに検索インデックスの更新対象ファイルの絞り込み精度を向上させることができる。
【実施例4】
【0216】
上述した実施例3は、フィールド名をインデクシングした上で、フィールド名を使用したメタデータ検索機能を利用することで、検索インデックス更新対象ファイルの取りこぼしを防ぐものであった。しかし、これらの情報を検索インデックス管理表7400の中に格納することによって、当該管理表7400のデータ量が増え、本来の検索サービスで提供すべき検索機能に関する処理性能が悪化する可能性も考えることができる。
【0217】
このため、フィールド名ならびに当該フィールド名と関連付けられたメタデータ名を検索インデックス管理表7400の中に格納するのではなく、別途管理する仕組みが必要になる。
【0218】
そこで、以下では、検索インデックススキーマ管理表7300のフィールド名7310に関連付けられたメタデータ名7230について、それぞれどのファイルに存在するのかを示すメタデータ名管理表を検索サーバ1100に新たに導入し、メタデータ名管理表7600を使用した差分インデクシングによって検索インデックスを更新する制御の例を実施例4として説明する。
【0219】
上述のように、メタデータ名管理表7600を導入し、当該メタデータ名管理表7600を利用した差分インデクシングによる検索インデックス更新を実施するためには、検索サーバ1100の構成と、検索インデックス更新処理の一部を変更することに加え、新たにメタデータ名管理表7600を追加する。これらの内容は、図30図31図32A図32Bで説明する。
【0220】
図30は、実施例1の図2で説明した検索サーバ1100の構成の一部を変更したブロック図である。本構成は、図2で説明した構成と比べて、メモリ1120上に新たにメタデータ名管理表7600を追加している点が異なる。このメタデータ名管理表7600については後述する。これ以外は、図2の構成と同じである。
【0221】
図31は、メタデータ名管理表7600の構成を示す図である。メタデータ名管理表7600では、検索対象ファイルに含まれているメタデータ名を抽出し、メタデータ名の抽出結果をもとに、あるメタデータ名を含むファイルがどれなのかを特定するために必要な情報を管理する。
【0222】
具体的に、メタデータ名管理表7600は、メタデータID7610と、メタデータ名7620と、ファイルリスト7630という情報からなる。
【0223】
メタデータID7610は、メタデータ名を一意に特定するためのものである。これは本メタデータ名管理表7600の各レコードに機械的に付与された識別番号である。メタデータ名7620は、対象ファイルの中に含まれるメタデータ名の文字列を格納する。ファイルリスト7630は、当該レコードのメタデータ名7620を持つファイルを識別するための情報のリストを格納する。例えば、対象ファイルのファイルパス名を格納してもよいし、対象ファイルのURLを格納してもよいし、検索インデックス格納ファイル管理表7500のファイル識別情報7510と同じものを格納してもよい。
【0224】
図32A図32Bは、図26A図26Bで説明した検索インデックス更新処理のフローチャートの一部を変更したものである。本フローチャートは、図2626A図26Bで説明した検索インデックス更新処理と比べて、対象ファイルから抽出したメタデータ名をメタデータ名管理表7600に登録する点と、当該メタデータ名管理表7600を使用して検索インデックス更新対象ファイルを特定できる点が異なる。具体的には、以下で説明する。
【0225】
図32A図32Bのフローチャートにおいて、図26A図26Bからの変更点は、図32Aに示すステップS404の後の処理、図32Bに示すステップS409の後の処理およびステップS408にてNoとなる場合の処理が、図26A図26Bの処理に先立ち、ステップS414という新しい処理を追加している点、ならびに図26BのステップS411をステップS415に変更している点である。それ以外は、図26A図26Bと同じである。以下、変更した部分に関する説明のみ行う。
【0226】
ステップS404の後や、ステップS409の後や、ステップS408にてNoとなる場合において、インデクシング制御サブプログラム1173は、対象ファイルからメタデータ名を抽出して、抽出した情報をメタデータ名管理表7600に反映させる(ステップS414、S414A)。この処理は、各対象ファイルのインデクシング処理の一環として行ってもよい。
【0227】
また、ステップS406でYesとなる場合、インデクシング制御サブプログラム1173は、ステップS411のかわりに、メタデータ名管理表7600を使用し、当該フィールド名ならびに関連付けられたメタデータ名と同じ文字列を含むファイルを検索し、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する(ステップS415)。ここで、検索結果としてヒットしたファイルのファイル名については、必要に応じてさらなる変換処理を施す。例えば、メタデータ名管理表7600のファイルリスト7630に、検索インデックス登録ファイル管理表7500におけるファイル識別情報7510と同じ情報が格納されている場合、インデクシング制御サブプログラム1173は、検索インデックス登録ファイル管理表7500を使用して、当該ファイル識別情報7510に関連付けられているファイルパス名を別途取得する。この処理によって、実施例3のように、検索インデックス管理表7400にメタデータ名をインデクシングしなくても、実施例3と同程度の精度にて検索インデックス更新対象ファイルを特定できる。
【0228】
以上の処理を実施することで、実施例3と比べて検索インデックス管理表7400に格納するデータ量を増やすことなく、実施例3と同じ程度の精度で検索インデックスの更新対象ファイルの絞り込みを行うことができる。
【実施例5】
【0229】
上述した実施例4は、検索インデックススキーマ管理表7300のフィールド名7310に関連付けられたメタデータ名7230について、それぞれどのファイルに存在するのかを示すメタデータ名管理表7600を検索サーバ1100に新たに導入し、メタデータ名管理表7600を使用した差分インデクシングの処理を示した。この手法を利用する場合、メタデータ名管理表7600のデータを検索サーバ1100上に格納する必要がある。検索サーバ1100における要件として、ストレージに格納可能なデータ量がそれほど多くないシステムの場合、メタデータ名管理表7600のデータを検索サーバ1100に格納することは難しい可能性がある。
【0230】
このため、メタデータ名管理表7600を検索サーバ1100にて管理するのではなく、別サーバにて管理する仕組みが必要になる。
【0231】
そこで、以下では、このメタデータ名管理表7600を検索対象ファイルが格納されているファイルサーバ2100に新たに導入し、検索サーバ1100がメタデータ名管理表7600を使用した差分インデクシングによって検索インデックスを更新する制御を実施例5として説明する。
【0232】
上述のように、メタデータ名管理表7600をファイルサーバ2100に導入し、メタデータ名管理表7600を利用した差分インデクシングによる検索インデックス更新を実施するためには、ファイルサーバ2100のハードウェア構成と、検索インデックス更新処理の一部を変更することに加え、上記実施例1〜実施例4でファイルサーバ2100にて提供していたファイルアクセス処理において、メタデータ名管理表7600に関する処理を新たに追加する。これらの内容は、図33図34図35A図35Bで説明する。
【0233】
図33は、図3で説明したファイルサーバ2100の構成の一部を変更したブロック図である。本構成は、実施例1の図3で説明した構成と比べて、メモリ2120上に新たにメタデータ名抽出制御プログラム2125とメタデータ名管理表7600を追加している点が異なる。メタデータ名抽出制御プログラム2125については後述する。このメタデータ名管理表7600については前記実施例4の図31で説明したものと同じである。これ以外は、実施例1の図3の構成と同じである。
【0234】
図34は、ファイルサーバ2100のファイル共有制御プログラム2124によって提供されているファイル共有サービスにおけるファイルアクセス処理の一例を示すフローチャートである。本処理では、ファイル共有サービスのクライアント(検索サーバ1100やクライアントマシン4100)から要求された各種ファイルアクセス処理を行う。
【0235】
このファイルアクセス処理を行う時、ファイル共有制御プログラム2124はメタデータ名抽出制御プログラム2125と連携して、対象ファイルの内容を解析してメタデータ名を抽出し、メタデータ名管理表7600に反映させる処理を新たに実施する。このメタデータ名抽出制御プログラム2125は、公知または周知の文字列解析プログラムなどを利用して、対象ファイルからメタデータ名に相当する文字列を抽出してもよい。
【0236】
はじめに、ファイル共有制御プログラム2124を実行するプロセッサ2120は、クライアントから要求されたファイルアクセス処理がファイル新規作成処理もしくは更新処理なのか否かを判定する(ステップS601)。ここでは、当該ファイルアクセス要求における処理種別情報をもとに、判別を行う。
【0237】
ファイル新規作成処理もしくは更新処理であった場合(ステップS601でYesの場合)、ファイル共有制御プログラム2124は、対象ファイルからメタデータ名を抽出し、抽出したメタデータ名をメタデータ名管理表7600に反映する(ステップS602)。ここで、メタデータ名の抽出は、メタデータ名抽出制御プログラム2125が連携して行う。その後、ファイル共有制御プログラム2124は、指定されたファイルアクセス処理を実施して(ステップS603)、処理を終了する。
【0238】
ファイル新規作成処理もしくは更新処理でない場合(ステップS601でNoの場合)、ファイル共有制御プログラム2124は、クライアントから要求されたファイルアクセス処理がファイル削除処理なのか否かを判定する(ステップS604)。ファイル削除処理であった場合(ステップS604でYesの場合)、ファイル共有制御プログラム2124は、削除対象ファイルに関する情報をメタデータ名管理表7600から削除する(ステップS605)。その後、ファイル共有制御プログラム2124は、指定されたファイルアクセス処理として、対象ファイルの削除を実施して(ステップS606)、処理を終了する。
【0239】
ファイル削除処理でない場合(ステップS604でNoの場合)、ファイル共有制御プログラム2124は、クライアントから指定されたファイルアクセス処理を実施して(ステップS607)、処理を終了する。
【0240】
図35A図35Bは、実施例2の図26A図26Bで説明した検索インデックス更新処理の一部を変更したフローチャートである。本フローチャートは、図26A図26Bで説明した検索インデックス更新処理と比べて、ファイルサーバ2100上のメタデータ名管理表7600を使用して検索を行い、検索でヒットしたファイルも検索インデックス更新対象ファイルとして扱う点が異なる。具体的には、以下で説明する。
【0241】
図35A図35Bのフローチャートにおいて、図26A図26Bからの変更点は、図35BのステップS406にてYesとなる場合の処理が、図26BのステップS411をステップS416に変更している点である。それ以外は、図26A図26Bと同じである。以下、変更部分に関する説明のみを行う。
【0242】
図35BのステップS406でYesとなる場合、インデクシング制御サブプログラム1173は、ステップS411のかわりに、ファイルサーバ2100上のメタデータ名管理表7600を使用し、ステップS410で取得したフィールド名ならびに関連付けられたメタデータ名と同じ文字列を含むファイルを検索し、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する(ステップS416)。ここで、検索結果としてヒットしたファイルのファイル名については、メタデータ名管理表7600のファイルリスト欄7630に格納されているファイルパス名を使用する。
【0243】
以上を実施することで、実施例4と比べて検索サーバ1100におけるデータ量を削減すると共に、実施例3と同じ程度の精度で検索インデックス更新対象ファイルの絞り込みを行うことができる。また、ファイルサーバ2100にて検索インデックス更新処理の前に事前にメタデータ名抽出処理を実施できるため、検索インデックス更新処理時におけるステップ数を削減することもできる。
【実施例6】
【0244】
上述した実施例5は、メタデータ名管理表7600をファイルサーバ2100に管理する例を示した。このメタデータ名管理表7600は、検索サーバ1100やファイルサーバ2100とは別のサーバにて管理してもよい。例えば、メタデータに関するデータを、検索サーバ1100やファイルサーバ2100とは別に、新たに設けたメタデータ管理サーバに集約して管理するような計算機システムでは、このメタデータ名管理表7600を当該メタデータ管理サーバにて管理することを考えることができる。
【0245】
このため、メタデータ名管理表7600を、検索サーバ1100やファイルサーバ2100とは別の任意のサーバで管理する仕組みが必要になる。
【0246】
そこで、以下では、このメタデータ名管理表7600を任意のサーバ(以降では、メタデータ管理サーバ5100と呼ぶ)に新たに導入し、検索サーバ1100ならびにファイルサーバ2100が、メタデータ名管理表7600を使用し、検索サーバ1100がメタデータ名管理表7600を使用した差分インデクシングによる検索インデックスの更新を実施する制御を実施例6として説明する。
【0247】
上述のように、メタデータ名管理表7600を検索サーバ1100やファイルサーバ2100以外のメタデータ管理サーバ5100に導入し、メタデータ名管理表7600を使用した差分インデクシングによる検索インデックスの更新を実施するためには、計算機システムの構成と、検索インデックス更新処理と、ファイルサーバ2100におけるファイルアクセス処理の一部を変更することに加え、メタデータ管理サーバ5100を新たに追加する。これらの内容は、図36図37図38A図38B図39で説明する。
【0248】
図36は、実施例1の図1で説明した計算機システム構成の一部を変更したブロック図を示す。本構成は、図1で説明した構成と比べて、メタデータ管理サーバ5100を追加している点が実施例1と異なる。メタデータ管理サーバ5100については後述する。このメタデータ管理サーバ5100は、図36の例では1台しか示していないが、この限りではない。メタデータ管理サーバ5100は、複数台存在してもよい。これ以外は、実施例1の図1の構成と同じである。
【0249】
図37は、メタデータ管理サーバ5100の構成を例示するブロック図である。メタデータ管理サーバ5100は、プログラムを実行するプロセッサ5110と、プログラムならびにデータを一時的に格納するメモリ5120と、外部記憶装置5160にアクセスするための外部記憶装置I/F5130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F5140と、それらを接続するバス5150から構成されている。メモリ5120には、外部記憶装置I/F5130を制御するプログラムである外部記憶装置I/F制御プログラム5121と、ネットワークI/F5140を制御するプログラムであるネットワークI/F制御プログラム5122と、当該メタデータ管理サーバ5100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム5123と、メタデータ名抽出制御プログラム5124と、メタデータ名管理表7600が格納される。
【0250】
図38A図38Bは、実施例4の図32A図32Bで説明した検索インデックス更新処理の一部を変更したフローチャートを示す。本フローチャートは、図32で説明した検索インデックス更新処理と比べて、対象ファイルから抽出したメタデータ名をメタデータ管理サーバ5100上のメタデータ名管理表7600に登録する点と、メタデータ管理サーバ5100上のメタデータ名管理表7600を使用して検索インデックス更新対象ファイルを特定できる点が異なる。具体的には、以下で説明する。
【0251】
図38A図38Bのフローチャートにおいて、図32A図32Bからの変更点は、図32A図32BのステップS414、S414AをステップS417、S417Aに変更している点、ならびに図32BのステップS415をステップS418に変更している点である。それ以外は、図32と同じである。以下、変更部分に関する説明のみ行う。
【0252】
ステップS404の後や、ステップS409の後や、ステップS408にてNoとなる場合において、インデクシング制御サブプログラム1173は、ステップS414にかわって、対象ファイルからメタデータ名を抽出して、抽出した情報をメタデータ管理サーバ5100上のメタデータ名管理表7600に反映させる(ステップS417)。この処理は、各対象ファイルのインデクシング処理の一環として行ってもよい。なお、この処理は、メタデータ名抽出を検索サーバ1100で行う場合にのみ実施すればよく、ファイルサーバ2100にてメタデータ名を抽出する場合は実施する必要はない。
【0253】
また、ステップS406でYesとなる場合、インデクシング制御サブプログラム1173は、ステップS415のかわりに、メタデータ管理サーバ5100上のメタデータ名管理表7600を使用し、当該フィールド名ならびに関連付けられたメタデータ名と同じ文字列を含むファイルを検索し、検索結果としてヒットした中から検索インデックス更新対象リストに未登録なファイル名を当該リストに追加する(ステップS418)。
【0254】
図39は、実施例5の図34で説明したファイルサーバ2100におけるファイルアクセス処理の一部を変更したフローチャートを示す。本フローチャートは、実施例5の図34で説明したファイルアクセス処理と比べて、抽出したメタデータ名をメタデータ管理サーバ5100上のメタデータ名管理表7600に反映させる点と、ファイル削除処理の際に、削除対象ファイルに関する情報をメタデータ管理サーバ5100上のメタデータ名管理表7600から削除する点が異なる。具体的には、以下で説明する。
【0255】
図39のフローチャートにおいて、実施例5の図34からの変更点は、図34のステップS602をステップS608に変更している点、ならびに図34のステップS605をステップS609に変更している点である。それ以外は、実施例5の図34と同じである。以下、変更部分に関する説明のみ行う。
【0256】
ステップS601でYesとなる場合、ファイル共有制御プログラム2124は、ステップS602にかわって、対象ファイルからメタデータ名を抽出し、メタデータ管理サーバ5100上のメタデータ名管理表7600に反映する(ステップS608)。なお、この処理は、メタデータ名抽出をファイルサーバ2100で行う場合にのみ実施すればよく、検索サーバ1100にてメタデータ名を抽出する場合は実施する必要はない。
【0257】
また、ステップS604でYesとなる場合、ファイル共有制御プログラム2124は、ステップS605にかわって、メタデータ管理サーバ5100上のメタデータ名管理表7600から削除対象ファイルに関する情報を削除する(ステップS609)。なお、この処理は、メタデータ名抽出をファイルサーバ2100で行う場合にのみ実施すればよく、検索サーバ1100にてメタデータ名を抽出する場合は実施する必要はない。
【0258】
以上の処理を実施することで、検索サーバ1100やファイルサーバ2100とは別のメタデータ管理サーバ5100にてメタデータ名管理表7600を提供するとともに、実施例3と同じ程度の精度で検索インデックス更新対象ファイルの絞り込みを行うことができる。
【実施例7】
【0259】
上述した実施例6は、メタデータ名管理表7600に登録するためのメタデータ抽出処理を、検索サーバ1100あるいはファイルサーバ2100にて行う例を示した。このメタデータ抽出処理は、検索サーバ1100やファイルサーバ2100とは別のサーバにて行ってもよい。例えば、ファイルサーバ2100上のファイルを定期的にクローリングして、対象ファイルからメタデータを抽出するようなメタデータ抽出サーバが存在してもよいし、ファイルサーバ2100にファイルを格納する際に、リバースプロキシサーバを経由するようなシステム構成にした上で、当該リバースプロキシサーバがメタデータ抽出サーバの役割も担って対象ファイルからメタデータを抽出してもよい。メタデータ抽出サーバを別サーバとすることで、例えば、メタデータ抽出処理に関する処理を負荷分散することも可能になる。
【0260】
このため、メタデータ抽出処理を検索サーバ1100やファイルサーバ2100とは別の任意のサーバで実施する仕組みが必要になる。
【0261】
そこで、以下では、任意のサーバ(以降では、メタデータ抽出サーバと呼ぶ)を新たに導入し、当該メタデータ抽出サーバにて対象ファイルのメタデータ名を抽出し、抽出した情報をメタデータ名管理表7600に格納する制御方法を実施例7として説明する。
【0262】
なお、当該メタデータ抽出サーバでは、メタデータ名の抽出だけでなく、任意の情報を抽出してもよい。また、抽出した情報をメタデータ名管理表7600に反映させるだけでなく、任意の管理表などに情報を反映させてもよい。
【0263】
上述のように、メタデータ抽出サーバを新たに導入し、そこでメタデータ名抽出を行うためには、システム構成の一部を変更することに加え、メタデータ抽出サーバとメタデータ抽出処理を新たに追加する。これらの内容は、図40図41図42で説明する。
【0264】
図40は、実施例6の図36で説明した計算機システムに構成の変更を加えたブロック図である。本構成は、実施例6の図36で説明した構成に比べて、メタデータ抽出サーバ6100を追加している点が異なる。メタデータ抽出サーバ6100については後述する。このメタデータ抽出サーバ6100は、図の例では1台しか示していないが、この限りではない。メタデータ抽出サーバ6100は、複数台存在してもよい。これ以外は、図36の構成と同じである。
【0265】
図41は、メタデータ抽出サーバ6100の構成を例示する説明図である。メタデータ抽出サーバ6100は、プログラムを実行するプロセッサ6110と、プログラムならびにデータを一時的に格納するメモリ6120と、外部記憶装置6160にアクセスするための外部記憶装置I/F6130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F6140と、それらを接続するバス6150から構成されている。
【0266】
メモリ6120には、外部記憶装置I/F6130を制御するプログラムである外部記憶装置I/F制御プログラム6121と、ネットワークI/F6140を制御するプログラムであるネットワークI/F制御プログラム6122と、当該メタデータ抽出サーバ6100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ制御プログラム6123と、メタデータ名抽出制御プログラム6124が格納される。
【0267】
このメタデータ名抽出制御プログラム6124は、公知または周知の文字列解析プログラムなどを利用して、対象ファイルからメタデータ名に相当する文字列を抽出してもよい。なお、このメタデータ抽出サーバ6100にて、メタデータ名管理表7600を管理してもよい。
【0268】
図42は、メタデータ抽出サーバ6100のメタデータ抽出制御プログラム6124によって提供されているメタデータ抽出処理の流れを示す。本処理では、メタデータ抽出制御プログラム6124を実行するプロセッサ6110が抽出対象となるファイルを取得し、メタデータの抽出処理と抽出したメタデータの出力処理を行う。
【0269】
はじめに、メタデータ抽出制御プログラム6124を実行するプロセッサ6110は、メタデータ抽出対象ファイルを受信する(ステップS701)。なお、メタデータ抽出制御プログラム6124がどのように抽出対象ファイルを特定して取得するのかについては、公知または周知の手法を用いればよいのでここでは詳述しない。メタデータ抽出サーバ6100が抽出対象ファイルを格納したファイルサーバ2100のファイルシステム2170を定期的にクローリングしてもよいし、ファイルサーバ2100などから更新対象ファイルを送信してもよいし、ファイルサーバ2100におけるファイルアクセス操作のリバースプロキシサーバとして位置づけることにより、各ファイルアクセス操作の中で対象ファイルの情報を取得してもよい。
【0270】
次に、メタデータ抽出制御プログラム6124は、対象ファイルからメタデータを抽出し、所定の処理を実行して所定の場所(計算機)に抽出結果を出力する(ステップS702)。例えば、抽出したメタデータの名前と値のペアを検索サーバ1100に送ることで、検索サーバ1100がメタデータ検索のために当該メタデータ一式をインデクシングしてもよい。もちろん、出力先は、自サーバ6100内でもよいし、リモートのサーバでもよい。出力方法ならびに出力形式は、出力先で受付可能な方法や形式を選択することができる。
【0271】
次に、メタデータ抽出制御プログラム6124は、メタデータ名管理表7600を持つサーバ(5100)に対して、抽出したメタデータ名を反映する(ステップS703)。このメタデータ名管理表7600は任意のサーバでよく、ローカルのサーバでもリモートのサーバでもよい。この処理により、検索サーバ1100が差分インデクシングによる検索インデックス更新処理を行う際に、検索インデックス更新対象ファイルの特定のために、当該メタデータ名管理表7600に格納されている情報を利用することができる。
【0272】
以上の処理を実施することで、検索サーバ1100やファイルサーバ2100とは別のメタデータ抽出サーバ6100にてメタデータ抽出処理を行うことができる。これにより、メタデータ抽出処理の負荷分散などを実現できる。
【実施例8】
【0273】
上述した実施例2は、検索サーバ1100が差分インデクシングにて検索インデックス更新処理を行う際に、検索サーバ1100からファイルサーバ2100上の全ファイルをクロールし、対象ファイルの最終更新日時を確認した上で、検索インデックスの更新対象ファイルを特定していた。しかし、かかる検索インデックスの更新対象ファイルの特定を、ファイルサーバ2100側にて行う方法もある。具体的には、ファイルサーバ2100において、格納されたファイルに対するファイル操作履歴を保管する。このファイル操作履歴には、ファイルに対する作成、更新、削除、参照といった操作種別も付与しておく。
【0274】
ファイルサーバ2100は、かかるファイル操作履歴をもとにした検索サービスを提供する。具体的には、当該ファイルサーバ2100において、任意の日時以降に作成、更新、および削除されたファイルの一覧が欲しい場合、かかる検索条件を指定することで、検索結果としてかかる検索条件に合致するファイルのリストを提供できる。
【0275】
この仕組みを検索サーバ1100が利用できれば、前回のインデックス更新日時を検索条件に指定して、当該日時以降に作成、更新、削除されたファイルのリストをファイルサーバ2100に対して要求し、かかる検索条件のファイルリストを取得することができる。これが利用できれば、検索対象ファイル全てをクローリングする必要がなくなるため、検索サーバ1100側における差分インデクシング処理をさらに効率よく実施できる。
【0276】
このため、ファイルサーバ2100には、当該ファイルサーバにおけるファイル操作履歴を保管し、ファイル操作履歴を検索する仕組み(以降、Change File Notification制御と呼ぶ)が必要となる。
【0277】
そこで、以下では、ファイルサーバ2100にてファイルに対する操作履歴を保管し、操作履歴を検索できるようにした上で、検索サーバ1100が検索インデックススキーマ管理表7300を更新した後で、差分インデクシングによる検索インデックス更新処理を行う際に、検索インデックス更新対象ファイルの特定のためにかかる検索機能を利用する制御を実施例8として説明する。
【0278】
上述のように、ファイルサーバ2100においてChange File Notificationを実施し、このNotificationを利用して差分インデクシングによる検索インデックス更新処理を行うためには、ファイルサーバのハードウェア構成と、検索インデックス更新処理の一部を変更することに加え、ファイル更新リスト管理表と、ファイル更新リスト登録処理と、ファイル更新リスト問合せ処理を新たに追加する。これらの内容は、図43図44図45図46A図46B図47で説明する。
【0279】
図43は、実施例1の図3で説明したファイルサーバ2100の構成の一部を変更したブロック図を示す。本構成は、図3で説明した構成と比べて、メモリ1120上に新たにChange File Notification制御プログラム2126とファイル更新リスト管理表7700を追加している点が異なる。Change File Notification制御プログラム2126とファイル更新リスト管理表7700については後述する。これ以外は、実施例1の図3の構成と同じである。
【0280】
図44は、ファイルサーバ2100上で管理されるファイル更新リスト管理表7700の構成を例示する図である。ファイル更新リスト管理表7700では、ファイルサーバ2100において、ユーザ(クライアントマシン4100)からの要求によってファイルが新規に作成されたり、ファイルが更新されたり、ファイルが削除されたりした場合に、変更または削除されたときのイベント情報を記録し、管理する。具体的に、ファイル更新リスト管理表7700は、発生日時7710と、操作種別7720と、オブジェクト種別7730と、パス名7740などという構成要素からなる。
【0281】
ここで、発生日時7710は、作成や更新や削除に関するイベントが発生した日時に関する情報を格納する。
【0282】
操作種別7720は、当該イベントの種別に関する情報を格納する。具体的には、作成や更新や削除といった種別を登録する。なお、ここで更新については、更新が発生した対象を特定する情報を追加してもよい。例えば、ファイルのデータ更新とメタデータ更新を分けたい場合には、この操作種別7720の欄に、データ更新、メタデータ更新という種別を登録してもよい。
【0283】
オブジェクト種別7730は、当該イベントが発生した対象を分類する種別に関する情報を格納する。具体的には、ファイルシステムを使用している場合、ファイルやディレクトリといった種別を登録する。データベースを使用している場合、レコードやカラムやタプルといった種別を登録する。
【0284】
最後に、パス名7740は、当該イベントが発生したオブジェクトにアクセスするために必要な情報を格納する。具体的には、ファイルシステムを使用している場合、対象ファイルのパス名やノード番号といった情報を格納してもよい。また、データベースを使用している場合。対象レコードの識別レコード番号といった情報を格納してもよい。
【0285】
図45は、ファイルサーバ2100のデータ制御プログラム2123にて管理するファイルシステムに対してファイルアクセスがなされた時において、データ制御プログラム2123とChange File Notification制御プログラム2126が連携して行うファイル更新リスト登録処理の流れを示すフローチャートである。Change File Notification制御プログラム2126は、常時データ制御プログラム2123におけるファイルアクセス操作について監視を行い、ファイル更新リストの登録が必要なイベントが発生した際に、以下に説明するような所定の動作を行う。
【0286】
はじめに、データ制御プログラム2123を実行するプロセッサ2110は、ファイルシステムに対するファイルアクセス要求を受けた後、当該ファイルシステムに対して所定の操作を実行する(ステップS801)。例えば、ファイル作成要求だった場合は、指定された名前のファイルを作成する。ファイル更新要求だった場合は、指定されたファイルに対して指定された更新内容を反映する。ファイル削除要求だった場合は、指定されたファイルを削除する。ここでは、ファイルを対象にした操作だけでなく、ディレクトリを対象にした操作もファイル更新リスト登録処理を行う範囲に含むものとする。
【0287】
次に、データ制御プログラム2123は、対象ファイルに対する操作種別は、作成、更新あるいは削除か否かを判定する(ステップS802)。すなわち、ステップS802では、当該ファイル操作がファイル更新リスト登録を行うイベントか否かを判定する。
【0288】
ファイル更新リスト登録を行うイベントであると判断した場合(ステップS802でYesの場合)、データ制御プログラム2123はChange File Notification制御プログラム2126に通知し、当該ファイル操作をファイル更新リスト管理表7700に登録し(ステップS803)、処理を終了する。ファイル更新リスト登録を行うイベントでないと判断した場合(ステップS802でNoの場合)は、そのまま処理を終了する。
【0289】
図46A図46Bは、実施例2の図26A図26Bで説明した検索インデックス更新処理の一部を変更したフローチャートを示す。本フローチャートは、図26A図26Bで説明した検索インデックス更新処理と比べて、ファイルサーバ2100上のChange File Notification制御プログラム2126を使用して検索を行い、検索インデックスの更新対象ファイルを特定できる点が異なる。具体的には、以下で説明する。
【0290】
図46A図46Bのフローチャートにおいて、図26A図26Bからの変更点は、ステップS410の次に行う図26Bの一連の処理(ステップS406、S407、S408、S409)をステップS419に変更している点である。それ以外は、図26A図26Bと同じである。以下、変更した部分に関する説明のみを行う。
【0291】
ステップS410による処理が終わった後、インデクシング制御サブプログラム1173は、図26BのステップS406からステップS409のかわりに、ファイルサーバ2100に対してファイル更新リストの問合せ処理を実行する(ステップS419)。ここでは、前回の検索インデックス更新日時よりも後に新規作成、更新および削除されたファイルで構成されるリストの提供を要求する。ファイル更新リスト問合せ処理については後述する。
【0292】
この処理が終わった後、図26BのステップS409において、インデクシング制御サブプログラム1173は、ファイル更新リスト問合せ処理によって取得したファイルリストに記載されているファイル名を、検索インデックス更新対象リストに追加する。
【0293】
図47は、図46BにおけるステップS419のファイル更新リストの問合せ処理の流れを示すフローチャートである。はじめに、インデクシング制御サブプログラム1173は、当該検索サーバ1100が所望のインデックス更新対象ファイルのリストを全て取得できたか否かを判断する(ステップS901)。ここでは、インデックス更新対象リストを分割して取得するケースもあるため、分割して取得する全ての要素を取得し終わったか否かを判断する。全て取得できた場合(ステップS901でYesの場合)、本処理は終了する。
【0294】
全て取得できていない場合(ステップS901でNoの場合)、インデクシング制御サブプログラム1173は、ファイル更新リストの取得条件と共に、ファイル更新リスト問合せ要求をファイルサーバ2100に送信する(ステップS902)。ここでは、当該問合せ要求を行う際に、当該検索サーバ1100にて前回検索インデックス更新を行った日時についての情報を取得条件として指定して送信する。
【0295】
問合せを受信したファイルサーバ2100上のChange File Notification制御プログラム2126は、ファイル更新リスト7700を検索し、指定された取得条件に合致するレコードを抽出する(ステップS903)。
【0296】
その後、Change File Notification制御プログラム2126は、抽出したレコードに関する情報を要求元が処理可能な形式に変換した上で、要求元である検索サーバ1100に提供する(ステップS904)。その後は、ステップS901に戻り、上記処理を繰り返す。
【0297】
以上の処理を実施することで、ファイルサーバ2100においてChange File Notification制御を行う場合、検索サーバ1100によって全ファイルクローリングをすることなく、検索サーバ1100が差分インデクシングによる検索インデックス更新処理を効率よく実施できる。
【0298】
したがって、検索インデックススキーマ管理表7300のフィールドを更新した後に検索インデックス更新を行う場合においても、当該検索インデックスの更新処理を効率よく実施できる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11A
図11B
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26A
図26B
図27
図28A
図28B
図29A
図29B
図30
図31
図32A
図32B
図33
図34
図35A
図35B
図36
図37
図38A
図38B
図39
図40
図41
図42
図43
図44
図45
図46A
図46B
図47