(57)【特許請求の範囲】
【請求項１】
検索要求者から入力された検索要求に含まれる検索条件に合致する文書を検索する文書検索手段と、
アクセス権の有無をチェックする第１のアクセス権チェック手段と、
前記第１のアクセス権チェック手段に比べて信頼性は低いがより高速にアクセス権の有無をチェックすることができる第２のアクセス権チェック手段と、
前記検索された文書について前記検索要求者がアクセス権を有するか否かを前記第２のアクセス権チェック手段によって調査を行い、その調査結果に基づいて、前記検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する検索結果分類手段と、
アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について前記検索要求者がアクセス権を有するか否かを前記第１のアクセス権チェック手段によって調査を行い、前記検索要求者がアクセス権を有すると判定された文書を含む途中結果を前記検索要求者へ出力する検索結果返却手段と
を備えることを特徴とする検索装置。
【請求項２】
前記第２のアクセス権チェック手段は、前記第１のアクセス権チェック手段による過去の調査結果を保持するキャッシュを備え、該キャッシュに保持された調査結果に基づいてアクセス権のチェックを行う
ことを特徴とする請求項１に記載の検索装置。
【請求項３】
前記第２のアクセス権チェック手段は、前記第１のアクセス権チェック手段による過去の調査結果をアクセス権の設定が行われる属性単位で保持するキャッシュを備え、前記検索要求者の有する属性毎に、その属性に対応するキャッシュに保持された調査結果に基づいてアクセス権のチェックを行う
ことを特徴とする請求項１または２に記載の検索装置。
【請求項４】
前記検索結果分類手段は、前記検索要求者の属性毎のアクセス権のチェック結果に基づいて、全ての属性でアクセス権有りとなった文書を、アクセス権を有する可能性の最も高いグループに分類し、全ての属性でアクセス権無しとなった文書を、アクセス権を有する可能性の最も低いグループに分類し、それら以外の文書を中間の１以上のグループに分類する
ことを特徴とする請求項３に記載の検索装置。
【請求項５】
前記検索結果分類手段は、アクセス権を有する可能性の最も高いグループに属する文書の数が所定個数に達した時点で、未分類の残りの文書を、アクセス権を有する可能性の最も高いグループ以外の何れかのグループに強制的に分類する
ことを特徴とする請求項１乃至４の何れかに記載の検索装置。
【請求項６】
前記検索結果返却手段は、１つのグループに属する全ての文書について前記第１のアクセス権チェック手段による調査を終える毎に、途中結果を返却する
ことを特徴とする請求項１乃至５の何れかに記載の検索装置。
【請求項７】
前記第２のアクセス権限チェック手段は、事前に収集してインデックス化したＡＬＣインデックスに基づいてアクセス権のチェックを行う
ことを特徴とする請求項１に記載の検索装置。
【請求項８】
前記第１のアクセス権チェック手段は、前記文書の最新のＡＬＣと前記検索要求者の属性とに基づいて、アクセス権の有無をチェックする
ことを特徴とする請求項１乃至７の何れかに記載の検索装置。
【請求項９】
文書検索手段と、アクセス権の有無をチェックする第１のアクセス権チェック手段と、前記第１のアクセス権チェック手段に比べて信頼性は低いがより高速にアクセス権の有無をチェックすることができる第２のアクセス権チェック手段と、検索結果分類手段と、検索結果返却手段とを有する検索装置が実行する検索方法であって、
前記文書検索手段が、検索要求者から入力された検索要求に含まれる検索条件に合致する文書を検索し、
前記検索結果分類手段が、前記検索された文書について前記検索要求者がアクセス権を有するか否かを前記第２のアクセス権チェック手段によって調査を行い、その調査結果に基づいて、前記検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類し、
前記検索結果返却手段が、アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について前記検索要求者がアクセス権を有するか否かを前記第１のアクセス権チェック手段によって調査を行い、前記検索要求者がアクセス権を有すると判定された文書を含む途中結果を前記検索要求者へ出力する
ことを特徴とする検索方法。
【請求項１０】
コンピュータを、
検索要求者から入力された検索要求に含まれる検索条件に合致する文書を検索する文書検索手段と、
アクセス権の有無をチェックする第１のアクセス権チェック手段と、
前記第１のアクセス権チェック手段に比べて信頼性は低いがより高速にアクセス権の有無をチェックすることができる第２のアクセス権チェック手段と、
前記検索された文書について前記検索要求者がアクセス権を有するか否かを前記第２のアクセス権チェック手段によって調査を行い、その調査結果に基づいて、前記検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する検索結果分類手段と、
アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について前記検索要求者がアクセス権を有するか否かを前記第１のアクセス権チェック手段によって調査を行い、前記検索要求者がアクセス権を有すると判定された文書を含む途中結果を前記検索要求者へ出力する検索結果返却手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者から入力された検索条件に合致し、かつ、その利用者にアクセス権がある文書を検索する検索装置に関する。
【背景技術】
【０００２】
企業内文書を検索する検索装置では、ＨＴＭＬやＰＤＦなどの公開された情報を検索するようなインターネット検索とは違い、各サーバに散在しているグループウェアや業務システムなどのアクセス管理がされている様々な種別の文書を横断して検索する必要がある。また、特に企業内における文書の多くはアクセス管理が厳密に実施されており、検索結果一覧にもアクセス権限のない文書を表示することは、セキュリティの観点から避ける必要がある。そのため、企業内における検索装置は、検索条件に合致し、かつ、利用者にアクセス権がある文書を検索する機能が必要となる。
【０００３】
検索条件とアクセス権の双方を考慮して文書の検索を行う検索装置には、例えば特許文献１に記載されるように、検索用インデックスにアクセス制御情報を持たせる方式（以下、事前確認方式と言う）と、例えば特許文献２に記載されるように、検索結果が得られた時点で個々の文書のアクセス権を確認する方式（以下、リアルタイム確認方式と言う）との２通りの方式がある。
【０００４】
このうち、事前確認方式は、文書のアクセス権が変更された場合、検索用インデックスを更新するまでは変更されたアクセス権の内容が検索結果に反映されないという問題がある。この問題は、企業内文書のようにアクセス管理が厳密に行われている組織の場合、閲覧不可な文書が一時でも検索結果に表示される可能性があることから、受け入れられないケースが多い。このため、セキュリティを重視する企業では、リアルタイム確認方式が専ら利用されている。本発明は、このリアルタイム確認方式の改良に関する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２４２５８号公報
【特許文献２】特開２００４−１８５０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
リアルタイム確認方式では、検索条件に合致する文書の一覧が得られた後にアクセス権の有無の確認が行われるために、事前確認方式に比べて検索レスポンスが大幅に低下する。例えば、アクセス権の有無を確認する処理に、文書１件当たり例えば５０ｍｓの時間がかかる場合、２００件の文書が検索されたとすると、アクセス権の確認処理だけで１０秒もの時間が必要となる。
【０００７】
特許文献２では、アクセス権のある文書が所定個数だけ見つかった時点で途中結果を利用者に返すことで、体感的な検索レスポンスの向上を図っている。しかし、検索結果リストの先頭の文書から順に権限の有無を調査しているため、所定個数の文書を見つけるだけでも、かなりの数の文書についてアクセス権の有無を調査する必要がある。例えば、アクセス権を有する文書である確率を１０％とすると、利用者がアクセス権を有する例えば１０件の文書を発見するためには、検索結果リスト中の１００件の文書についてアクセス権の確認を行う必要があり、５秒の調査時間を要することになる。
【０００８】
本発明の目的は、上述したような課題、すなわち検索結果リストの先頭の文書から順に権限の有無を調査するリアルタイム確認方式では、所定個数の文書を見つけるだけでも相当長い時間がかかってしまって体感的な検索レスポンスの向上が困難になる、という課題を解決する検索装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一形態にかかる検索装置は、検索要求者から入力された検索要求に含まれる検索条件に合致する文書を検索する文書検索手段と、アクセス権の有無をチェックする第１のアクセス権チェック手段と、上記第１のアクセス権チェック手段に比べて信頼性は低いがより高速にアクセス権の有無をチェックすることができる第２のアクセス権チェック手段と、上記検索された文書について上記検索要求者がアクセス権を有するか否かを上記第２のアクセス権チェック手段によって調査を行い、その調査結果に基づいて、上記検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する検索結果分類手段と、アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について上記検索要求者がアクセス権を有するか否かを上記第１のアクセス権チェック手段によって調査を行い、上記検索要求者がアクセス権を有すると判定された文書を含む途中結果を上記検索要求者へ出力する検索結果返却手段とを備えている。
【発明の効果】
【００１０】
本発明によれば、アクセス権を有する可能性のより高い文書から順にアクセス権の有無を確認していくために、最初の途中結果を返すまでに調査しなければならない文書数を削減でき、その結果として体感的な検索レスポンスが向上する。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態のブロック図である。
【図２】本発明の第１の実施形態の処理の一例を示すフローチャートである。
【図３】本発明の第２の実施形態のブロック図である。
【図４】本発明の第２の実施形態の処理の一例を示すフローチャートである。
【図５】本発明の第２の実施形態における検索結果分割処理部の動作説明図である。
【図６】本発明に関連するリアルタイム確認方式の検索装置において検索結果リストの先頭から順に権限確認を行う場合の検索応答時間の計算例を示す図である。
【図７】本発明の第２の実施形態にかかる検索装置において権限有りの可能性の高いグループから権限確認を行う場合の検索応答時間の計算例を示す図である。
【図８】本発明の第２の実施形態にかかる検索装置において権限有りの可能性の高いグループから権限確認を行う場合の検索応答時間の他の計算例を示す図である。
【図９】本発明の第５の実施形態のブロック図である。
【図１０】本発明の第６の実施形態のブロック図である。
【発明を実施するための形態】
【００１２】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１を参照すると、本発明の第１の実施形態にかかる検索装置１００は、検索要求者からの検索要求１０１を入力し、検索要求１０１に含まれる検索条件に合致し、かつ、検索要求者がアクセス権を有する文書を図示しない検索対象文書群から検索し、その検索結果１０２を検索要求者に出力する機能を有する。この検索装置１００は、文書検索手段１１１と、第１のアクセス権チェック手段１１２と、第２のアクセス権チェック手段１１３と、検索結果分類手段１１４と、検索結果返却手段１１５とを備えている。
【００１３】
文書検索手段１１１は、検索要求者から入力された検索要求１０１に含まれる検索条件に合致する文書を検索する機能を有する。文書検索手段１１１は、検索条件に合致する文書のリストを検索結果分類手段１１４に通知する。
【００１４】
第１のアクセス権チェック手段１１２は、或る文書について、或る利用者がアクセス権を有するか否かをチェックする機能を有する。第１のアクセス権チェック手段１１２は、例えば、文書を保存するサーバに設定されている当該文書の最新のアクセスコントロールリスト（ＡＣＬ）を当該サーバから取得し、この取得したＡＣＬと利用者の属性とに基づいて、当該利用者が当該文書をアクセスできるか否かを判定するように構成されていてよい。
【００１５】
第２のアクセス権チェック手段１１３は、或る文書について、或る利用者がアクセス権を有するか否かを、第１のアクセス権チェック手段１１２に比べて信頼性は低いが、より高速な方法でチェックする機能を有する。
【００１６】
第２のアクセス権チェック手段１１３は、例えば、検索対象となる文書のＡＣＬを事前に各サーバから収集してローカルなメモリに保存しておき、この保存されたＡＣＬと利用者の属性とに基づいて、当該利用者が当該文書をアクセスできるか否かを判定するように構成されていてよい。収集元のサーバでＡＣＬが更新されても、ローカルメモリ上のＡＣＬには反映されないので、古いＡＣＬに基づいてアクセス権をチェックしてしまう可能性がある。このため、信頼性は低くなる。しかし、ネットワーク経由で各サーバのＡＣＬをアクセスする必要はなく、ローカルメモリ上のＡＣＬをアクセスするので、高速な処理が可能になる。
【００１７】
また、第２のアクセス権チェック手段１１３は、例えば、第１のアクセス権チェック手段１１２による過去の調査履歴を保持するキャッシュを備え、このキャッシュに保持された調査履歴に基づいてアクセス権のチェックを行うように構成されていてよい。例えば、文書Ｘについて検索要求者Ａがアクセス権を有することが第１のアクセス権チェック手段１１２の調査で判明した場合、例えば、文書Ｘについて検索要求者Ａがアクセス権を有する旨のデータがキャッシュに保存される。第２のアクセス権チェック手段１１３は、後に、文書Ｘについて検索要求者Ａがアクセス権を有するか否かを検索する場合、キャッシュ上の上記データに基づき、アクセス権ありと判定する。文書ＸのＡＣＬが更新されてもキャッシュ上のデータは更新されないので、信頼性は低いが、キャッシュ上のデータをアクセスするので、高速な処理が可能になる。
【００１８】
検索結果分類手段１１４は、文書検索手段１１１で検索された文書について、検索要求者がアクセス権を有するか否かを第２のアクセス権チェック手段１１３によって調査を行い、その調査結果に基づいて、検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する機能を有する。例えば、検索結果分類手段１１４は、検索された文書を、第２のアクセス権チェック手段１１３によってアクセス権を有すると判定された文書のグループと、それ以外の文書のグループとの何れかに分類することができる。また、３つ以上のグループの何れかに分類するようにしてもよい。
【００１９】
検索結果返却手段１１５は、検索結果分類手段１１４で分類されたグループのうち、アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について検索要求者がアクセス権を有するか否かを第１のアクセス権チェック手段１１２によって調査を行い、検索要求者がアクセス権を有すると判定された文書を含む途中結果を検索要求者へ出力する機能を有する。例えば、検索結果返却手段１１５は、検索要求者がアクセス権を有する文書を所定個数（例えば１０件）だけ見つけた時点で、それらの文書を含む検索結果１０２を検索要求者に返却するようにしてよい。また、検索結果返却手段１１５は、アクセス権を有する可能性のより高いグループに属する全ての文書について第１のアクセス権チェック手段１１２による調査を終えた時点で、アクセス権を有する１以上の文書が発見されていれば、それらの文書を含む検索結果１０２を検索要求者に返却するようにしてよい。
【００２０】
次に本実施形態の動作を説明する。
【００２１】
図示しない端末あるいは入力装置を通じて検索要求者から検索条件を指定した検索要求１０１が入力されると（図２のＳ１１）、検索装置１００の文書検索手段１１１は、図示しない検索インデックスを検索することにより、検索条件に合致する文書を検索する（Ｓ１２）。このときランキング機能を有する検索装置１００では、検索された文書にスコアが付与される。
【００２２】
次に、検索結果分類手段１１４は、例えばスコアの良い文書から順に、その文書について検索要求者がアクセス権を有するか否かを第２のアクセス権チェック手段１１３を用いてチェックし、そのチェック結果に基づいて、検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する（Ｓ１３）。
【００２３】
次に、検索結果返却手段１１５は、アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について検索要求者がアクセス権を有するか否かを第１のアクセス権チェック手段１１２を用いてチェックし、例えば、検索要求者がアクセス権を有すると判定された文書が所定個数見つかった時点で、それらの文書を含む検索結果１０２を途中結果として検索要求者へ出力する（Ｓ１４）。その後の処理は任意であり、例えば、残りの検索結果の取得が検索要求者から要求された場合、検索結果返却手段１１５は、残りの検索結果のうち検索要求者がアクセス権を有する文書を含む検索結果を検索要求者に返却する。
【００２４】
このように本実施形態によれば、アクセス権を有する可能性のより高い文書から順にアクセス権の有無を確認していくため、最初の途中結果を返すまでに調査しなければならない文書数を削減でき、その結果として検索レスポンスを向上することが可能になる。
【００２５】
[第２の実施形態]
[概要]
本実施形態では、各サーバに散在したアクセス権が設定されている企業内の文書を横断的に検索するシステムにおいて、検索結果の文書リストに対してアクセス権があるかどうかを確認する時、検索者の属性（所属部門、役職など）単位のキャッシュを活用して権限がありそうな文書から先に権限チェックを行うことによって、検索レスポンスの向上を実現しつつ、各文書のＡＣＬの即時反映も担保する。
【００２６】
このために本実施形態では、検索結果の文書リストを、「権限のある可能性」を指標にグループに分けて、「権限のある可能性」の高いグループから先に権限チェックを行う。そして「権限のある可能性」が高いグループの文書リストの権限チェック結果から先に返却して画面に表示することで、体感的な検索レスポンスの向上を図る。また「権限のある可能性」が低い文書リストの権限チェック結果は、バックグラウンドで実行して逐次返却して、画面でその都度スコア順にソート更新することで、ランキングの精度を徐々に精錬していく。
【００２７】
本実施形態における「権限のある可能性」については、検索者の属性（所属部署、役職など）単位のキャッシュで「文書ＩＤ＋権限あり（○）」「文書ＩＤ＋権限なし（×）」の組み合わせの情報をハッシュマップで保持し、属性毎のキャッシュを確認して権限が○になるにケースが多い文書ほど「権限のある可能性」が高いと判定する。なお、キャッシュ単位となる属性は、システム（組織）全体として予め手動で設定することができる項目であり、アクセス権が設定されていそうな単位で設定すると有効である。例えば、或る会社では役員、部長、係長、一般社員の単位で文書のアクセス権を設定しているケースが多い、という場合は、キャッシュ単位となる属性に「役職」を追加する。
【００２８】
[構成]
図３を参照すると、本発明の第２の実施形態は、特定の企業の社員が会社で管理されている各種の文書を検索するための企業内検索システムであり、文書の検索要求を送信して検索結果を表示するクライアント１と、検索要求を受けて文書を検索する検索サーバ２と、文書やＡＣＬが格納された企業内の各種サーバ３とから構成される。
【００２９】
クライアント１は、社員が使用する情報処理装置、例えば企業の社員それぞれに支給されたパーソナルコンピュータである。ここでは、クライアント１はＡという社員が使用するものとする。図３には、１台のクライアント１だけが描かれているが、合計ｎ人の社員が存在する場合、それぞれの社員に１対１に対応するｎ台のクライアントが存在する。
【００３０】
クライアント１は、検索画面／結果表示部４、検索要求処理部５を備えている。また、クライアント１には、キーボードやマウスなどで構成される入力装置、液晶ディスプレイなどで構成される表示装置、メモリなどで構成される記憶装置（何れも図示せず）が接続されている。
【００３１】
他方、検索サーバ２は、パーソナルコンピュータ等で構成され、クライアント要求受付／返却処理部６、文書検索部７、インデックス（検索インデックス）８、検索結果分割処理部９、ＡＣＬキャッシュ１０、ＡＣＬチェック部１１、情報収集部１２を含む。ここで、ＡＣＬキャッシュ１０および検索結果分割処理部９は、図１の第２のアクセス権チェック手段１１３および検索結果分類手段１１４に相当する。また、ＡＣＬチェック部１１およびクライアント要求受付／返却処理部６は、図１の第１のアクセス権チェック手段１１２および検索結果返却手段１１５に相当する。
【００３２】
これらはそれぞれ概略つぎのように動作する。
【００３３】
クライアント１は、検索画面／結果表示部４で表示された検索画面から社員Ａが指定した検索キーワードを入力して、検索要求処理部５を介して、検索サーバ２へリクエストを送信する。なお、このリクエストには、社員Ａの情報（例えば社員ＩＤ）が含まれていてもよい。その後、検索要求処理部５は、検索サーバ２からの検索結果である文書情報一覧が時間差で何回かに分けて返却されるので、その都度受信して検索画面／結果表示部４へ送信する。検索画面／結果表示部４は、検索要求処理部５からレスポンスである文書情報一覧を受信する度に、検索結果文書一覧を更新（スコア順に再ソート）して画面に表示する。
【００３４】
検索サーバ２では、クライアント要求受付／返却処理部６が、クライアント１からの検索要求を受け付け、文書検索部７へ検索要求の情報を渡す。文書検索部７は、予め作成しておいた企業内の各種サーバ３上に散在している文書のインデックス８に対して検索を実行して、検索要求に合致する文書一覧を取得する。そして取得した文書一覧をＡＣＬチェック前の検索結果リストとして、検索結果分割処理部９に送信する。
【００３５】
検索結果分割処理部９は、検索者Ａの属性単位のＡＣＬキャッシュ１０とＡＣＬチェック前の検索結果とを比較して、「権限のある可能性」を指標にＡＣＬチェック前の検索結果リストを何段階かのグループに分割する。このグループ分割処理の詳細については後述する。そして分割したグループの文書リストをＡＣＬチェック部１１に送信する。
【００３６】
ＡＣＬチェック部１１は、「権限のある可能性」の高いグループの文書リストから順に、企業内の各種サーバ３に対してＡＣＬチェックを行い、権限のある文書のみを含む検索結果リストをクライアント要求受付/返却処理部６に送信する。この時、例えば検索結果リストが３つのグループに分割された場合、クライアント要求受付/返却処理部６に検索結果リストを３回送信することになる。またＡＣＬチェック部１１は、同時にＡＣＬチェックの結果を検索者の属性単位でＡＣＬキャッシュ１０に新規格納あるいは既に該当するＡＣＬチェック結果が格納されていれば今回のＡＣＬチェック結果で更新する。
【００３７】
クライアント要求受付/返却処理部６は、ＡＣＬチェック部１１からＡＣＬチェック済みの検索結果リストを受信する度にクライアント１に送信する。
【００３８】
情報収集処理部１２は、上記インデックス８を生成する処理として、検索とは別に予め企業内の各種サーバ３に対して格納されている文書の全文テキスト情報やメタ情報を取得してインデックス化しておく。なお、この処理は比較的時間がかかる重たい処理なので、毎日あるいは毎週単位で、夜間に１回など定期的に自動で行われているものとする。
【００３９】
[動作]
次に、図３の構成を示すブロック図、図４の詳細処理フロー、図５のグループ分割例を参照しながら、本実施形態の動作について詳細に説明する。なお、以下では、文書検索部７で検索した文書リストをいかに早く権限チェックして権限がある文書のみ検索結果として画面に表示するかに焦点をあてて、該当箇所である検索結果分割処理部９、ＡＣＬキャッシュ１０、ＡＣＬチェック部１１の動作を中心に詳細を説明する。情報収集部１２が各種サーバ３を探索（クロール）してインデックス８を作成する処理や、文書検索部７がインデックス８から文書を検索する処理については、既存技術であるため、その詳細は説明は省略する。同様に、検索要求処理部５とクライアント要求受付／返却処理部６の間で複数回に渡って検索結果が伝達され、その都度更新（スコア順に再ソート）して画面に反映する処理についても、セッション格納によるＡｊａｘ通信やＣｏｏｋｉｅ伝達方式など技術的にいくつか実現可能であることは既に分かっており、こちらの処理についても詳細な説明は省略する。
【００４０】
また、説明の前提として、検索結果分割処理部９に渡される検索結果リストの文書数（総検索ヒット数）をＮ、システム全体の設定として予め設定しておく属性（その組織内でアクセス権が設定されてる単位）の数をＭとする。ＡＣＬキャッシュ１０については、属性単位で「文書ＩＤ＋権限○/×」のハッシュマップが存在するものとする。更に、検索サーバ２は、検索要求を処理する際には、その検索要求を出した検索要求者の属性を知っているものとする。検索サーバ２が検索要求者の属性を知る方法は任意である。例えば、検索要求に含まれる社員ＩＤをキ―に、社員ＩＤと社員の属性との対応関係を保持する社員テーブルを検索して属性を取得する方法があるが、その方法に限定されない。
【００４１】
さて、図４を参照すると、検索結果分割処理部９は、検索結果のスコアの高い順に文書を１件１件、検索者の属性値に該当するキャッシュから権限があるかどうか確認する。次に、キャッシュで権限がある回数が多いほど「権限のある可能性」が高いグループに振り分ける。この処理を、最も「権限のある可能性」が高いグループの文書数が画面に表示したい検索結果数（表示数）に達するまで、もしくは総検索ヒット数Ｎ個の文書全て確認し終わるまで、繰り返す（Ｓ２１〜Ｓ２８）。そして最後に、検索結果分割処理部９は、分割した結果の各グループの文書リストをＡＣＬチェック部１１に渡す。なお、最も「権限のある可能性」が高いグループの文書数が画面に表示したい検索結果数（表示数）に達した時点で、未だ権限の確認を行っていない残りの文書については、バックグラウンドで分類処理を続けるようにしても良いし、最も「権限のある可能性」が高いグループ以外の何れかのグループに強制的に分類するようにしてもよい。
【００４２】
図５の例では、予め設定されている属性は「所属部署」「役職」の２つとしている。また検索者Ａの属性値は、それぞれ「○△事業部」「主任」としている。このため、検索結果分割処理部９は、ＡＣＬキャッシュ１０の中から、「所属部署」属性の「○△事業部」のＡＣＬキャッシュと、「役職」属性の「主任」のＡＣＬキャッシュとの２つのキャッシュを取得する。そして、「04856456456」、「49845645645」、…、というように検索結果のスコア順に文書の権限をキャッシュから確認して、「２つのキャッシュ両方で権限○」の第１グループ、「何れか一方のキャッシュで権限○、他方のキャッシュ無し」の第２グループ、「何れのキャッシュも無し、或いは一方のキャッシュで権限○だが他方のキャッシュで権限×」の第３グループ、「何れか一方のキャッシュで権限×、他方のキャッシュ無し」の第４グループ、「２つのキャッシュ両方で権限×」の第５グループの合計５つのグループに分類する。
【００４３】
次に、ＡＣＬチェック部１１は、「権限のある可能性」が最も高い第１グループから順に、グループに属する文書を１件１件実際に権限があるかどうかを各種サーバ３に問い合わせて確認する（Ｓ２９）。各種サーバ３に問い合わせて権限を確認する処理は既存技術である。ＡＣＬチェック部１１は、確認した結果、権限のない文書は検索結果リストから除き、権限のある文書を検索結果リストに格納する（Ｓ３０）。またＡＣＬチェック部１１は、確認した権限の内容が属性毎のＡＣＬキャッシュと異なっている場合、もしくは属性毎のＡＣＬキャッシュに存在しない場合は、属性毎のＡＣＬキャッシュを更新する（Ｓ３０）。そして、当該グループに属する全ての文書に対して権限確認とキャッシュ更新を実施して完了したら、検索結果リストをクライアント要求受付／返却処理部６に渡す（Ｓ３１）。この処理を全グループに対して実行したら処理を終了する（Ｓ３２）。
【００４４】
図５の例では、ＡＣＬチェック部１１は、最も「権限のある可能性」が高い「２つのキャッシュ両方で権限○」の第１グループから順に、所属する文書の権限があるか確認して、最も「権限のある可能性」が低い「２つのキャッシュ両方で権限×」の第５グループまで繰り返す。またクライアント要求受付／返却処理部６に返却する検索結果リストは、各グループの所属する全文書の権限確認が完了したタイミングで、計５回に分けて返却する。
【００４５】
その後は、本実施形態の冒頭に記載した通り、検索要求処理部５とクライアント要求受付／返却処理部６の間で複数回に渡って検索結果が伝達され、その都度スコア順に再ソートして画面に反映する処理が行われることになる。
【００４６】
[効果]
本実施形態によれば、以下のような効果が得られる。
【００４７】
（１）権限をリアルタイム（検索時）に確認する方式において、ＡＣＬキャッシュから全く変更がない場合は検索性能が向上し、ＡＣＬキャッシュから変更があった場合でもある程度正しい順位の検索結果が得られることと体感速度（検索を実行してから画面に検索結果が表示されるまでの時間）が向上する。その理由は、過去の権限確認結果を元に権限がありそうな文書から先に権限確認を行うことで、単純にスコア順に権限確認を行う方法よりも、権限確認の回数を減らすことができるためである。つまり、権限確認の処理時間がこれまでボトルネックになっていたが、それを改善することができる。
【００４８】
（２）キャッシュを個人単位ではなく属性単位で保持して、さらに検索時には検索者の属性全てのキャッシュを確認することで、いずれかのキャッシュにヒットする確率（権限○となる確率）は高くなる。このため、個人単位のキャッシュを確認する場合よりも検索レスポンスが向上するケースが増える。
【００４９】
（３）検索性能（体感速度）を向上させつつ、ＡＣＬが変更された場合でも検索結果に即時反映できる。その理由は、権限をリアルタイム（検索時）に確認しているためである。
【００５０】
以下、本実施形態による効果を図６〜図８の具体例に基づいて説明する。なお、図６は特許文献２に記載されるようなスコア順に権限確認を行う方式、図７、図８が本実施形態による方式である。
【００５１】
スコア順に権限確認を行う図６では、ＡＣＬチェック処理時間を１件あたり５０ｍｓ（ネットワーク経由による外部通信が発生するため、場合によっては数倍〜数十倍近くかかる可能性もある）、検索者Ａの権限のある文書が存在する割合を１０％とすると、検索結果を１０件表示するケースを想定した場合、ＡＣＬチェックが１００回実施されることになる。このため、検索結果が表示されるまで５０ｍｓ×１００回＝５０００ｍｓ（５秒）かかることになる。検索レスポンスとして一般的にユーザが許容できる時間として３秒ルールというものがあり、その指標を超えてしまう。
【００５２】
図７は、ＡＣＬキャッシュが最新のＡＣＬと変更がないケースである。分割されるグループとしては説明の便宜上「２つのキャッシュ両方で権限○」と「２つのキャッシュ両方で権限×」の２種類としている。またＡＣＬキャッシュを１件確認するのに１ｍｓ必要とする（ＡＣＬキャッシュはオンメモリのハッシュマップデータのため高速読み出しが可能）。その他の条件は図６と同じである。第１回目のレスポンスは「２つのキャッシュ両方で権限○」グループの検索結果文書のＡＣＬチェック後の文書リストであり、本ケースではＡＣＬキャッシュから変更がないケースのため、１０件中１０件が権限のある文書となる。また応答時間も５０ｍｓ×１０回＋１ｍｓ×１０回＝６００ｍｓ（０．６秒）となり、図６のケースと比較して全く同じ検索結果と順位が得られるのにかかわれず、検索速度が１０倍近く向上していることがわかる。なお、第１回目レスポンス後の第２回目レスポンスである「２つのキャッシュ両方で権限×」グループの検索結果文書のＡＣＬチェック処理時間は６００ｍｓ＋５０ｍｓ×９０回＝５１００ｍｓ（約５秒）であるが、権限のある文書は０件であるため、検索結果画面での更新はない。その結果、第１回目レスポンスの結果がそのまま最終的な検索結果となり、３秒ルールもクリアすることができ、検索性能及び、体感（応答）速度についても大幅な向上を実現している。
【００５３】
図８は、ＡＣＬキャッシュが最新のＡＣＬと比較して５件変更があったケース、具体的には、ＡＣＬキャッシュでは権限○だが最新のＡＣＬでは権限×となる文書が２件、ＡＣＬキャッシュでは権限×だが最新のＡＣＬでは権限○となる文書が３件あった場合であり、その他の条件は図７と同じである。第１回目レスポンス、第２回目レスポンスの処理時間は図７と変わらないが、第１回目レスポンスの結果が１０件中８件となり、あと２件足りない状態で画面に表示される。また約5秒後の第２回目レスポンスで結果が３件追加になり、順位を再ソートして表示することで正しい検索結果が得られることになる。つまり、第１回目レスポンスで１０件には満たないものの、途中までの検索結果文書を画面から確認することができ、応答速度が大幅に向上しているため体感速度は上がる。また２回目レスポンスの結果を画面に表示させることで、最終検索結果文書数と順位についても保証することが可能である。
【００５４】
[第３の実施形態]
先の実施形態では検索結果リストをグループに分割した後、「権限のある可能性」のより高いグループ順にシーケンシャルに権限を確認している。これに対して本発明の第３の実施形態では、各グループの権限確認をマルチスレッド処理で並列に実施する。その場合、使用するＣＰＵが並列処理に強いマルチコアである場合には、先の実施形態よりもさらに検索性能の向上が見込まれる。
【００５５】
[第４の実施形態]
先の実施形態では、キャッシュ単位となる属性は予めシステム（組織）でアクセス権が設定されていそうな単位を手動で指定している。これに対して本発明の第４の実施形態では、このキャッシュ単位となる属性を設定しない。本実施形態では、キャッシュは検索者単位（社員ＩＤなど）で保持され、分割されるグループも「キャッシュで権限○」の第１グループ、「キャッシュに存在しない」の第２グループ、「キャッシュで権限×」の第３グループの合計３つのグループになる。
【００５６】
本実施形態では、先の実施形態と比べ、キャッシュ単位の粒度が個人となり小さくなるため、キャッシュにヒットするケースが少なくなる。このため、先の実施形態と比べて、検索性能の向上度合いは下がるが、その反面、予め手動でキャッシュ単位となる属性を設定する手間がなくなるというメリットがある。
【００５７】
[第５の実施形態]
図９を参照すると、本発明の第５の実施形態は、図３に示した第２の実施形態と比較して、ＡＣＬチェック部１１が確認するＡＣＬが各種サーバ３に存在せず、アクティブディレクトリ（Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ）サーバなどのような認証サーバ１３上に一括で管理されている点が相違する。なお、ＡＣＬが各種サーバ３と認証サーバ１３とに混在するケースにも、本発明は対応可能である。
【００５８】
[第６の実施形態]
図１０を参照すると、本発明の第６の実施形態は、図３に示した第２の実施形態と比較して、ＡＣＬキャッシュ１０の代わりにＡＣＬインデックス１０Ａを備え、検索結果分割処理部９は、ＡＣＬインデックス１０Ａを参照して権限の有無を確認する点で相違する。また、情報収集部１２は、事前に各サーバ３から文書のＡＣＬを収集してインデックス化し、ＡＣＬインデックス１０Ａを作成する機能を有する。
【００５９】
本実施形態の利点は、ＡＣＬキャッシュと違い、最初の検索時（ＡＣＬキャッシュ方式でいうＡＣＬキャッシュが作成される前の時点）にもグループ分割が可能であるため、ＡＣＬキャッシュ方式でキャッシュがヒットしなかった場合より高速な検索レスポンスを安定して実現することができることである。その反面、情報収集部１２でＡＣＬインデックス１０Ａを作成する分の処理時間が大きくなる点と、グループ分割の処理（図５の処理）がＡＣＬキャッシュ方式に比べて遅くなる点である。その理由は、ＡＣＬキャッシュ１０はメモリ上のハッシュマップデータであるのに対して、ＡＣＬインデックス１０Ａは実ファイルデータのためにアクセスに時間を要するためである。
【００６０】
以上、本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。例えば、上述した各実施の形態では、特定の企業の社員が自社の保有する文書を検索するための企業内検索システムに本発明を適用したが、特定の企業グループ、特定のサークル、特定の団体、特定の会など、特定の集団に属する個人がその集団で保有する文書を検索するための検索システムに本発明は適用可能である。また、本発明を構成する検索サーバやクライアントの各機能的手段は、ハードウェアで実現することができる以外に、コンピュータとプログラムとで実現することが可能である。
【符号の説明】
【００６１】
１      クライアント
２      検索サーバ
３      サーバ
４      検索画面／結果表示部
５      検索要求処理部
６      クライアント要求受付／返却処理部
７      文書検索部
８      インデックス
９      検索結果分割処理部
１０    ＡＣＬキャッシュ
１０Ａ  ＡＣＬインデックス
１１    ＡＣＬチェック部
１２    情報収集部
１３    認証サーバ
１００  検索装置
１０１  検索要求
１０２  検索結果
１１１  文書検索手段
１１２  第１のアクセス権チェック手段
１１３  第２のアクセス権チェック手段
１１４  検索結果分類手段
１１５  検索結果返却手段
【図１】
0005488271.tif 000002
【図２】
0005488271.tif 000003
【図３】
0005488271.tif 000004
【図４】
0005488271.tif 000005
【図５】
0005488271.tif 000006
【図６】
0005488271.tif 000007
【図７】
0005488271.tif 000008
【図８】
0005488271.tif 000009
【図９】
0005488271.tif 000010
【図１０】
0005488271.tif 000011