説明

検索装置

【課題】検索結果の中から検索要求者がアクセス権を有する文書を所定数抽出するために先頭の文書から順に権限の有無を調査すると、長い時間がかかってしまうこと。
【解決手段】検索結果分類手段114は、アクセス権チェック手段112に比べて信頼性は低いがより高速にアクセス権の有無をチェックできるアクセス権チェック手段113を用いて、検索された文書について検索要求者がアクセス権を有するか否かを調査し、その調査結果に基づいて、検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する。検索結果返却手段115は、アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について検索要求者がアクセス権を有するか否かをアクセス権チェック手段112によって調査を行い、検索要求者がアクセス権を有すると判定された文書を含む途中結果を検索要求者へ返却する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、利用者から入力された検索条件に合致し、かつ、その利用者にアクセス権がある文書を検索する検索装置に関する。
【背景技術】
【0002】
企業内文書を検索する検索装置では、HTMLやPDFなどの公開された情報を検索するようなインターネット検索とは違い、各サーバに散在しているグループウェアや業務システムなどのアクセス管理がされている様々な種別の文書を横断して検索する必要がある。また、特に企業内における文書の多くはアクセス管理が厳密に実施されており、検索結果一覧にもアクセス権限のない文書を表示することは、セキュリティの観点から避ける必要がある。そのため、企業内における検索装置は、検索条件に合致し、かつ、利用者にアクセス権がある文書を検索する機能が必要となる。
【0003】
検索条件とアクセス権の双方を考慮して文書の検索を行う検索装置には、例えば特許文献1に記載されるように、検索用インデックスにアクセス制御情報を持たせる方式(以下、事前確認方式と言う)と、例えば特許文献2に記載されるように、検索結果が得られた時点で個々の文書のアクセス権を確認する方式(以下、リアルタイム確認方式と言う)との2通りの方式がある。
【0004】
このうち、事前確認方式は、文書のアクセス権が変更された場合、検索用インデックスを更新するまでは変更されたアクセス権の内容が検索結果に反映されないという問題がある。この問題は、企業内文書のようにアクセス管理が厳密に行われている組織の場合、閲覧不可な文書が一時でも検索結果に表示される可能性があることから、受け入れられないケースが多い。このため、セキュリティを重視する企業では、リアルタイム確認方式が専ら利用されている。本発明は、このリアルタイム確認方式の改良に関する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−24258号公報
【特許文献2】特開2004−185095号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
リアルタイム確認方式では、検索条件に合致する文書の一覧が得られた後にアクセス権の有無の確認が行われるために、事前確認方式に比べて検索レスポンスが大幅に低下する。例えば、アクセス権の有無を確認する処理に、文書1件当たり例えば50msの時間がかかる場合、200件の文書が検索されたとすると、アクセス権の確認処理だけで10秒もの時間が必要となる。
【0007】
特許文献2では、アクセス権のある文書が所定個数だけ見つかった時点で途中結果を利用者に返すことで、体感的な検索レスポンスの向上を図っている。しかし、検索結果リストの先頭の文書から順に権限の有無を調査しているため、所定個数の文書を見つけるだけでも、かなりの数の文書についてアクセス権の有無を調査する必要がある。例えば、アクセス権を有する文書である確率を10%とすると、利用者がアクセス権を有する例えば10件の文書を発見するためには、検索結果リスト中の100件の文書についてアクセス権の確認を行う必要があり、5秒の調査時間を要することになる。
【0008】
本発明の目的は、上述したような課題、すなわち検索結果リストの先頭の文書から順に権限の有無を調査するリアルタイム確認方式では、所定個数の文書を見つけるだけでも相当長い時間がかかってしまって体感的な検索レスポンスの向上が困難になる、という課題を解決する検索装置を提供することにある。
【課題を解決するための手段】
【0009】
本発明の一形態にかかる検索装置は、検索要求者から入力された検索要求に含まれる検索条件に合致する文書を検索する文書検索手段と、アクセス権の有無をチェックする第1のアクセス権チェック手段と、上記第1のアクセス権チェック手段に比べて信頼性は低いがより高速にアクセス権の有無をチェックすることができる第2のアクセス権チェック手段と、上記検索された文書について上記検索要求者がアクセス権を有するか否かを上記第2のアクセス権チェック手段によって調査を行い、その調査結果に基づいて、上記検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する検索結果分類手段と、アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について上記検索要求者がアクセス権を有するか否かを上記第1のアクセス権チェック手段によって調査を行い、上記検索要求者がアクセス権を有すると判定された文書を含む途中結果を上記検索要求者へ出力する検索結果返却手段とを備えている。
【発明の効果】
【0010】
本発明によれば、アクセス権を有する可能性のより高い文書から順にアクセス権の有無を確認していくために、最初の途中結果を返すまでに調査しなければならない文書数を削減でき、その結果として体感的な検索レスポンスが向上する。
【図面の簡単な説明】
【0011】
【図1】本発明の第1の実施形態のブロック図である。
【図2】本発明の第1の実施形態の処理の一例を示すフローチャートである。
【図3】本発明の第2の実施形態のブロック図である。
【図4】本発明の第2の実施形態の処理の一例を示すフローチャートである。
【図5】本発明の第2の実施形態における検索結果分割処理部の動作説明図である。
【図6】本発明に関連するリアルタイム確認方式の検索装置において検索結果リストの先頭から順に権限確認を行う場合の検索応答時間の計算例を示す図である。
【図7】本発明の第2の実施形態にかかる検索装置において権限有りの可能性の高いグループから権限確認を行う場合の検索応答時間の計算例を示す図である。
【図8】本発明の第2の実施形態にかかる検索装置において権限有りの可能性の高いグループから権限確認を行う場合の検索応答時間の他の計算例を示す図である。
【図9】本発明の第5の実施形態のブロック図である。
【図10】本発明の第6の実施形態のブロック図である。
【発明を実施するための形態】
【0012】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態にかかる検索装置100は、検索要求者からの検索要求101を入力し、検索要求101に含まれる検索条件に合致し、かつ、検索要求者がアクセス権を有する文書を図示しない検索対象文書群から検索し、その検索結果102を検索要求者に出力する機能を有する。この検索装置100は、文書検索手段111と、第1のアクセス権チェック手段112と、第2のアクセス権チェック手段113と、検索結果分類手段114と、検索結果返却手段115とを備えている。
【0013】
文書検索手段111は、検索要求者から入力された検索要求101に含まれる検索条件に合致する文書を検索する機能を有する。文書検索手段111は、検索条件に合致する文書のリストを検索結果分類手段114に通知する。
【0014】
第1のアクセス権チェック手段112は、或る文書について、或る利用者がアクセス権を有するか否かをチェックする機能を有する。第1のアクセス権チェック手段112は、例えば、文書を保存するサーバに設定されている当該文書の最新のアクセスコントロールリスト(ACL)を当該サーバから取得し、この取得したACLと利用者の属性とに基づいて、当該利用者が当該文書をアクセスできるか否かを判定するように構成されていてよい。
【0015】
第2のアクセス権チェック手段113は、或る文書について、或る利用者がアクセス権を有するか否かを、第1のアクセス権チェック手段112に比べて信頼性は低いが、より高速な方法でチェックする機能を有する。
【0016】
第2のアクセス権チェック手段113は、例えば、検索対象となる文書のACLを事前に各サーバから収集してローカルなメモリに保存しておき、この保存されたACLと利用者の属性とに基づいて、当該利用者が当該文書をアクセスできるか否かを判定するように構成されていてよい。収集元のサーバでACLが更新されても、ローカルメモリ上のACLには反映されないので、古いACLに基づいてアクセス権をチェックしてしまう可能性がある。このため、信頼性は低くなる。しかし、ネットワーク経由で各サーバのACLをアクセスする必要はなく、ローカルメモリ上のACLをアクセスするので、高速な処理が可能になる。
【0017】
また、第2のアクセス権チェック手段113は、例えば、第1のアクセス権チェック手段112による過去の調査履歴を保持するキャッシュを備え、このキャッシュに保持された調査履歴に基づいてアクセス権のチェックを行うように構成されていてよい。例えば、文書Xについて検索要求者Aがアクセス権を有することが第1のアクセス権チェック手段112の調査で判明した場合、例えば、文書Xについて検索要求者Aがアクセス権を有する旨のデータがキャッシュに保存される。第2のアクセス権チェック手段113は、後に、文書Xについて検索要求者Aがアクセス権を有するか否かを検索する場合、キャッシュ上の上記データに基づき、アクセス権ありと判定する。文書XのACLが更新されてもキャッシュ上のデータは更新されないので、信頼性は低いが、キャッシュ上のデータをアクセスするので、高速な処理が可能になる。
【0018】
検索結果分類手段114は、文書検索手段111で検索された文書について、検索要求者がアクセス権を有するか否かを第2のアクセス権チェック手段113によって調査を行い、その調査結果に基づいて、検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する機能を有する。例えば、検索結果分類手段114は、検索された文書を、第2のアクセス権チェック手段113によってアクセス権を有すると判定された文書のグループと、それ以外の文書のグループとの何れかに分類することができる。また、3つ以上のグループの何れかに分類するようにしてもよい。
【0019】
検索結果返却手段115は、検索結果分類手段114で分類されたグループのうち、アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について検索要求者がアクセス権を有するか否かを第1のアクセス権チェック手段112によって調査を行い、検索要求者がアクセス権を有すると判定された文書を含む途中結果を検索要求者へ出力する機能を有する。例えば、検索結果返却手段115は、検索要求者がアクセス権を有する文書を所定個数(例えば10件)だけ見つけた時点で、それらの文書を含む検索結果102を検索要求者に返却するようにしてよい。また、検索結果返却手段115は、アクセス権を有する可能性のより高いグループに属する全ての文書について第1のアクセス権チェック手段112による調査を終えた時点で、アクセス権を有する1以上の文書が発見されていれば、それらの文書を含む検索結果102を検索要求者に返却するようにしてよい。
【0020】
次に本実施形態の動作を説明する。
【0021】
図示しない端末あるいは入力装置を通じて検索要求者から検索条件を指定した検索要求101が入力されると(図2のS11)、検索装置100の文書検索手段111は、図示しない検索インデックスを検索することにより、検索条件に合致する文書を検索する(S12)。このときランキング機能を有する検索装置100では、検索された文書にスコアが付与される。
【0022】
次に、検索結果分類手段114は、例えばスコアの良い文書から順に、その文書について検索要求者がアクセス権を有するか否かを第2のアクセス権チェック手段113を用いてチェックし、そのチェック結果に基づいて、検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する(S13)。
【0023】
次に、検索結果返却手段115は、アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について検索要求者がアクセス権を有するか否かを第1のアクセス権チェック手段112を用いてチェックし、例えば、検索要求者がアクセス権を有すると判定された文書が所定個数見つかった時点で、それらの文書を含む検索結果102を途中結果として検索要求者へ出力する(S14)。その後の処理は任意であり、例えば、残りの検索結果の取得が検索要求者から要求された場合、検索結果返却手段115は、残りの検索結果のうち検索要求者がアクセス権を有する文書を含む検索結果を検索要求者に返却する。
【0024】
このように本実施形態によれば、アクセス権を有する可能性のより高い文書から順にアクセス権の有無を確認していくため、最初の途中結果を返すまでに調査しなければならない文書数を削減でき、その結果として検索レスポンスを向上することが可能になる。
【0025】
[第2の実施形態]
[概要]
本実施形態では、各サーバに散在したアクセス権が設定されている企業内の文書を横断的に検索するシステムにおいて、検索結果の文書リストに対してアクセス権があるかどうかを確認する時、検索者の属性(所属部門、役職など)単位のキャッシュを活用して権限がありそうな文書から先に権限チェックを行うことによって、検索レスポンスの向上を実現しつつ、各文書のACLの即時反映も担保する。
【0026】
このために本実施形態では、検索結果の文書リストを、「権限のある可能性」を指標にグループに分けて、「権限のある可能性」の高いグループから先に権限チェックを行う。そして「権限のある可能性」が高いグループの文書リストの権限チェック結果から先に返却して画面に表示することで、体感的な検索レスポンスの向上を図る。また「権限のある可能性」が低い文書リストの権限チェック結果は、バックグラウンドで実行して逐次返却して、画面でその都度スコア順にソート更新することで、ランキングの精度を徐々に精錬していく。
【0027】
本実施形態における「権限のある可能性」については、検索者の属性(所属部署、役職など)単位のキャッシュで「文書ID+権限あり(○)」「文書ID+権限なし(×)」の組み合わせの情報をハッシュマップで保持し、属性毎のキャッシュを確認して権限が○になるにケースが多い文書ほど「権限のある可能性」が高いと判定する。なお、キャッシュ単位となる属性は、システム(組織)全体として予め手動で設定することができる項目であり、アクセス権が設定されていそうな単位で設定すると有効である。例えば、或る会社では役員、部長、係長、一般社員の単位で文書のアクセス権を設定しているケースが多い、という場合は、キャッシュ単位となる属性に「役職」を追加する。
【0028】
[構成]
図3を参照すると、本発明の第2の実施形態は、特定の企業の社員が会社で管理されている各種の文書を検索するための企業内検索システムであり、文書の検索要求を送信して検索結果を表示するクライアント1と、検索要求を受けて文書を検索する検索サーバ2と、文書やACLが格納された企業内の各種サーバ3とから構成される。
【0029】
クライアント1は、社員が使用する情報処理装置、例えば企業の社員それぞれに支給されたパーソナルコンピュータである。ここでは、クライアント1はAという社員が使用するものとする。図3には、1台のクライアント1だけが描かれているが、合計n人の社員が存在する場合、それぞれの社員に1対1に対応するn台のクライアントが存在する。
【0030】
クライアント1は、検索画面/結果表示部4、検索要求処理部5を備えている。また、クライアント1には、キーボードやマウスなどで構成される入力装置、液晶ディスプレイなどで構成される表示装置、メモリなどで構成される記憶装置(何れも図示せず)が接続されている。
【0031】
他方、検索サーバ2は、パーソナルコンピュータ等で構成され、クライアント要求受付/返却処理部6、文書検索部7、インデックス(検索インデックス)8、検索結果分割処理部9、ACLキャッシュ10、ACLチェック部11、情報収集部12を含む。ここで、ACLキャッシュ10および検索結果分割処理部9は、図1の第2のアクセス権チェック手段113および検索結果分類手段114に相当する。また、ACLチェック部11およびクライアント要求受付/返却処理部6は、図1の第1のアクセス権チェック手段112および検索結果返却手段115に相当する。
【0032】
これらはそれぞれ概略つぎのように動作する。
【0033】
クライアント1は、検索画面/結果表示部4で表示された検索画面から社員Aが指定した検索キーワードを入力して、検索要求処理部5を介して、検索サーバ2へリクエストを送信する。なお、このリクエストには、社員Aの情報(例えば社員ID)が含まれていてもよい。その後、検索要求処理部5は、検索サーバ2からの検索結果である文書情報一覧が時間差で何回かに分けて返却されるので、その都度受信して検索画面/結果表示部4へ送信する。検索画面/結果表示部4は、検索要求処理部5からレスポンスである文書情報一覧を受信する度に、検索結果文書一覧を更新(スコア順に再ソート)して画面に表示する。
【0034】
検索サーバ2では、クライアント要求受付/返却処理部6が、クライアント1からの検索要求を受け付け、文書検索部7へ検索要求の情報を渡す。文書検索部7は、予め作成しておいた企業内の各種サーバ3上に散在している文書のインデックス8に対して検索を実行して、検索要求に合致する文書一覧を取得する。そして取得した文書一覧をACLチェック前の検索結果リストとして、検索結果分割処理部9に送信する。
【0035】
検索結果分割処理部9は、検索者Aの属性単位のACLキャッシュ10とACLチェック前の検索結果とを比較して、「権限のある可能性」を指標にACLチェック前の検索結果リストを何段階かのグループに分割する。このグループ分割処理の詳細については後述する。そして分割したグループの文書リストをACLチェック部11に送信する。
【0036】
ACLチェック部11は、「権限のある可能性」の高いグループの文書リストから順に、企業内の各種サーバ3に対してACLチェックを行い、権限のある文書のみを含む検索結果リストをクライアント要求受付/返却処理部6に送信する。この時、例えば検索結果リストが3つのグループに分割された場合、クライアント要求受付/返却処理部6に検索結果リストを3回送信することになる。またACLチェック部11は、同時にACLチェックの結果を検索者の属性単位でACLキャッシュ10に新規格納あるいは既に該当するACLチェック結果が格納されていれば今回のACLチェック結果で更新する。
【0037】
クライアント要求受付/返却処理部6は、ACLチェック部11からACLチェック済みの検索結果リストを受信する度にクライアント1に送信する。
【0038】
情報収集処理部12は、上記インデックス8を生成する処理として、検索とは別に予め企業内の各種サーバ3に対して格納されている文書の全文テキスト情報やメタ情報を取得してインデックス化しておく。なお、この処理は比較的時間がかかる重たい処理なので、毎日あるいは毎週単位で、夜間に1回など定期的に自動で行われているものとする。
【0039】
[動作]
次に、図3の構成を示すブロック図、図4の詳細処理フロー、図5のグループ分割例を参照しながら、本実施形態の動作について詳細に説明する。なお、以下では、文書検索部7で検索した文書リストをいかに早く権限チェックして権限がある文書のみ検索結果として画面に表示するかに焦点をあてて、該当箇所である検索結果分割処理部9、ACLキャッシュ10、ACLチェック部11の動作を中心に詳細を説明する。情報収集部12が各種サーバ3を探索(クロール)してインデックス8を作成する処理や、文書検索部7がインデックス8から文書を検索する処理については、既存技術であるため、その詳細は説明は省略する。同様に、検索要求処理部5とクライアント要求受付/返却処理部6の間で複数回に渡って検索結果が伝達され、その都度更新(スコア順に再ソート)して画面に反映する処理についても、セッション格納によるAjax通信やCookie伝達方式など技術的にいくつか実現可能であることは既に分かっており、こちらの処理についても詳細な説明は省略する。
【0040】
また、説明の前提として、検索結果分割処理部9に渡される検索結果リストの文書数(総検索ヒット数)をN、システム全体の設定として予め設定しておく属性(その組織内でアクセス権が設定されてる単位)の数をMとする。ACLキャッシュ10については、属性単位で「文書ID+権限○/×」のハッシュマップが存在するものとする。更に、検索サーバ2は、検索要求を処理する際には、その検索要求を出した検索要求者の属性を知っているものとする。検索サーバ2が検索要求者の属性を知る方法は任意である。例えば、検索要求に含まれる社員IDをキ―に、社員IDと社員の属性との対応関係を保持する社員テーブルを検索して属性を取得する方法があるが、その方法に限定されない。
【0041】
さて、図4を参照すると、検索結果分割処理部9は、検索結果のスコアの高い順に文書を1件1件、検索者の属性値に該当するキャッシュから権限があるかどうか確認する。次に、キャッシュで権限がある回数が多いほど「権限のある可能性」が高いグループに振り分ける。この処理を、最も「権限のある可能性」が高いグループの文書数が画面に表示したい検索結果数(表示数)に達するまで、もしくは総検索ヒット数N個の文書全て確認し終わるまで、繰り返す(S21〜S28)。そして最後に、検索結果分割処理部9は、分割した結果の各グループの文書リストをACLチェック部11に渡す。なお、最も「権限のある可能性」が高いグループの文書数が画面に表示したい検索結果数(表示数)に達した時点で、未だ権限の確認を行っていない残りの文書については、バックグラウンドで分類処理を続けるようにしても良いし、最も「権限のある可能性」が高いグループ以外の何れかのグループに強制的に分類するようにしてもよい。
【0042】
図5の例では、予め設定されている属性は「所属部署」「役職」の2つとしている。また検索者Aの属性値は、それぞれ「○△事業部」「主任」としている。このため、検索結果分割処理部9は、ACLキャッシュ10の中から、「所属部署」属性の「○△事業部」のACLキャッシュと、「役職」属性の「主任」のACLキャッシュとの2つのキャッシュを取得する。そして、「04856456456」、「49845645645」、…、というように検索結果のスコア順に文書の権限をキャッシュから確認して、「2つのキャッシュ両方で権限○」の第1グループ、「何れか一方のキャッシュで権限○、他方のキャッシュ無し」の第2グループ、「何れのキャッシュも無し、或いは一方のキャッシュで権限○だが他方のキャッシュで権限×」の第3グループ、「何れか一方のキャッシュで権限×、他方のキャッシュ無し」の第4グループ、「2つのキャッシュ両方で権限×」の第5グループの合計5つのグループに分類する。
【0043】
次に、ACLチェック部11は、「権限のある可能性」が最も高い第1グループから順に、グループに属する文書を1件1件実際に権限があるかどうかを各種サーバ3に問い合わせて確認する(S29)。各種サーバ3に問い合わせて権限を確認する処理は既存技術である。ACLチェック部11は、確認した結果、権限のない文書は検索結果リストから除き、権限のある文書を検索結果リストに格納する(S30)。またACLチェック部11は、確認した権限の内容が属性毎のACLキャッシュと異なっている場合、もしくは属性毎のACLキャッシュに存在しない場合は、属性毎のACLキャッシュを更新する(S30)。そして、当該グループに属する全ての文書に対して権限確認とキャッシュ更新を実施して完了したら、検索結果リストをクライアント要求受付/返却処理部6に渡す(S31)。この処理を全グループに対して実行したら処理を終了する(S32)。
【0044】
図5の例では、ACLチェック部11は、最も「権限のある可能性」が高い「2つのキャッシュ両方で権限○」の第1グループから順に、所属する文書の権限があるか確認して、最も「権限のある可能性」が低い「2つのキャッシュ両方で権限×」の第5グループまで繰り返す。またクライアント要求受付/返却処理部6に返却する検索結果リストは、各グループの所属する全文書の権限確認が完了したタイミングで、計5回に分けて返却する。
【0045】
その後は、本実施形態の冒頭に記載した通り、検索要求処理部5とクライアント要求受付/返却処理部6の間で複数回に渡って検索結果が伝達され、その都度スコア順に再ソートして画面に反映する処理が行われることになる。
【0046】
[効果]
本実施形態によれば、以下のような効果が得られる。
【0047】
(1)権限をリアルタイム(検索時)に確認する方式において、ACLキャッシュから全く変更がない場合は検索性能が向上し、ACLキャッシュから変更があった場合でもある程度正しい順位の検索結果が得られることと体感速度(検索を実行してから画面に検索結果が表示されるまでの時間)が向上する。その理由は、過去の権限確認結果を元に権限がありそうな文書から先に権限確認を行うことで、単純にスコア順に権限確認を行う方法よりも、権限確認の回数を減らすことができるためである。つまり、権限確認の処理時間がこれまでボトルネックになっていたが、それを改善することができる。
【0048】
(2)キャッシュを個人単位ではなく属性単位で保持して、さらに検索時には検索者の属性全てのキャッシュを確認することで、いずれかのキャッシュにヒットする確率(権限○となる確率)は高くなる。このため、個人単位のキャッシュを確認する場合よりも検索レスポンスが向上するケースが増える。
【0049】
(3)検索性能(体感速度)を向上させつつ、ACLが変更された場合でも検索結果に即時反映できる。その理由は、権限をリアルタイム(検索時)に確認しているためである。
【0050】
以下、本実施形態による効果を図6〜図8の具体例に基づいて説明する。なお、図6は特許文献2に記載されるようなスコア順に権限確認を行う方式、図7、図8が本実施形態による方式である。
【0051】
スコア順に権限確認を行う図6では、ACLチェック処理時間を1件あたり50ms(ネットワーク経由による外部通信が発生するため、場合によっては数倍〜数十倍近くかかる可能性もある)、検索者Aの権限のある文書が存在する割合を10%とすると、検索結果を10件表示するケースを想定した場合、ACLチェックが100回実施されることになる。このため、検索結果が表示されるまで50ms×100回=5000ms(5秒)かかることになる。検索レスポンスとして一般的にユーザが許容できる時間として3秒ルールというものがあり、その指標を超えてしまう。
【0052】
図7は、ACLキャッシュが最新のACLと変更がないケースである。分割されるグループとしては説明の便宜上「2つのキャッシュ両方で権限○」と「2つのキャッシュ両方で権限×」の2種類としている。またACLキャッシュを1件確認するのに1ms必要とする(ACLキャッシュはオンメモリのハッシュマップデータのため高速読み出しが可能)。その他の条件は図6と同じである。第1回目のレスポンスは「2つのキャッシュ両方で権限○」グループの検索結果文書のACLチェック後の文書リストであり、本ケースではACLキャッシュから変更がないケースのため、10件中10件が権限のある文書となる。また応答時間も50ms×10回+1ms×10回=600ms(0.6秒)となり、図6のケースと比較して全く同じ検索結果と順位が得られるのにかかわれず、検索速度が10倍近く向上していることがわかる。なお、第1回目レスポンス後の第2回目レスポンスである「2つのキャッシュ両方で権限×」グループの検索結果文書のACLチェック処理時間は600ms+50ms×90回=5100ms(約5秒)であるが、権限のある文書は0件であるため、検索結果画面での更新はない。その結果、第1回目レスポンスの結果がそのまま最終的な検索結果となり、3秒ルールもクリアすることができ、検索性能及び、体感(応答)速度についても大幅な向上を実現している。
【0053】
図8は、ACLキャッシュが最新のACLと比較して5件変更があったケース、具体的には、ACLキャッシュでは権限○だが最新のACLでは権限×となる文書が2件、ACLキャッシュでは権限×だが最新のACLでは権限○となる文書が3件あった場合であり、その他の条件は図7と同じである。第1回目レスポンス、第2回目レスポンスの処理時間は図7と変わらないが、第1回目レスポンスの結果が10件中8件となり、あと2件足りない状態で画面に表示される。また約5秒後の第2回目レスポンスで結果が3件追加になり、順位を再ソートして表示することで正しい検索結果が得られることになる。つまり、第1回目レスポンスで10件には満たないものの、途中までの検索結果文書を画面から確認することができ、応答速度が大幅に向上しているため体感速度は上がる。また2回目レスポンスの結果を画面に表示させることで、最終検索結果文書数と順位についても保証することが可能である。
【0054】
[第3の実施形態]
先の実施形態では検索結果リストをグループに分割した後、「権限のある可能性」のより高いグループ順にシーケンシャルに権限を確認している。これに対して本発明の第3の実施形態では、各グループの権限確認をマルチスレッド処理で並列に実施する。その場合、使用するCPUが並列処理に強いマルチコアである場合には、先の実施形態よりもさらに検索性能の向上が見込まれる。
【0055】
[第4の実施形態]
先の実施形態では、キャッシュ単位となる属性は予めシステム(組織)でアクセス権が設定されていそうな単位を手動で指定している。これに対して本発明の第4の実施形態では、このキャッシュ単位となる属性を設定しない。本実施形態では、キャッシュは検索者単位(社員IDなど)で保持され、分割されるグループも「キャッシュで権限○」の第1グループ、「キャッシュに存在しない」の第2グループ、「キャッシュで権限×」の第3グループの合計3つのグループになる。
【0056】
本実施形態では、先の実施形態と比べ、キャッシュ単位の粒度が個人となり小さくなるため、キャッシュにヒットするケースが少なくなる。このため、先の実施形態と比べて、検索性能の向上度合いは下がるが、その反面、予め手動でキャッシュ単位となる属性を設定する手間がなくなるというメリットがある。
【0057】
[第5の実施形態]
図9を参照すると、本発明の第5の実施形態は、図3に示した第2の実施形態と比較して、ACLチェック部11が確認するACLが各種サーバ3に存在せず、アクティブディレクトリ(Active Directory)サーバなどのような認証サーバ13上に一括で管理されている点が相違する。なお、ACLが各種サーバ3と認証サーバ13とに混在するケースにも、本発明は対応可能である。
【0058】
[第6の実施形態]
図10を参照すると、本発明の第6の実施形態は、図3に示した第2の実施形態と比較して、ACLキャッシュ10の代わりにACLインデックス10Aを備え、検索結果分割処理部9は、ACLインデックス10Aを参照して権限の有無を確認する点で相違する。また、情報収集部12は、事前に各サーバ3から文書のACLを収集してインデックス化し、ACLインデックス10Aを作成する機能を有する。
【0059】
本実施形態の利点は、ACLキャッシュと違い、最初の検索時(ACLキャッシュ方式でいうACLキャッシュが作成される前の時点)にもグループ分割が可能であるため、ACLキャッシュ方式でキャッシュがヒットしなかった場合より高速な検索レスポンスを安定して実現することができることである。その反面、情報収集部12でACLインデックス10Aを作成する分の処理時間が大きくなる点と、グループ分割の処理(図5の処理)がACLキャッシュ方式に比べて遅くなる点である。その理由は、ACLキャッシュ10はメモリ上のハッシュマップデータであるのに対して、ACLインデックス10Aは実ファイルデータのためにアクセスに時間を要するためである。
【0060】
以上、本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。例えば、上述した各実施の形態では、特定の企業の社員が自社の保有する文書を検索するための企業内検索システムに本発明を適用したが、特定の企業グループ、特定のサークル、特定の団体、特定の会など、特定の集団に属する個人がその集団で保有する文書を検索するための検索システムに本発明は適用可能である。また、本発明を構成する検索サーバやクライアントの各機能的手段は、ハードウェアで実現することができる以外に、コンピュータとプログラムとで実現することが可能である。
【符号の説明】
【0061】
1 クライアント
2 検索サーバ
3 サーバ
4 検索画面/結果表示部
5 検索要求処理部
6 クライアント要求受付/返却処理部
7 文書検索部
8 インデックス
9 検索結果分割処理部
10 ACLキャッシュ
10A ACLインデックス
11 ACLチェック部
12 情報収集部
13 認証サーバ
100 検索装置
101 検索要求
102 検索結果
111 文書検索手段
112 第1のアクセス権チェック手段
113 第2のアクセス権チェック手段
114 検索結果分類手段
115 検索結果返却手段

【特許請求の範囲】
【請求項1】
検索要求者から入力された検索要求に含まれる検索条件に合致する文書を検索する文書検索手段と、
アクセス権の有無をチェックする第1のアクセス権チェック手段と、
前記第1のアクセス権チェック手段に比べて信頼性は低いがより高速にアクセス権の有無をチェックすることができる第2のアクセス権チェック手段と、
前記検索された文書について前記検索要求者がアクセス権を有するか否かを前記第2のアクセス権チェック手段によって調査を行い、その調査結果に基づいて、前記検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する検索結果分類手段と、
アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について前記検索要求者がアクセス権を有するか否かを前記第1のアクセス権チェック手段によって調査を行い、前記検索要求者がアクセス権を有すると判定された文書を含む途中結果を前記検索要求者へ出力する検索結果返却手段と
を備えることを特徴とする検索装置。
【請求項2】
前記第2のアクセス権チェック手段は、前記第1のアクセス権チェック手段による過去の調査結果を保持するキャッシュを備え、該キャッシュに保持された調査結果に基づいてアクセス権のチェックを行う
ことを特徴とする請求項1に記載の検索装置。
【請求項3】
前記第2のアクセス権チェック手段は、前記第1のアクセス権チェック手段による過去の調査結果をアクセス権の設定が行われる属性単位で保持するキャッシュを備え、前記検索要求者の有する属性毎に、その属性に対応するキャッシュに保持された調査結果に基づいてアクセス権のチェックを行う
ことを特徴とする請求項1または2に記載の検索装置。
【請求項4】
前記検索結果分類手段は、前記検索要求者の属性毎のアクセス権のチェック結果に基づいて、全ての属性でアクセス権有りとなった文書を、アクセス権を有する可能性の最も高いグループに分類し、全ての属性でアクセス権無しとなった文書を、アクセス権を有する可能性の最も低いグループに分類し、それら以外の文書を中間の1以上のグループに分類する
ことを特徴とする請求項3に記載の検索装置。
【請求項5】
前記検索結果分類手段は、アクセス権を有する可能性の最も高いグループに属する文書の数が所定個数に達した時点で、未分類の残りの文書を、アクセス権を有する可能性の最も高いグループ以外の何れかのグループに強制的に分類する
ことを特徴とする請求項1乃至4の何れかに記載の検索装置。
【請求項6】
前記検索結果返却手段は、1つのグループに属する全ての文書について前記第1のアクセス権チェック手段による調査を終える毎に、途中結果を返却する
ことを特徴とする請求項1乃至5の何れかに記載の検索装置。
【請求項7】
前記第2のアクセス権限チェック手段は、事前に収集してインデックス化したALCインデックスに基づいてアクセス権のチェックを行う
ことを特徴とする請求項1に記載の検索装置。
【請求項8】
前記第1のアクセス権チェック手段は、前記文書の最新のALCと前記検索要求者の属性とに基づいて、アクセス権の有無をチェックする
ことを特徴とする請求項1乃至7の何れかに記載の検索装置。
【請求項9】
文書検索手段と、アクセス権の有無をチェックする第1のアクセス権チェック手段と、前記第1のアクセス権チェック手段に比べて信頼性は低いがより高速にアクセス権の有無をチェックすることができる第2のアクセス権チェック手段と、検索結果分類手段と、検索結果返却手段とを有する検索装置が実行する検索方法であって、
前記文書検索手段が、検索要求者から入力された検索要求に含まれる検索条件に合致する文書を検索し、
前記検索結果分類手段が、前記検索された文書について前記検索要求者がアクセス権を有するか否かを前記第2のアクセス権チェック手段によって調査を行い、その調査結果に基づいて、前記検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類し、
前記検索結果返却手段が、アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について前記検索要求者がアクセス権を有するか否かを前記第1のアクセス権チェック手段によって調査を行い、前記検索要求者がアクセス権を有すると判定された文書を含む途中結果を前記検索要求者へ出力する
ことを特徴とする検索方法。
【請求項10】
コンピュータを、
検索要求者から入力された検索要求に含まれる検索条件に合致する文書を検索する文書検索手段と、
アクセス権の有無をチェックする第1のアクセス権チェック手段と、
前記第1のアクセス権チェック手段に比べて信頼性は低いがより高速にアクセス権の有無をチェックすることができる第2のアクセス権チェック手段と、
前記検索された文書について前記検索要求者がアクセス権を有するか否かを前記第2のアクセス権チェック手段によって調査を行い、その調査結果に基づいて、前記検索された文書を、アクセス権を有する可能性の程度に応じて事前に決定されている複数のグループに分類する検索結果分類手段と、
アクセス権を有する可能性のより高いグループから順に、そのグループに属する文書について前記検索要求者がアクセス権を有するか否かを前記第1のアクセス権チェック手段によって調査を行い、前記検索要求者がアクセス権を有すると判定された文書を含む途中結果を前記検索要求者へ出力する検索結果返却手段と
して機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate