(57)【要約】【課題】文書と文書内の機密情報等の関連性を隠蔽して適切な検索結果を生成する。【解決手段】端末から、文書の機密情報と該機密情報に対するアクセス権情報を通信ネットワークを介して受信し、該受信情報を前記文書の索引語あるいは該索引語の位置に関連付けて管理する管理部と、前記端末から、文書の検索要求を前記通信ネットワークを介して受信すると、前記文書の検索要求に含まれる検索文中の単語と前記管理部に基づき、前記索引語あるは該索引語の位置毎のアクセス権の有無を判定し、該判定によりアクセス権が有る場合に、該索引語を含む文書の情報を列挙した文書リストを作成し、該文書の適合度を算出し、該算出結果に基づき前記文書リスト中の各文書を並べ替え、これを検索結果候補として、前記通信ネットワークを介して前記文書の検索要求元の端末に送信する制御部とを有する。【選択図】  図６
2011081642.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末と通信ネットワークを介して接続された検索サーバであって、
前記端末から、文書の機密情報と該機密情報に対するアクセス権情報を前記通信ネットワークを介して受信し、該受信情報を前記文書の索引語あるいは該索引語の位置に関連付けて管理する管理部と、
前記端末から、文書の検索要求を前記通信ネットワークを介して受信すると、前記文書の検索要求に含まれる検索文中の単語と前記管理部に基づき、前記索引語あるいは該索引語の位置毎のアクセス権の有無を判定し、該判定によりアクセス権が有る場合に、該索引語を含む文書の情報を列挙した文書リストを作成し、該文書の適合度を算出し、該算出結果に基づき前記文書リスト中の各文書を並べ替え、これを検索結果候補として、前記通信ネットワークを介して前記文書の検索要求元の端末に送信する制御部と、
を有する検索サーバ。
【請求項２】
前記管理部は、
前記文書の機密情報と該機密情報に対するアクセス権情報を前記文書の構造に関連付けて管理し、
前記制御部は、
前記検索結果候補内の文書毎に、前記文書の構造に関連付いた前記アクセス権情報を基に、前記文書の文書名に含まれる機密情報を隠蔽し、これを最終的な検索結果として、前記通信ネットワークを介して前記文書の検索要求元の端末に送信する、
請求項１記載の検索サーバ。
【請求項３】
複数の端末と通信ネットワークを介して接続された検索サーバであって、
前記端末から、文書の機密情報と該機密情報に対するアクセス権情報を前記通信ネットワークを介して受信し、該受信情報を前記文書の構造および単語に関連付けて管理する管理部と、
前記端末から、文書の検索要求を前記通信ネットワークを介して受信し、前記文書の検索要求に含まれる検索文中の単語と前記管理部に基づき、前記文書の検索要求に合致する文書を検索してこれを全文検索結果とし、さらに前記文書の適合度を算出し、該算出結果に基づき前記全文検索結果を並べ替え、これを検索結果候補として、前記通信ネットワークを介して前記文書の検索要求元の端末に送信する制御部と、
を有する検索サーバ。
【請求項４】
前記制御部は、
ユーザーがアクセス不可の単語を含む文書を前記検索結果候補から削除し、これを最終的な検索結果として、前記通信ネットワークを介して前記文書の検索要求元の端末に送信する、
請求項３記載の検索サーバ。
【請求項５】
前記制御部は、
前記検索結果候補において、前記ユーザーがアクセス可能な単語を含む文書の出力順位を降下させ、これを最終的な検索結果として、前記通信ネットワークを介して前記文書の検索要求元の端末に送信する、
請求項４に記載の検索サーバ。
【請求項６】
前記制御部は、
前記文書の機密情報と該機密情報に対するユーザーのアクセス権情報に基づき、前記文書を複製し、該複製文書において前記機密情報を隠蔽し、該文書を該文書の作成元となった前記文書とを関連付けて前期管理部に格納し、該各文書を索引付けする、
請求項３に記載の検索サーバ。
【請求項７】
前記制御部は、
前記管理部の情報を基に、前記複製文書の元文書への前記ユーザーのアクセス権の有無を判定し、該判定によりアクセス権が有る場合に、前記検索結果候補において、前記文書を前記元文書に関連付けて並び替え、これを最終的な検索結果として、前記前記通信ネットワークを介して前記文書の検索要求元の端末に送信する、
請求項６に記載の検索サーバ。
【請求項８】
前記管理部の情報を基に、前記複製文書の元文書への前記ユーザのアクセス権の有無を判定し、該判定によりアクセス権が無い場合に、前記検索結果候補において、前記元文書を削除し、これを最終的な検索結果として、前記前記通信ネットワークを介して前記文書の検索要求元の端末に送信する、
請求項７に記載の検索サーバ。
【請求項９】
コンピュータにおける情報検索方法であって、
前記コンピュータが具備する制御部により、
文書の機密情報と該機密情報に対するアクセス権情報を取得し、
該取得情報を前記文書の索引語あるいは該索引語の位置に関連付け、
文書の検索要求を取得し、
前記文書の検索要求に含まれる検索文中の単語と前記関連付け情報に基づき、前記索引語あるいは該索引語の位置毎のアクセス権の有無を判定し、
該判定によりアクセス権が有る場合に、アクセス権を有する索引語を含む文書の情報を列挙した文書リストを作成し、
該索引語を含む前記文書の適合度を算出し、
該算出結果に基づき前記文書リスト中の各文書を並べ替え、これを検索結果候補として出力する、
情報検索方法。
【請求項１０】
コンピュータに、
文書の機密情報と該機密情報に対するアクセス権情報を取得し、
該受信情報を前記文書の索引語あるいは該索引語の位置に関連付け、
文書の検索要求を取得し、
前記文書の検索要求に含まれる検索文中の単語と前記関連付け情報に基づき、前記索引語あるいは該索引語の位置毎のアクセス権の有無を判定し、
該判定によりアクセス権が有る場合に、アクセス権を有する索引語を含む文書の情報を列挙した文書リストを作成し、
該索引語を含む前記文書の適合度を算出し、
該算出結果に基づき前記文書リスト中の各文書を並べ替え、これを検索結果候補として出力する処理を実行させる、
プログラム。
【請求項１１】
請求項１０記載のプログラムを記憶したことを特徴とする前記コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書等の情報を検索する技術に関する。
【背景技術】
【０００２】
近年、企業や組織において横断的な情報活用のために情報検索システムの導入が一般的になりつつある。しかし、企業や組織内の情報の中には機密性の高いものやプライバシーに配慮すべきものが含まれている場合があるため、適切な権限を持つユーザーにのみ適切な情報を開示するアクセス制御が必要である。現在市場に流通する企業内検索製品においては、このような需要に応えるために、文書単位あるいは文書の集合単位でアクセス制御が広く行われている。例えば、特許文献１には、検索システムにおいて、ファイルに付与されたアクセス権を用いてアクセス制御を行う技術が開示されている。また、非特許文献１〜４の企業内検索製品において、ファイルあるいはファイルの集合に対して、ユーザーの権限に応じて検索の可否や検索結果への表示可否が行われている。
【０００３】
また、従来技術として、ユーザーの検索キーワードを制限する形態のアクセス制御方式がある。例えば、特許文献２には、ユーザーが検索を行う際、検索キーワードと共にパスワードの入力を要する技術が開示されている。
【０００４】
また、従来技術として、文書内の一部を墨塗り等によって非開示とするような、より細かい粒度でアクセス制御を実施する技術も存在する。例えば、特許文献３や特許文献４には、文書を表示する際に文書の特定の箇所を非開示とする技術が開示されている。また、非特許文献５には、文書の一部を暗号化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２０７７７５号公報
【特許文献２】特開平１０−１８７５４２号公報
【特許文献３】特開２００１−３０６５５８号公報
【特許文献４】特開２００８−１５９００１号公報
【非特許文献】
【０００６】
【非特許文献１】「Autonomy White Paper: Enterprise Search - Addressing Security and Entitlement Issues」、[2009年７月２０日検索]インターネット<URL:http://publications.autonomy.com/docs/Autonomy%20Security%20White%20Paper>
【非特許文献２】「Search Best Practices, secure search」、[2009年７月２０日検索]インターネット<URL: http://www.microsoft.com/enterprisesearch/en/us/FAST-technical.aspx>
【非特許文献３】「OmniFind Enterprise Edition v8.5, Administering Guide」、[2009年７月２０日検索]インターネット<URL:www.ibm.com/software/data/enterprise-search/omnifind-enterprise/>
【非特許文献４】「OmniFind Enterprise Edition v8.5, Administering Guide」、[2009年７月２０日検索]インターネット<URL: www.ibm.com/software/data/enterprise-search/omnifind-enterprise/>
【非特許文献５】「Documentation for the Google Search Appliance (software version 5.2),Managing Search for Controlled-Access Content」、[2009年７月２０日検索]インターネット<URL: www.google.com/enterprise/gsa/>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１や非特許文献１〜４に開示されているような文書単位でのアクセス制御を用いて機密情報やプライバシー情報を含む文書を検索結果に非列挙とすると、当該文書は検索にヒットしなくなる。この場合、企業内や組織内の情報共有においては、可能な限り情報を共有することが望ましいにも関わらず、当該文書内の非機密情報や非プライバシー情報も共有されなくなってしまう。また、特許文献１や非特許文献１〜４で開示されているような文書単位でのアクセス制御を行い、機密情報やプライバシー情報を含む文書を検索結果に列挙する一方で、当該文書の内容の閲覧を制限することもできる。しかし、この場合、ユーザーが入力した検索文中のキーワードに当該文書がヒットすることから、ユーザーは当該文書が当該キーワードを含む事実を把握できる。ユーザーはさらにいくつかのキーワードでの検索や、複数のキーワードでのＡＮＤ検索やＯＲ検索等を実行して当該文書のヒットの有無やヒット順位の変動を見ることで、当該文書の内容を推測できるため、結果として間接的に機密情報やプライバシー情報の漏洩につながり得る。
【０００８】
また、特許文献２に開示されているような技術を用いて、検索キーワードを制限すると、当該キーワードで検索が一律制限されてしまう。ある文書で、ある単語が機密扱いであったからといって、別の文書でも同じ単語が機密扱いであるとは限らないため、検索キーワードの制限は非機密情報や非プライバシー情報の共有を阻害してしまう。
【０００９】
また、特許文献３や４、非特許文献５に開示されているような部分非開示技術を用いて文書内の機密情報やプライバシー情報を隠蔽し、索引語として使用しない場合、当該文書の保有者等の適切な権限を持つユーザーが当該文書を検索できなくなってしまう。また、文書内の機密情報やプライバシー情報を索引語として使用する一方で、文書の閲覧時に特許文献３や４、非特許文献５に開示されているような技術を用いて、文書内の機密情報やプライバシー情報を隠蔽することもできる。しかし、この場合、ユーザーが検索時に入力した検索文や当該文書のヒット順位、隠蔽されていない箇所に含まれる情報から、隠蔽されている箇所に含まれる情報を推測できてしまう。例えば、ある人名で検索を実行し、ある文書がヒットして当該文書を開いた際、隠蔽されていない箇所に当該人名が含まれていなければ、隠蔽箇所に当該人名が含まれることは明白である。また、ある人名Ａと人名ＢでＯＲ検索を実行し、ある文書が高順位でヒットし、当該文書の非隠蔽箇所に人名Ｂのみが含まれていれば、たとえＯＲ検索であっても隠蔽箇所に人名Ａが含まれている可能性が高く、部分非開示の有効性が薄れてしまう。
【００１０】
以上のことから、機密情報やプライバシー情報を含む文書を取扱うこれまでの情報検索システムにおいては、適切な検索結果を生成できないという課題があった。
【００１１】
本発明の目的は、ユーザーが検索時に検索文として入力した検索キーワードや論理条件式、検索文に対する文書のヒットの有無やヒット順位、文書内で隠蔽されていない部位に含まれる情報等から、ユーザーが文書内に含まれる機密情報やプライバシー情報を推測することを困難にする検索結果を生成する検索サーバ、情報検索方法、プログラムおよび記憶媒体を提供することにある。
【課題を解決するための手段】
【００１２】
本発明では、前述のような課題を解決するために、文書保持者や管理者が文書内の機密情報やプライバシー情報に対するアクセス権情報を事前に登録し、登録内容を索引語に関連付け、同じ文書に対して索引語や索引語の位置毎に異なるアクセス権を管理する。さらに、検索エンジンが検索キーワードに合致する索引語に対して、検索キーワードを入力したユーザーのアクセス権を確認し、適合する文書リストを作成してスコアリングを行う。
【００１３】
また別の実施形態として、文書保持者や管理者が文書内の機密情報やプライバシー情報に対するアクセス権情報を事前に登録し、該登録内容とユーザーが入力した検索文の検索キーワード数や論理条件式を基に、検索エンジンの上位プログラムが検索エンジンによる検索およびスコアリング結果に含まれる文書の削除や文書の順位変更を行って、最終的な検索結果を生成する。
【００１４】
さらに別の実施形態として、文書保持者や管理者が文書内の機密情報やプライバシー情報に対するアクセス権情報を事前に登録し、検索エンジンの上位プログラムが当該文書の当該機密情報あるいは当該プライバシー情報を隠蔽した別文書を内部で生成し、元文書と紐付け管理して、双方に対して索引を作成する。さらに上位プログラムは、アクセス権情報や紐付け管理情報を基に、検索エンジンによる検索およびスコアリング結果に含まれる文書の削除を行って、最終的な検索結果を生成する。
【発明の効果】
【００１５】
本発明によれば、ユーザーが検索時に検索文として入力した検索キーワードや論理条件式、検索文に対する文書のヒットの有無やヒット順位、文書内で隠蔽されていない部位に含まれる情報等から、ユーザーが文書内に含まれる機密情報やプライバシー情報を推測することを困難にする検索結果を生成する検索サーバ、情報検索方法、プログラムおよび記憶媒体を提供することができる。結果として、文書と当該文書内の機密情報やプライバシー情報の関連性を隠蔽して適切な検索結果を生成可能となり、情報共有と機密保持やプライバシー保護をバランス良く実現することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例１に係る情報検索システムの構成例を示す図である。
【図２】本発明の実施例１に係るクライアントコンピュータ２のハードウェアおよびソフトウェア構成例を示す図である。
【図３】本発明の実施例１に係る文書共有サーバ３のハードウェアおよびソフトウェア構成例を示す図である。
【図４】本発明の実施例１に係る検索サーバ１のハードウェアおよびソフトウェア構成例を示す図である。
【図５】本発明の実施例１に係る機密情報管理テーブル１１５の構成例を示す図である。
【図６】本発明の実施例１に係るインデックス１３の構成例を示す図である。
【図７】本発明の実施例１に係るユーザーグループテーブル１１４の構成例を示す図である。
【図８】本発明の実施例１に係るインタフェース（機密情報登録画面）の一例を示す図である。
【図９】本発明の実施例１に係る機密情報登録処理手順の一例を示す図である。
【図１０】本発明の実施例１に係る検索の全体処理手順の一例を示す図である。
【図１１】本発明の実施例１に係る検索エンジンプログラム１１２による検索処理手順の一例を示す図である。
【図１２】本発明の実施例２に係るインデックス１１３の一例を示す図である。
【図１３】本発明の実施例２に係る検索サービスプログラム１１０による検索処理手順の一例を示すフローチャートである。
【図１４】本発明の実施例３に係る検索サーバ１のハードウェアおよびソフトウェア構成を示す図である。
【図１５】本発明の実施例３に係る文書関係テーブル１１６の一例を示す図である。
【図１６】本発明の実施例３に係る文書の複製を生成する概念の一例を示す図である。
【図１７】本発明の実施例３に係る機密情報登録処理手順の一例を示す図である。
【図１８】本発明の実施例３に係る検索処理手順の一例を示す図である。
【図１９】本発明の実施例４に係る機密情報登録処理手順の一例を示す図である。
【図２０】本発明の実施例４に係る検索処理手順の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【実施例１】
【００１８】
図１は、本発明の実施例１に係る情報検索システムの構成例を示す図である。情報検索システムは、検索サーバ１、複数のクライアントコンピュータ（端末）２、文書共有サーバ３、通信ネットワーク４から構成され、各コンピュータは、通信ネットワーク４を介して接続される。情報検索システムのユーザーは、クライアントコンピュータ２を用いて検索サーバ１に接続し、文書共有サーバ３やクライアントコンピュータ２、検索サーバ１、あるいは図示していないＷｅｂサーバ等の他の社内システム上に格納された情報を検索する。通信ネットワーク４は、公衆網、インターネット、ＩＳＤＮ、専用線、ＬＡＮ等の有線網や、移動通信用基地局や通信用人工衛星等を利用した無線網等によって実現できる。通信ネットワーク４において、各コンピュータは、個々のコンピュータに予め付与された識別情報によって識別され、この識別情報を基に、各コンピュータは他のコンピュータに接続して通信を行う。
【００１９】
図２は、本発明の実施例１に係るクライアントコンピュータ２のハードウェアおよびソフトウェアの構成例を示す図である。クライアントコンピュータ２は、ＣＰＵ等からなる制御部２０、記憶部２１、通信ネットワーク４に接続するためのネットワークインタフェース部２２、表示部２３、入力部２４、これらを接続するデータバス２５によって構成できる。記憶部２１は、半導体メモリ（ＲＡＭ）等の揮発性記憶装置、あるいはハードディスクやＳＳＤ等の読み書き可能な不揮発性記憶装置、光磁気メディア等の読み出し専用不揮発性記憶装置等により実現できる。表示部２３はＣＲＴディスプレイや液晶ディスプレイ等、入力部２４はキーボードやマウス等により実現できる。クライアントコンピュータ２において、例えば、情報や文書の検索等に伴う演算処理は制御部２０によって実行される。制御部２０が実行する検索クライアントプログラム２１０や、検索クライアントプログラム２１０が使用するデータについては、あらかじめ記憶部２１に格納されていてもよいし、他のコンピュータから通信ネットワーク４を介して導入されてもよいし、ＣＤ−ＲＯＭ等の記憶媒体から導入するようにしてもよい。また、検索クライアントプログラム２１０の機能は、ＬＳＩ等のハードウェアにより実現してもよい。
【００２０】
検索クライアントプログラム２１０は、情報検索システムのユーザーに対して情報の検索を行うためのユーザーインタフェースを提供するプログラムであり、例えばウェブブラウザや検索専用アプリケーション等の形態をとることができる。検索クライアントプログラム２１０は、ユーザーが入力部２４を用いて入力した検索文を検索サーバ１に送信し、検索結果を検索サーバ１から受け取って表示部２３に表示し、ユーザーに提示する。また、検索クライアントプログラム２１０は、情報検索システムのユーザーに対して、文書内の機密情報やプライバシー情報（以下、単に機密情報と記す）の登録を行うためのインタフェースを提供する。
【００２１】
図３は、本発明の実施例１に係る文書共有サーバ３のハードウェアおよびソフトウェアの構成例を示す図である。文書共有サーバ３は、クライアントコンピュータ２と同様に、ＣＰＵ等からなる制御部３０、記憶部３１、通信ネットワーク４に接続するためのネットワークインタフェース部３２、表示部３３、入力部３４、これらを接続するデータバス３５によって構成できる。記憶部３１は、半導体メモリ（ＲＡＭ）等の揮発性記憶装置、あるいはハードディスクやＳＳＤ等の読み書き可能な不揮発性記憶装置、光磁気メディア等の読み出し専用不揮発性記憶装置等により実現できる。表示部３３はＣＲＴディスプレイや液晶ディスプレイ等、入力部３４はキーボードやマウス等により実現できる。また、文書共有サーバ３は、表示部３３や入力部３４を省略した構成にすることもできる。また、文書共有サーバ３において、制御部３０が実行する文書共有サービスプログラム３１０や、文書共有サービスプログラム３１０が使用するデータについては、あらかじめ記憶部３１に格納されていてもよいし、他のコンピュータから通信ネットワーク４を介して導入されてもよいし、ＣＤ−ＲＯＭ等の記憶媒体から導入するようにしてもよい。また、文書共有サービスプログラム３１０の機能は、ＬＳＩ等のハードウェアにより実現してもよい。
【００２２】
文書共有サービスプログラム３１０は、情報検索システムのユーザーに対して、電子化された文書やファイル（以下、単に文書と記す）３１１の格納や読み出しを行うためのインタフェースを提供することで、ユーザー間で文書の共有を可能にするプログラムである。文書共有サービスプログラム３１０は、例えば、ＮＦＳやＣＩＦＳ等を用いたファイル共有サービスプログラム、あるいはプロプライエタリな文書管理サービスプログラム、あるいは構造化されたデータを格納するデータベースプログラム等の形態をとることが可能である。情報検索システムのユーザーは、クライアントコンピュータ２から検索クライアントプログラム２１０や文書共有サービスプログラム３１０を介して文書共有サーバ３上に文書３１１を格納し、文書共有サービスプログラム３１０や検索クライアントプログラム２１０を介して文書３１１を参照することができる。
【００２３】
図４は、本発明の実施例１に係る検索サーバ１のハードウェアおよびソフトウェアの構成例を示す図である。検索サーバ１は、クライアントコンピュータ２や文書共有サーバ３と同様に、ＣＰＵ等からなる制御部１０、記憶部１１、通信ネットワーク４に接続するためのネットワークインタフェース部１２、表示部１３、入力部１４、これらを接続するデータバス１５によって構成できる。記憶部１１は、半導体メモリ（ＲＡＭ）等の揮発性記憶装置、あるいはハードディスクやＳＳＤ等の読み書き可能な不揮発性記憶装置、光磁気メディア等の読み出し専用不揮発性記憶装置等により実現できる。表示部１３はＣＲＴディスプレイや液晶ディスプレイ等、入力部１４はキーボードやマウス等により実現できる。また、検索サーバ１は、表示部１３や入力部１４を省略した構成にすることもできる。また、検索サーバ１において、制御部１０が実行する検索サービスプログラム１１０、クローラープログラム１１１、検索エンジンプログラム１１２や、これらプログラムが使用するデータについては、あらかじめ記憶部１１に格納されていてもよいし、他のコンピュータから通信ネットワーク４を介して導入されてもよいし、ＣＤ−ＲＯＭ等の記憶媒体から導入するようにしてもよい。また、検索サービスプログラム１１０、クローラープログラム１１１、検索エンジンプログラム１１２の機能は、ＬＩＳ等のハードウェアにより実現してもよい。
【００２４】
検索サービスプログラム１１０は、検索クライアントプログラム２１０や他のプログラムに対して、情報の検索を行うためのインタフェースを提供するプログラムである。検索サービスプログラム１１０は、ユーザーがクライアントコンピュータ２の入力部２４を用いて入力した検索文を検索クライアントプログラム２１０を介して受け取り、当該検索文を基に検索クエリ（文書の検索要求）を生成して検索エンジンプログラム１１２に発行する。次いで、検索サービスプログラム１１０は、検索クエリに対する文書の全文検索結果として文書リストを検索エンジンプログラム１１２より受け取り、当該文書リストを基に、検索クライアントプログラム２１０に返すための最終的な検索結果を生成する。検索サービスプログラム１１０は、最終的な検索結果の生成に当たり、文書や文書の属性、文書名等に含まれ得る機密情報に対するユーザーのアクセス権限を踏まえてアクセス制御を実施し、適切な検索結果を生成し、これを検索クライアントプログラム２１０を介してユーザーに提示する。また、検索サービスプログラム１１０は、情報検索システムのユーザーに対して、文書内の機密情報の登録を行うためのインタフェースを検索クライアントプログラム２１０を介してユーザーに提供する。
【００２５】
クローラープログラム１１１は、文書共有サーバ３に格納された文書およびその付随情報を取得して、検索エンジンプログラム１１２が文書３１１の全文検索を行う際に必要とする情報を生成するためのプログラムである。クローラープログラム１１１は、定期的に文書共有サーバ３にアクセスし、文書共有サービスプログラム３１０を介して文書共有サーバ３上の文書３１１を取得する。また、クローラープログラム１１１は、検索エンジンプログラム１１２が文書３１１に対して全文検索を実施するために必要な文書３１１のインデックス１１３を作成する。また、クローラープログラム１１１は、文書共有サーバ３から、文書３１１と共に、文書に付与されているアクセス権等のセキュリティ属性情報を取得し、このセキュリティ属性情報を、検索サービスプログラム１１０や検索エンジンプログラム１１２が文書単位でのアクセス制御を実施する上で利用可能な状態で、検索サーバ１の記憶部１１に格納する。また、クローラープログラム１１１は、辞書を用いた形態素解析や機械学習による固有表現抽出等の公知技術を用いて、取得文書から特徴情報を抽出することができる。
【００２６】
検索エンジンプログラム１１２は、ユーザーがクライアントコンピュータ２の入力部２４を用いて入力した検索文を用いて、文書の全文検索を行うためのプログラムである。検索エンジンプログラム１１２は、クローラープログラム１１１が作成したインデックス１１３を使用して、ユーザーが入力した検索文に適合する文書を見つけ出す。また、検索エンジンプログラム１１２は、検索サービスプログラム１１０から、検索文に基づき生成された検索クエリを受け取って全文検索を実施した後、検索文に含まれる単語に合致する索引語あるいは索引語の位置毎に、文書内での出現頻度や希少度合いに基づいた値を算出し、その索引語毎の算出値を用いて検索文に対する各文書の適合度をスコアとして算出し、スコア順に文書リストをソートして検索サービスプログラム１１０に返す。なお、前述したように、検索エンジンプログラム１１２が、文書単位でのアクセス制御を行い、機密情報を含む文書３１１を検索結果に列挙する一方、当該文書３１１の内容の閲覧を制御する方法では、ユーザーが入力した検索文中のキーワードに当該文書３１１がヒットすることから、ユーザーは当該文書３１１が当該キーワードを含む事実を把握でき、機密情報漏洩のリスクがある。そのため、本実施例１においては、文書３１１内の情報の機密度合いに応じて文書３１１のアクセス権を設定可能とし、検索エンジンプログラム１１２は、そのアクセス権情報を用いて適切な文書３１１を抽出およびスコアリングして文書リストを検索サービスプログラム１１０に返す構成とした。
【００２７】
インデックス１１３は、一般的に、文書３１１に含まれる単語や文字、文字列の出現箇所を目録として表現したものを指す。特に情報検索分野においては、検索性能の向上のために、単語や文字、文字列毎に、それが出現する文書と文書内の位置を表現する転置インデックスが用いられる。文書３１１内の単語や文字、文字列の解析においては、例えば、形態素解析やＮ−ｇｒａｍ等が用いられる。また、前述した従来の文書３１１単位でのアクセス制御の実現方式においては、文書３１１毎のアクセス権情報をインデックスに関連付けて保持するものもある。
【００２８】
ユーザーグループテーブル１１４には、ユーザーを識別する情報と当該ユーザーが所属するグループとの関係を示す情報が格納されている。本実施例１においては、検索サービスプログラム１１０が、ユーザーをユーザーを識別する情報によって識別し、さらにユーザーグループテーブル１１４を用いてユーザーの所属グループを特定し、そのグループの情報を検索クエリと共に検索エンジンプログラム１１２に渡す。これにより、検索エンジンプログラム１１２が当該情報を用いて適切な文書を抽出することができる。また、本実施例１においては、検索サービスプログラム１１０が最終的な検索結果を生成する際に、ユーザーグループテーブル１１４と後述する機密情報管理テーブル１１５を参照し、文書名等に含まれる機密情報に対して、グループ単位でのアクセス制御を実施する。これにより、システム管理者はユーザー毎にアクセス権を設定および管理する手間を削減することができる。なお、ユーザーグループテーブル１１４は、図示していない認証サーバやディレクトリサーバ等の外部システムに格納されていてもよい。
【００２９】
機密情報管理テーブル１１５には、文書内の機密情報と当該機密情報のアクセス権に関する情報が含まれる。機密情報管理テーブル１１５の情報は、ユーザーにより入力された文書内の機密情報およびアクセス権情報が検索クライアントプログラム２１０と検索サービスプログラム１１０を介して機密情報管理テーブル１１５に登録される。また、検索サービスプログラム１１０は、機密情報とアクセス権を機密情報管理テーブル１１５に設定するだけでなく、インデックス１１３にも設定する。検索エンジンプログラム１１２は、このインデクッス１１３を用いることにより、ユーザーのアクセス権に応じた適切な文書を抽出することができる。また、検索サービスプログラム１１０は、最終的な検索結果を生成する際に、機密情報管理テーブル１１５とユーザーグループテーブル１１４を参照し、文書名等に含まれる機密情報に対してグループ単位でのアクセス制御を実施する。
【００３０】
なお、本実施例１においては、検索サービスプログラム１１０やクローラープログラム１１１、検索エンジンプログラム１１２が同一の検索サーバ１内で動作するものとして以降の説明を行うが、本構成に限定するものではない。これらは異なる計算機上で動作して相互に通信ネットワークを介して協調動作してもよい。
【００３１】
図５は、本発明の実施例１に係る機密情報管理テーブル１１５の構成例を示す図である。文書ＩＤ４０１は、情報検索システムにおいて各文書を一意に識別するための識別情報である。フィールド４０２は、文書の構造を識別するための識別情報であり、例えば「タイトル」や「本文」、「属性」等である。機密情報４０３は、文書保持者や管理者等によって登録される文書内の機密情報であり、例えばある特定の人名や組織名、場所名、あるいは、ある事実を含む文章等である。同じ文書内あるいはフィールド内に複数の機密情報が含まれる場合は、一つの文書４０１あるいはフィールド４０２に対して複数の機密情報４０３が対応する。位置４０４は、機密情報４０３の文書内の位置を示す情報であり、同じ機密情報が文書３１１内に複数存在する場合は、一つの機密情報４０３に対して複数の位置情報４０４が対応する。アクセス権４０５は、文書３１１内の個々の機密情報に対するアクセス権情報である。本実施例１では、アクセス権４０５は、当該機密情報を検索可能なユーザーのグループ情報である。なお、アクセス権４０５は、ユーザー識別情報や、機密情報の検索の可否や文書の閲覧可否等を示す情報であってもよい。
【００３２】
図６は、本発明の実施例１に係るインデックス１１３の構成例を示す図であり、特に文書３１１の本文に含まれる単語を索引語とする転置インデックスの概念例を示す。同様に、文書名等の本文以外の部分に対するインデックスも存在するが、同様の構成であるため図を省略する。また、文書の本文や文書名等を一つのインデックスとする構成であってもよい。このような転置インデックスにおいては、一般的に、単語（索引語）５０１に対して、当該単語が含まれる文書情報５０２と文書３１１内の位置情報５０３を保持する。なお、図６はリスト構造の組み合わせとなっているが、テーブルあるいは複数のテーブルの組み合わせの形態であってもよい。また、本実施例１においては、文書３１１内の個々の単語に対してアクセス制御を実現するために、個々の単語の文書３１１内の位置に対応してアクセス権情報（アクセス許可グループ情報）が関連付けされる。例えば、図６に示す文書Ｘでは、文書Ｘ内の個々の単語（ここでは人名ｘと単語ｙ）毎にアクセス許可グループ情報５０４および５０５が関連付けされており、単語毎にその内容が異なっている。
【００３３】
図７は、本発明の実施例１に係るユーザーグループテーブル１１４の一例を示す図である。グループ６０１は、情報検索システムにおいて、ユーザーが所属するグループを一意に識別するための情報（以下、グループ情報と記す）である。また、ユーザー６０２は、情報検索システムにおいて、ユーザーを一意に識別するための情報（以下、ユーザー識別情報と記す）である。
【００３４】
図８は、本発明の実施例１に係る文書３１１内の機密情報を登録するインタフェース（機密情報登録画面）の一例を示す図である。画面７０１は、文書名の表示部位７０２、本文の表示部位７０３、ユーザーあるいはプログラムが指定した機密情報一覧の表示部位７０４、アクセス許可グループの選択部位７０５を含む。
【００３５】
図９は、本発明の実施例１に係る文書内の機密情報登録手順の一例を示すフローチャートである。
【００３６】
まずユーザーは、図８に示すようなインタフェースを介して文書３１１内の機密情報に対してアクセス権を設定する（ステップ１００１）。機密情報は、ユーザーが入力部２４を用いて文書名の表示部位７０２や本文の表示部位７０３で指定してもよいし、クローラープログラム１１１等のプログラムが事前に辞書等を用いて抽出および設定してもよい。あるいは、学習済みの情報を基に文書から抽出し、検索クライアントプログラム２１０を介して、ユーザーに機密情報の候補（機密情報一覧）７０４を提示し、ユーザが入力部２４を用いてその機密情報一覧７０４から機密情報を指定するようにしてもよい。機密情報を指定後、ユーザーは、入力部２４を用いてその機密情報に対してアクセス権７０５を設定し、ＯＫボタン７０６を押下する操作を行うと、検索サービスプログラム１１０は、文書３１１中の機密情報と機密情報に対するアクセス権情報を取得し（ステップ１００１）、これを機密情報管理テーブル１１５に登録する（ステップ１００２）。
【００３７】
つぎに検索サービスプログラム１１０は、ユーザーがステップ１００１において設定した内容を基に、図６で一例を示したような形態で、インデックス１１３にアクセス権情報を登録する（ステップ１００３）。
【００３８】
図１０は、本発明の実施例１に係る検索の全体処理手順の一例を示すフローチャートである。
【００３９】
まず検索サービスプログラム１１０は、ユーザーがクライアントコンピュータ２の入力部２４を用いて入力した検索文およびユーザー識別情報を検索クライアントプログラム２１０を介して受け取る（ステップ１１０１）。なお、ユーザー識別情報は、検索文の入力前に入力するようにしてもよい。
【００４０】
つぎに検索サービスプログラム１１０は、ユーザー識別情報を基にユーザーグループテーブル１１４を参照し、該当グループ情報を取得し、ステップ１１０１において受け取った検索文と、取得したユーザーのグループ情報を検索エンジンプログラム１１２に渡し、検索エンジンプログラムは図１１で示す処理手順に従って検索およびアクセス制御を実施する（ステップ１１０２）。
【００４１】
つぎに検索サービスプログラム１１０は、検索エンジンプログラム１１２から全文検索結果である文書リストを受け取る（ステップ１１０３）。ここで、この文書リストに記載される文書名には、機密情報が残っている可能性があるため、これをステップ１１０４以降で対処する。
【００４２】
つぎに検索サービスプログラム１１０は、機密情報管理テーブル１１５およびユーザーグループテーブル１１４を参照し（ステップ１１０４）、検索文に含まれる単語（キーワード）が、文書リストに列挙される文書名に含まれており、且つ当該ユーザーが所属するユーザーグループにアクセス許可が与えられているかどうかを、文書リストに含まれる文書毎に確認する（ステップ１１０５）。
【００４３】
ステップ１１０５においてアクセス許可が与えられていないと判定した場合、つぎに検索サービスプログラム１１０は、当該文書名に含まれる機密情報を削除あるいは伏字等に置換する（ステップ１１０６）。
【００４４】
つぎに検索サービスプログラム１１０は、検索結果を検索クライアントプログラム２１０を介してユーザーに提示し（ステップ１１０７）、一連の検索処理を終了する。
【００４５】
つぎにユーザーが検索結果中の文書を選択した場合（ステップ１１０８）、検索サービスプログラム１１０は、文書単位でのアクセス制御を実施する（ステップ１１０９）。ユーザーは、その結果に基づいて、文書内容の閲覧を許可あるいは禁止される。
【００４６】
また、ステップ１１０５においてアクセス許可が与えられていると判定した場合は、検索サービスプログラム１１０は、ステップ１１０７に進む。
【００４７】
図１１は、本発明の実施例１に係る検索エンジンプログラム１１２による検索の処理手順の一例を示すフローチャートである。
【００４８】
まず検索エンジンプログラム１１２は、検索サービスプログラム１１０から、ユーザーが入力した検索文および当該ユーザが所属するグループ情報を受け取る（ステップ１２０１）。
【００４９】
つぎに検索エンジンプログラム１１２は、検索文に含まれる単語を抽出する（ステップ１２０２）。単語の抽出については公知の技術を用いる。例えば日本語であれば形態素解析等を用いることができる。また、検索文を空白等の区切りで分割して単語を抽出してもよい。
【００５０】
つぎに検索エンジンプログラム１１２は、インデックス１１３を参照し、ステップ１２０２において抽出した単語に合致する索引語５０１を含む文書３１１を一件選択し（ステップ１２０３）、その選択した文書中の当該単語の個々の位置毎にアクセス許可グループ情報５０４を確認する（ステップ１２０４）。
【００５１】
つぎに検索エンジンプログラム１１２は、ステップ１２０４において確認したアクセス許可グループ情報と、ステップ１２０１で受け取ったユーザーのグループ情報を比較することで、当該ユーザーがステップ１２０３で選択した文書３１１に含まれる索引語に対してアクセス権を持つかどうかを判定する（ステップ１２０５）。図６および図８で示した通り、インデックス１１３で索引語の位置を管理しており、同じ索引語が文書内の複数の位置に含まれる場合には、検索エンジンプログラム１１２は、個々の索引語の文書３１１内の位置に関連付けられたアクセス許可グループ情報５０４を用いて、ユーザーのアクセス権の有無を判定する。
【００５２】
ステップ１２０５において、ユーザーが当該単語に合致する文書内の索引語の何れかに対してアクセス権があると判定した場合、つぎに検索エンジンプログラム１１２は、当該文書を検索サービスプログラム１１０に渡すための文書リストに追加する（ステップ１２０６）。
【００５３】
つぎに検索エンジンプログラム１１２は、当該単語に対する当該文書のスコアを算出する（ステップ１２０７）。スコアの算出式は公知のものやプロプライエタリなものを用いて行い、また単語単位ではなく検索文全体に対してステップ１２１１に示すスコアの算出を行ってもよい。スコアの算出方法としては様々なものがあるが、例えば、公知の非特許文献「Ａｐａｃｈｅ  Ｌｕｃｅｎｅ  −  Ｓｃｏｒｉｎｇ、インターネットＵＲＬ：ｈｔｔｐ：／／ｌｕｃｅｎｅ．ａｐａｃｈｅ．ｏｒｇ／ｊａｖａ／２＿４＿０／ｓｃｏｒｉｎｇ．ｈｔｍｌ」に記載の方法を用いることができる。この方法では、ユーザーが入力した検索文中に含まれる単語に合致する索引語毎に、文書内での出現頻度や希少度合いに基づいた値を算出し、その算出した値を基に検索文に対する各文書のスコアを算出する。また、同じ索引語が文書内に複数含まれる場合には、文書内の索引語のうちユーザーがアクセス権を持つと判定されたもののみを踏まえてスコアを算出する。このように、本実施例１では、検索文に対する文書のスコアを算出するにあたり、当該検索文中に含まれる単語に合致する索引語のうち、ユーザーがアクセス権を持つ索引語だけを用いてスコアを算出し、その算出したスコアが高い文書ほど、当該検索文に対して適合度合いが高いと判断する。
【００５４】
つぎに検索エンジンプログラム１１２は、インデックス１１３を参照し、当該単語に合致する索引語を含む文書が他にまだあるかどうかを確認し（ステップ１２０８）、ある場合はステップ１２０３からステップ１２０７の処理を次の文書に対して行う。
【００５５】
一方、ステップ１２０８において、最後の文書である場合、検索エンジンプログラム１１２は、検索文を参照し、検索文の中に他の単語がまだ含まれるかどうかを確認し（ステップ１２０９）、含まれる場合はステップ１２０２からステップ１２０８の各処理を次の単語に対して行う。
【００５６】
一方、ステップ１２０９において、最後の単語である場合、検索エンジンプログラム１１２は、検索文中の個々の単語に対して得られた文書リストを、ユーザーにより指定された検索論理式（検索条件）に応じてマージする（ステップ１２１０）。検索エンジンプログラム１１２は、例えば、ＡＮＤ検索の場合は個々のリストの共通文書リストを、ＯＲ検索の場合は個々のリストの論理和を生成する。
【００５７】
つぎに検索エンジンプログラム１１２は、文書リストに含まれる文書毎に、検索文に対するスコアを算出し、そのスコアが高い順（適合度が高い順）に並び替え、その結果である文書リストを検索サービスプログラム１１０に返す（ステップ１２１１）。
【００５８】
また、ステップ１２０５において、検索エンジンプログラム１１２は、ユーザーが当該単語に合致する文書内の索引語の何れかに対してアクセス権がないと判定した場合は、ステップ１２０８に進む。
【００５９】
以上、本発明の実施例１について説明した。実施例１によると、文書保持者や管理者が文書内の機密情報やプライバシー情報に対するアクセス権情報を事前に登録し、これを索引語に関連付け、同じ文書に対して索引語や索引語の位置毎に異なるアクセス権を管理する。さらに、検索エンジンプログラム１１２が検索文中の単語に合致する索引語に対して、検索文を入力したユーザーのアクセス権を確認し、適合する文書リストを作成してスコアリングを行う。これにより、ユーザーは検索文や論理条件式の変更に対する検索結果の順位変動等から、文書と当該文書内の機密情報の関連性を推測困難となり、結果として文書内の機密情報を踏まえた適切な検索結果を生成可能である。
【実施例２】
【００６０】
本発明を適用する情報検索システムにおいて、他の実施例について説明する。以下、特に説明の無い箇所は実施例１と同じものとする。
【００６１】
本実施例２は、検索サービスプログラム１１０が、検索エンジンプログラム１１２より受け取った文書リスト中の各文書に対して、ユーザーの権限と当該文書に含まれる機密情報に応じて、当該文書の削除あるいは順位変更を行って最終的な検索結果を生成するという点で実施例１とは異なる。すなわち、実施例２では、索引語単位でのアクセス権チェックを必要としない。
【００６２】
図１２は、本発明の実施例２に係るインデックス１１３の構成例を示すた図である。図１２に示すように、例えば、図１２に示す文書Ｘに対して、文書内に含まれる索引語に関わらず一つのアクセス許可グループ情報５０６のみが関連付けられている。したがって、本実施例２では、検索エンジンプログラム１１２は、文書単位でのアクセス制御のみを実施する。
【００６３】
図１３は、本発明の実施例２に係る検索サービスプログラム１１０による検索処理手順の一例を示すフローチャートである。
【００６４】
まず検索サービスプログラム１１０は、ユーザーがクライアントコンピュータ２の入力部２４を用いて入力した検索文およびユーザー識別情報を検索クライアントプログラム２１０を介して受け取る（ステップ１３０１）。
【００６５】
つぎに検索サービスプログラム１１０は、検索文およびグループ情報を検索エンジンプログラム１１２に渡し、検索エンジンプログラム１１２は、前述した方法および手順で検索およびスコアリングを行い、文書リストを検索サービスプログラム１１０に返す（ステップ１３０２）。
【００６６】
つぎに検索サービスプログラム１１０は、検索エンジンプログラム１１２より受け取った文書リストから一件の文書を選択する（ステップ１３０３）。
【００６７】
つぎに検索サービスプログラム１１０は、検索文に含まれる単語が一つかどうかを判定し（ステップ１３０４）、一つであればステップ１３０５に、複数であればステップ１３０９に進む。
【００６８】
ステップ１３０４において、検索文に含まれる単語が一つと判定した場合、検索サービスプログラム１１０は、機密情報管理テーブル１１５およびユーザーグループテーブル１１４を参照し、検索単語が文書内の機密情報に合致し、且つ当該機密情報が複数の位置にある場合はその何れかに対してユーザーがアクセス権を持つかどうかを判定する（ステップ１３０５）。判定の結果、検索サービスプログラム１１０は、アクセス権を持つ場合は文書リストに他の文書がまだあるかどうかを確認し（ステップ１３０６）、アクセス権を持たない場合は処理中の文書を文書リストから削除する処理を行う（ステップ１３０８）。
【００６９】
ステップ１３０６において、検索サービスプログラム１１０は、文書リストに他の文書が無ければステップ１３０７に進み、他の文書が有ればステップ１３０３からステップ１３０６までの各処理を次の文書について実施する。
【００７０】
また、ステップ１３０６において文書リストに他の文書が無いと判定した場合、検索サービスプログラム１１０は、ステップ１３０３からステップ１３０６において作成した検索結果を検索クライアントプログラム２１０を介してユーザーに提示する（ステップ１３０７）。
【００７１】
また、ステップ１３０４において検索文に含まれる単語が複数あると判定した場合検索サービスプログラム１１０は、ユーザーが検索文に含めた複数の検索単語に対してＡＮＤ検索を行ったのか、ＯＲ検索を行ったのかを、ユーザーにより指定された検索論理式から判定する（ステップ１３０９）。検索サービスプログラム１１０は、ＡＮＤ検索であればステップ１３１０に、ＯＲ検索であればステップ１３１１に進む。
【００７２】
ステップ１３０９においてＡＮＤ検索が行われたと判定した場合、検索サービスプログラム１１０は、機密情報管理テーブル１１５およびユーザーグループテーブル１１４を参照し、検索文中に含まれる複数の検索単語の何れかが文書内の機密情報に合致し、且つ当該機密情報が複数の位置にある場合はその何れかに対してユーザーがアクセス権を持つかどうかを判定する（ステップ１３１０）。判定の結果、検索サービスプログラム１１０は、アクセス権を持つ場合はステップ１３０６に進み、アクセス権を持たない場合は処理中の文書を文書リストから削除する（ステップ１３０８）。
【００７３】
また、ステップ１３０９においてＯＲ検索が行われたと判定した場合、検索サービスプログラム１１０は、機密情報管理テーブル１１５およびユーザーグループテーブル１１４を参照し、検索文中に含まれる複数の検索単語の何れかが文書内の機密情報に合致するかどうかを判定する（ステップ１３１１）。判定の結果、検索サービスプログラム１１０は、合致する場合は処理中の文書の順位を文書リスト内において降下させ（ステップ１３１２）、検索単語中の何れも文書内で機密指定された情報に合致しない場合はステップ１３０６に進む。
【００７４】
ステップ１３１２において、降下量は、検索サービスプログラム１１０が、前述したスコア算出方法により、スコアを再計算し、再計算されたスコアを基に文書リスト内の所定のスコア位置まで下げる。再計算に当たっては、文書内で機密指定された情報のうち、ユーザーがアクセス権を持つものだけを考慮して実施する。なお、降下量については、文書保有者や管理者が事前に定数として定めてもよい。
【００７５】
ステップ１３１２の処理後、検索サービスプログラム１１０は、検索文中に含まれる検索単語の何れかが処理中の文書名において機密登録された情報に合致するかどうかを判定し、合致する場合はタイトル中の当該情報箇所を削除あるいは伏字で置き換える等の処理を行う（ステップ１３１３）。
【００７６】
以上、本発明の実施例２について説明した。実施例２によると、文書保持者や管理者が文書内の機密情報に対するアクセス権情報を事前に登録し、該登録内容とユーザーが入力した検索文の検索キーワード数や論理条件式を基に、検索サービスプログラムが検索エンジンによる検索およびスコアリング結果に含まれる文書の削除や文書の順位変更を行うことで、文書内の機密情報やプライバシー情報を踏まえた適切な検索結果を生成可能である。
【実施例３】
【００７７】
以下、本発明を適用する情報検索システムの他の実施例について説明する。以下、特に説明の無い箇所は実施例1あるいは実施例２と同じとする。
【００７８】
本実施例３は、検索サービスプログラム１１０が、文書保有者あるいは管理者が機密情報を登録した文書に対して、元文書の複製を内部的に生成し、これを元文書と関連付けて管理し、複製文書については機密登録箇所を索引対象外とした上で双方の文書をインデックスに登録する点で、実施例1および実施例２とは異なる。
【００７９】
図１４は、本発明の実施例３に係る検索サーバ１のハードウェアおよびソフトウェアの構成例を示している。
【００８０】
文書関係テーブル１１６には文書間の関係情報が含まれる。本実施例３においては、ユーザーがある文書内の情報を機密登録する場合に、検索サービスプログラム１１０が当該文書の複製文書を内部で作成し、その複製文書に識別情報を付与する。また、文書関係テーブル１１６には、新たに作成した複製文書の識別情報と元文書の識別情報とを関連付けて記憶する。
【００８１】
図１５は、本発明の実施例３に係る文書関係テーブルの一例を示す図である。文書８０１は、情報検索システムにおいて文書を一意に識別するための情報である。元文書８０２は、文書８０１がユーザーが機密情報を指定した際に新たに生成される元文書の複製文書である場合に、当該複製文書の元文書を一意に識別するための情報を格納する。
【００８２】
図１６は、本発明の実施例３に係る文書の複製を生成する概念の一例を示す図である。文書保有者あるいは管理者は同じ文書内の複数の機密情報に個別にアクセス許可グループを設定できる。例えば、図１６に示す通り、文書Ｚ内の機密情報に対してそれぞれアクセス許可グループを設定すると、機密情報管理テーブル１１５において９０１に示すように、ユーザーグループｐやユーザーグループｑ、ユーザーグループｒに異なる開示範囲が設定される。この場合、ユーザーグループｑとユーザーグループｒに所属するユーザーはそれぞれ異なる部分開示制限を受けることになるため、検索サービスプログラム１１０は、個々の部分開示範囲に応じて最低限二つの複製文書を生成し、これらを文書関係テーブル１１６において関連付けて管理する。
【００８３】
図１７は、本発明の実施例３に係る文書内の機密情報登録手順の一例を示すフローチャートである。
【００８４】
まず、ユーザーは、文書保有者あるいは管理者は図８で一例を示したようなインタフェースを介して文書内の機密情報に対してアクセス許可グループを設定する（ステップ１４０１）。機密情報の指定については、文書保有者や管理者が行ってもよいし、プログラムが提示した候補を基にユーザーが確認し指定してもよい。
【００８５】
つぎに検索サービスプログラム１１０は、機密情報が登録された文書に対し、元文書とは別に複製文書を内部で生成する（ステップ１４０２）。新たに生成する複製文書については、機密指定箇所を削除あるいは伏字での置き換え、暗号化等を実施することで機密情報を隠蔽する。これにより、複製文書内の機密情報については索引付けの対象外とする。
【００８６】
つぎに検索サービスプログラム１１０は、ユーザーがステップ１４０１において設定した内容を基に、元文書を機密情報管理テーブル１１５に登録する（ステップ１４０３）。
【００８７】
つぎに検索サービスプログラム１１０は、元文書とステップ１４０２で生成した複製文書の双方をインデックス１１３に登録する（ステップ１４０４）。前述の通り、複製文書内の機密情報については索引付けされず、非機密箇所のみが索引付け対象となる。
【００８８】
図１８は、本発明の実施例３に係る検索サービスプログラム１１０による検索処理手順の一例を示すフローチャートである。
【００８９】
まず検索サービスプログラム１１０は、ユーザーがクライアントコンピュータ２の入力部２４を用いて入力した検索文およびユーザー識別情報を検索クライアントプログラム２１０を介して受け取る（ステップ１５０１）。
【００９０】
つぎに検索サービスプログラム１１０は、検索文を検索エンジンプログラム１１２に渡し、検索エンジンプログラム１１２は、前述したスコア算出方法および手順で検索およびスコアリングを行い、文書リストを検索サービスプログラム１１０に返す（ステップ１５０２）。
【００９１】
つぎに検索サービスプログラム１１０は、検索エンジンプログラム１１２より受け取った文書リストから一件の文書を選択し、ステップ１５０４〜ステップ１５０８までを文書毎に実施する（ステップ１５０３）。
【００９２】
つぎに検索サービスプログラム１１０は、文書関係テーブル１１６を参照する（ステップ１５０４）。
【００９３】
つぎに検索サービスプログラム１１０は、処理中の文書に元文書が存在するかどうかを判定する（ステップ１５０５）。判定の結果、検索サービスプログラム１１０は、元文書が存在すればステップ１５０６に、元文書が存在しなければステップ１５０８に進む。
【００９４】
ステップ１５０５において、処理中の文書に元文書が存在すると判定した場合、検索サービスプログラム１１０は、機密情報管理テーブル１１５を参照し、ユーザーが検索文に含まれる一つ以上の単語に合致する元文書内の情報の全てに対してアクセスを許可されているかどうかを判定する（ステップ１５０６）。判定の結果、検索サービスプログラム１１０は、アクセス権を持つ場合はステップ１５０７へ、アクセス権を持たない場合はステップ１５１０へ進む。
【００９５】
ステップ１５０６において、ユーザーがアクセス権を持つと判定した場合、検索サービスプログラム１１０は、処理中の文書を元文書に関連付けを行う（ステップ１５０７）。関連付けの手法として、例えば処理中の文書のスコアとは無関係に、処理中の文書を元文書の直下に配置する。
【００９６】
つぎに検索サービスプログラム１１０は、文書リストに他にまだ文書があるかどうかを判定し（ステップ１５０８）、ある場合は次の文書に対してステップ１５０３以降を実施し、無い場合は、文書リストを検索結果として、検索クライアントプログラム２１０を介してユーザーに提示する（ステップ１５０８）。
【００９７】
また、ステップ１５０６において、ユーザーがアクセス権を持たないと判定した場合、検索サービスプログラム１１０は、処理中の文書を元文書を文書リストから削除し、さらに、当該元文書の処理中の文書以外の複製文書が文書リストにあれば、当該複製文書をリストから削除し（ステップ１５１０）、ステップ１５０８に進む。
【実施例４】
【００９８】
実施例３では、検索サービスプログラム１１０が検索エンジンプログラム１１２より受け取った文書リスト中の各文書とその元文書に対して、ユーザーの権限と当該文書に含まれる機密情報に応じて検索結果を生成する場合の処理手順の一例を説明したが、本実施例４では、検索エンジンプログラム１１２が、複製文書とその元文書に対して、ユーザーの権限と当該文書へのアクセス権に応じて文書リストを生成し、検索サービスプログラム１１０が最終的な検索結果を生成する場合の処理手順の一例を説明する。
【００９９】
図１９は、本発明の実施例４に係る文書内の機密情報登録手順の例を示すフローチャートである。
【０１００】
ステップ１４０１からステップ１４０４までの各処理は、図１７と同様である。
【０１０１】
ステップ１４０４の処理後、検索サービスプログラム１１０は、ユーザーがステップ１４０３において設定した内容を基に、インデックス１１３に図１２で一例を示したような形態でアクセス許可グループ情報を文書単位で登録する（ステップ１６０５）。
【０１０２】
図２０は、本発明の実施例４に係る検索サービスプログラム１１０による検索処理手順のもう一つの例を示すフローチャートである。
【０１０３】
まず検索サービスプログラム１１０は、ユーザーが検索クライアントプログラム２１０を介して入力した検索文およびユーザー識別情報を受け取る（ステップ１５０１）。
【０１０４】
つぎに検索サービスプログラム１１０は、検索文を検索エンジンプログラム１１２に渡し、検索エンジンプログラム１１２は、前述したスコア算出方法および手順で検索および文書単位でのアクセス制御およびスコアリングを行い、文書リストを検索サービスプログラム１１０に返す。アクセス制御においては、ステップ１６０５で設定した文書単位でのアクセス権情報を利用する。
【０１０５】
ステップ１５０３からステップ１５０９までの各処理は、図１８と同様である。本実施例４においては、事前にステップ１６０５にて設定した文書単位でのアクセス権情報を用いてステップ１７０２でアクセス制御を実施し、その時点で元文書と複製文書のうちユーザーに権限のあるもののみが文書リストに含まれて検索サービスプログラム１１０に渡されるため、図１８に示すステップ１５１０の処理を省略できる。
【０１０６】
以上、本発明の実施例３、４について説明した。実施例３、４によると、文書保持者や管理者が文書内の機密情報やプライバシー情報に対するアクセス権情報を事前に登録し、検索エンジンプログラム１１２の上位プログラムが当該文書の当該機密情報を隠蔽した別文書を内部で生成し、この生成した文書を元文書と関連付けて管理し、双方に対して索引を作成する。また、検索サービスプログラムは、アクセス権情報や上記関連付け情報を基に、検索エンジンによる検索およびスコアリング結果に含まれる文書の削除を行うことで、文書内の機密情報やプライバシー情報を踏まえた適切な検索結果を生成可能である。
【０１０７】
以上、本発明の実施の形態について、いくつかの実施例を挙げて具体的に説明したが、本発明はこれらの実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【０１０８】
１・・・検索サーバ、２・・・クライアントコンピュータ（端末）、３・・・文書共有サーバ、４・・・通信ネットワーク、１０、２０、３０・・・制御部、１１、２１、３１・・・記憶部、１２、２２、３２・・・ネットワークインタフェース部、１３、２３、３３・・・表示部、１４、２４、３４・・・入力部、１５、２５、３５・・・データバス。
【図１】
2011081642.tif 000003
【図２】
2011081642.tif 000004
【図３】
2011081642.tif 000005
【図４】
2011081642.tif 000006
【図５】
2011081642.tif 000007
【図６】
2011081642.tif 000008
【図７】
2011081642.tif 000009
【図８】
2011081642.tif 000010
【図９】
2011081642.tif 000011
【図１０】
2011081642.tif 000012
【図１１】
2011081642.tif 000013
【図１２】
2011081642.tif 000014
【図１３】
2011081642.tif 000015
【図１４】
2011081642.tif 000016
【図１５】
2011081642.tif 000017
【図１６】
2011081642.tif 000018
【図１７】
2011081642.tif 000019
【図１８】
2011081642.tif 000020
【図１９】
2011081642.tif 000021
【図２０】
2011081642.tif 000022