(57)【要約】【課題】アクセス権を考慮した高速の検索を行い、かつアクセス権変更があった場合も迅速に反映される検索方式を提案する。【解決手段】検索装置であって、文書と、各文書に対する１または複数のユーザからなる１以上のユーザグループのアクセス権に関するアクセス権情報とを格納する文書データベースと、文書データベースを検索するための検索索引を、文書のそれぞれと関連づけて登録する検索索引テーブルと、検索指示を受け付ける受付手段と、アクセス権情報に変更があるか否かを判定する判定手段と、検索索引テーブルを用い、判定手段における判定結果に基づいて文書を検索する検索手段とを備える。【選択図】  図１
2010160577.tif 000002
【特許請求の範囲】
【請求項１】
文書と、各文書に対する１または複数のユーザからなる１以上のユーザグループのアクセス権に関するアクセス権情報とを格納する文書データベースと、
前記文書データベースを検索するための検索索引を、前記文書のそれぞれと関連づけて登録する検索索引テーブルと、
検索指示を受け付ける受付手段と、
前記アクセス権情報に変更があるか否かを判定する判定手段と、
前記検索索引テーブルを用い、前記判定手段における判定結果に基づいて文書を検索する検索手段と
を備えることを特徴とする検索装置。
【請求項２】
前記検索索引テーブルは、前記１以上のユーザグループのそれぞれがアクセス可能な文書の情報を更に管理し、
前記検索手段は前記検索索引テーブルが管理する前記１以上のユーザグループのそれぞれがアクセス可能な文書の情報に基づき、検索指示を行うユーザがアクセス権を有する文書のみを検索結果に含め、
前記判定手段は、
前記アクセス権情報の変更があった場合に、変更前後のアクセス権情報の差分情報を生成する生成手段と、
前記差分情報に基づいて前記検索索引テーブルの前記１以上のユーザグループのそれぞれがアクセス可能な文書の情報を更新する更新手段と
を含むことを特徴とする請求項１に記載の検索装置。
【請求項３】
前記更新手段は、前記検索指示に基づいて前記検索手段が検索を実行しようとする場合に、当該検索指示を行ったユーザに関連する差分情報に基づいて前記検索索引テーブルの前記１以上のユーザグループのそれぞれがアクセス可能な文書の情報を更新し、
前記検索手段は、前記更新手段が更新した検索索引テーブルを用いて検索を実行することにより、前記検索指示を行ったユーザがアクセス権を有する文書のみを検索結果に含めるように検索を実行する
ことを特徴とする請求項２に記載の検索装置。
【請求項４】
前記検索手段は、前記検索指示に基づいて行った検索の結果に含まれる文書から、前記差分情報に基づき当該検索指示を行ったユーザがアクセス権を有しない文書を削除することにより、前記検索指示を行ったユーザがアクセス権を有する文書のみを検索結果に含めるように検索を実行する
ことを特徴とする請求項２に記載の検索装置。
【請求項５】
前記更新手段は、前記差分情報が生成された後、所定期間が経過した後に前記更新を行うことを特徴とする請求項２乃至４のいずれか１項に記載の検索装置。
【請求項６】
文書と、各文書に対する１または複数のユーザからなる１以上のユーザグループのアクセス権に関するアクセス権情報とを格納する文書データベースと、
前記文書データベースを検索するための検索索引を、前記文書のそれぞれと関連づけて登録する検索索引テーブルとを備える検索装置の制御方法であって、
検索指示を受け付ける受付工程と、
前記アクセス権情報に変更があるか否かを判定する判定工程と、
前記検索索引テーブルを用い、前記判定工程における判定結果に基づいて文書を検索する検索工程と
を備えることを特徴とする検索装置の制御方法。
【請求項７】
コンピュータを請求項１乃至５のいずれか１項に記載の検索装置として動作させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置及びその制御方法、並びにコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、記憶メディアの大容量化等に伴って保管する文書数が増大し、オフィス内文書の検索の需要が高まっている。
【０００３】
インターネット上の検索も近年重要度を増しつつあるが、そこでは広く一般に文書が公開されるのが常であり、厳格なアクセス権管理が考慮されることは通例ない。例えば、自分にとってアクセス権のない文書が見つかったとしても大きな問題にはならない。
【０００４】
これに対し、オフィス内文書の検索においては、アクセス権管理が厳格に適用され、アクセス権のない文書が検索結果に表示されるような事態、すなわち、アクセスが許可されない文書の存在が検知されることは絶対に避けなければならない。このため、オフィス内文書の検索においてはアクセス権を考慮した検索の実現が極めて重要である。
【０００５】
従来、アクセス権を考慮した検索の実現のために、様々な取り組みがなされてきた。例えば特許文献１においては、アクセス権ごとに検索インデックスを多数配置し、ユーザのアクセス権限に応じて参照するインデックスを変えることにより、アクセス権の無い文書が検索されることを防いでいる。
【０００６】
特許文献２においては、アクセス権の無い文書が検索結果に含まれないように、通常の（アクセス権を考慮しない）検索を行った後、検索結果の文書のアクセス権をチェックし、除去する技術を開示している。
【０００７】
特許文献３においては、アクセス権に関する情報を検索インデックスの中に構成し、高速でアクセス権判定ができる技術を提案している。
【特許文献１】特開２００４−１６４５５５号公報
【特許文献２】特開２００４−１１０６６４号公報
【特許文献３】特開２００１−３４４２４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このような過去の提案は、それぞれ一長一短であった。特許文献１の方式においては、アクセス権限の種類の数だけ異なるインデックスを用意しなければならず、複雑なアクセス権設定が事実上できず、単純なアクセス権のポリシーで運用を強いられるという問題がある。
【０００９】
特許文献２の方式においては、通常の検索の後で、アクセス権のチェックを１文書１文書行うことになり、多数の文書がヒットした場合はアクセス権処理がボトルネックになってしまい、検索速度が上がらないという欠点がある。
【００１０】
特許文献３の方式は、検索時間は短縮されるものの、アクセス権変更の際の処理時間が無視できなくなる。そもそも検索索引の作成は（検索そのものに比較すれば）、極めて時間のかかる処理であり、そのために、文書登録後であっても検索索引の作成までのタイムラグ（文書が登録されていても検索できない期間）を許容するシステムが多いのが現状である。通常の検索索引であれば、この事情もある程度許容できるが、アクセス権について同様に考えるわけにはいかない。なぜならアクセス権を取り消す場合はアクセスしてもらっては困る場合に行うのであり、しばらくの間であっても不正アクセスが許可されるのでは統制がとれないことになってしまう。以上のようにこれまでの提案では、どの方式にも欠点があり、決定打がないという状況であった。
【００１１】
本発明は、上記の事情に基づき、アクセス権を考慮した高速の検索を行い、かつアクセス権変更があった場合も迅速に反映される検索方式を提案しようというものである。
【課題を解決するための手段】
【００１２】
上記目的を達成するための本発明は検索装置であって、
文書と、各文書に対する１または複数のユーザからなる１以上のユーザグループのアクセス権に関するアクセス権情報とを格納する文書データベースと、
前記文書データベースを検索するための検索索引を、前記文書のそれぞれと関連づけて登録する検索索引テーブルと、
検索指示を受け付ける受付手段と、
前記アクセス権情報に変更があるか否かを判定する判定手段と、
前記検索索引テーブルを用い、前記判定手段における判定結果に基づいて文書を検索する検索手段とを備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、アクセス権を考慮した高速の検索を行い、かつアクセス権変更があった場合も迅速に反映される検索方式を提案しようというものである。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しながら本発明に好適な実施形態を詳細に説明する。
【００１５】
＜第１の実施形態＞
図１は発明の実施形態に対応する検索装置の構成の一例を示すブロック図である。図示の検索装置１００の構成において、ＣＰＵ１０１はマイクロプロセッサであり、文書登録処理、アクセス権変更処理、検索処理、表示処理等のための演算、論理判断等を行い、バス１１５を介してバス１１５に接続された各構成要素を制御する。
【００１６】
バス１１５は、ＣＰＵ１０１の制御対象である各構成要素を指示するアドレス信号、コントロール信号を転送する。また、各構成要素間のデータ転送を行う。
【００１７】
入力装置１０２はボタン、タッチパネル等のユーザ・インタフェースである。当該入力装置１０２は、本実施形態に対応する検索処理の実行を指示する検索指示受付のための操作部としても機能する。表示装置１０３は、画面表示を行うための表示装置であって、例えば液晶ディスプレイ、ＣＲＴ等が含まれる。通信装置１０４は、通信回線を介して外部とのデータ交換を行うための通信装置である。
【００１８】
ＲＯＭ１０５は読出専用の不揮発性メモリである。ＣＰＵ１０１により実行されるブートプログラム、制御プログラム１０６及び各種処理で使用する初期データ１０７等を記憶する。ブートプログラムはシステム起動時に初期データ１０７をＲＡＭ１０８にロードし、ＣＰＵ１０１に制御プログラム１０６を実行させる。制御プログラム１０６を利用した処理については、後にフローチャートを参照して詳述する。
【００１９】
ＲＡＭ１０８は読み書き可能なランダムアクセスメモリであって、各構成要素からの各種データの一次記憶に用いる。ＨＤ１０９上に存在するデータを高速化のために一時記憶するバッファ等の各種データが格納される。
【００２０】
ＨＤ１０９はハードディスクであり、ＣＰＵ１０１により実行される各種処理プログラム、恒久的に保管管理すべきデータ等が格納される。必要に応じてＲＡＭ１０８に示す主記憶にロードされ参照される。なお、ＨＤ１０９上のデータは高速化のためにＲＡＭ１０８上のバッファメモリに一時記憶され制御される。本実施形態では、ＨＤ１０９には文書データベース１１０、フォルダ構造情報１１１、ユーザ構造情報１１２、検索索引テーブル１１３、アクセス権変更差分情報１１４等が格納される。なお、文書データベース１１０、フォルダ構造情報１１１、ユーザ構造情報１１２、検索索引テーブル１１３、アクセス権変更差分情報１１４は、それぞれ独立した記憶装置に格納されていても良い。その場合に各記憶装置は、検索装置１００とネットワークを介して接続されていても良い。
【００２１】
かかる各構成要素からなる検索装置１００において、入力装置等からの各種イベントに応じて作動するものである。入力装置等からのインタラプトが供給されると信号がＣＰＵ１０１に送られ、それに伴ってイベントが発生し、イベントに応じてＣＰＵ１０１がＲＯＭ１０５またはＲＡＭ１０８内に記憶される各種命令を読み出し、その実行によって各種の制御が行われる。
【００２２】
図２は、発明の実施形態に対応する検索結果の表示例を示した図である。図２（ａ）は、ユーザ１の検索画面２００を示している。検索画面２００において、検索者２０１の欄には、検索を指示する検索者がユーザ１であることが示されている。本実施形態においてユーザ１は人事関係の業務を担当し、それに見合った文書アクセス権が付与されているものと仮定する。クエリ２０２は検索クエリ（検索キーワード或いは検索索引）を示し、図２（ａ）では「評価」という単語が指定された場合を示している。検索結果２０３は、「評価」を検索クエリとして文書データベース１１０内の文書の全文検索を行った結果を示している。検索結果２０３には、「評価」を語を本文のどこかに含み、ユーザ１のアクセス可能な文書が表示される。ユーザ１は人事関係の権限を持っているので、人事関係の文書が検索結果として表示される。
【００２３】
図２（ｂ）は、検索者がユーザ２の場合の検索画面２１０を示している。検索画面２１０において、検索者２０１の欄には、検索を指示する検索者がユーザ２であることが示されている。ここで、ユーザ２の職務は人事ではなく、品質管理関係だと仮定する。検索クエリ２０２は図２（ａ）の場合と同じく「評価」であるが、検索結果２０３は図２（ａ）の場合とは異なり、人事関係の文書は一切表示されず、品質評価関係の文書だけが検索結果として表示されている。
【００２４】
このように本実施形態では、検索指示を行うユーザがアクセス権を有する文書のみが検索結果に含まれることなる。
【００２５】
次に図３を参照して、本実施形態に対応する文書のアクセス権の設定方法について説明する。図３は、発明の実施形態に対応する文書のアクセス権の設定方法を説明するための図である。
【００２６】
本実施形態において、文書は階層的なフォルダ構造で管理される。フォルダ３０１は内部に文書または（サブ）フォルダが格納される。文書３０２は、フォルダ３０１内に格納される。図３（ａ）では、フォルダ３０１として、フォルダ１、フォルダ２及びフォルダ３が記載され、フォルダ２及びフォルダ３は、フォルダ１のサブフォルダとなっている。文書３０２には、文書１、文書２、文書３、文書４、文書５、文書６及び文書７がある。このうち、文書１乃至文書３はフォルダ２内に格納され、文書４及び文書５はフォルダ３内に格納され、文書６及び文書７はフォルダ１内に格納されている。
【００２７】
本実施形態では、フォルダ３０１及び文書３０２にはそれぞれアクセス権が設定される。アクセス権の許可／不許可の対象は、ユーザ単体、または、ユーザをまとめたユーザグループとなる。以下では、ユーザグループを単にグループとして省略して呼ぶことがある。ユーザまたはユーザグループは、図３（ｂ）に示すように階層化された構造で管理される。ユーザグループ３０３には、単体のユーザ３０４または（サブ）ユーザグループが属する。各ユーザ３０４は、ユーザグループ３０３に属する。図３（ｂ）では、ユーザグループ３０３として、グループ１、グループ２及びグループ３が記載され、グループ２及びグループ３は、グループ１のサブグループとなっている。ユーザ３０４には、ユーザ１、ユーザ２、ユーザ３、ユーザ４、ユーザ５、ユーザ６及びユーザ７がある。このうち、ユーザ１乃至ユーザ３はユーザグループ２に属し、ユーザ４及びユーザ５はユーザグループ３に属し、ユーザ６及びユーザ７はユーザグループ１に属する。なお、グループが存在する場合、グループ数は１以上であれば良く、また、１つのグループに含まれるユーザ数が１人であってもよい。
【００２８】
次に、各フォルダ３０１や文書３０２に付与されるアクセス権について説明する。アクセス権３０５、３０６及び３０７は、フォルダ１、フォルダ２及び文書１のそれぞれに付与されたアクセス権を示す。
【００２９】
アクセス権３０５は、フォルダ１にアクセス可能なユーザ３０４が「ユーザ１」であり、ユーザグループ３０３が「グループ３」であることを示している。アクセス権３０６は、フォルダ２にアクセス可能なユーザ３０４やユーザグループ３０３を規定しているが、ここには何も記載されていないので、フォルダ２単独としてのアクセス権者はいないことになる。但し、本実施形態では、上位フォルダに対するアクセス権が下位フォルダに承継されるので、フォルダ２はフォルダ１のアクセス権が継承され、結局フォルダ１と同じアクセス権をもつことになる。
【００３０】
アクセス権３０７は、文書１にアクセス可能なユーザ３０４が「ユーザ３」であり、ユーザグループが「グループ３」であることを示している。ここで文書１はフォルダ１の下位に属しているので、フォルダ１のアクセス権も合わせてもっている。結局、文書１のアクセス権者は、アクセス権３０５及び３０６の両方のアクセス権者を合わせてユーザ１、３、４、５、６となる。
【００３１】
次に、図４を参照して本実施形態に対応する文書データベース１１０の構成を説明する。図４は、発明の実施形態に対応する文書データベース１１０の構成の一例を示す図である。
【００３２】
文書データベース１１０において、文書ＩＤフィールド４０１は、文書データベース１１０に登録されている文書を一意に識別するための文書識別子（文書ID）が格納される。文書データベース１１０では、文書情報のみならずフォルダ情報も同様に管理され、フォルダを一意に識別するためのフォルダ識別子（フォルダID）も格納される。
【００３３】
アクセス権情報フィールド４０２は、対応する文書やフォルダにアクセスできるユーザ、ユーザグループが誰であるかを記述している。本実施形態ではユーザ及びユーザグループに対して各１ビット割り当てる。図４の下方に示すようにアクセス可能なユーザ或いはユーザグループであれば１、アクセス不可であれば０を格納する。
【００３４】
メタデータ情報フィールド４０３は、対応する文書またはフォルダに関するメタデータが格納される。本実施形態におけるメタデータには、例えば、作成者、作成日、更新日、タイトル、キーワード、組織、関連製品、開発段階等が含まれる。リンクフィールド４０４は、対応する文書内容へのリンクであり、リンク先に該当文書の文書内容が格納される。フォルダの場合はリンクはない。
【００３５】
次に、図５を参照して本実施形態に対応するフォルダ構造情報１１１について説明する。図５は、発明の実施形態に対応するフォルダ構造情報１１１の一例を示した図である。
【００３６】
フォルダ構造情報１１１において、フォルダＩＤ５０１には、文書データベース１１０内に存在する各フォルダの識別子が格納される。下位文書ＩＤ／下位フォルダＩＤ５０２には、対応するフォルダに属する文書及びフォルダ（サブフォルダ）の識別子が格納される。なお、下位文書ＩＤ／下位フォルダＩＤ５０２に格納される情報は１階層分である。例えば、フォルダ１についてはフォルダ３が格納されるが、フォルダ３に属する文書４及び文書５はフォルダ１との関係では管理されない。
【００３７】
次に、図６を参照して本実施形態に対応するユーザ構造情報１１２について説明する。図６は、発明の実施形態に対応するユーザ構造情報１１２の一例を示した図である。
【００３８】
ユーザ構造情報１１２において、グループＩＤ６０１には、ユーザグループの識別子が格納される。また、下位ユーザ／下位グループＩＤ６０２には、対応するユーザグループに属するユーザまたはユーザグループの識別子が格納される。なお、下位ユーザＩＤ／下位グループＩＤ６０２に格納される情報は１階層分である。例えば、グループ１にはグループ３が格納されるが、グループ３に属するユーザ４乃至ユーザ６はグループ１との関係では管理されない。
【００３９】
次に、図７を参照して本実施形態に対応する検索索引テーブル１１３について説明する。図７は発明の実施形態に対応する検索索引テーブル１１３の一例を示した図である。
【００４０】
検索索引テーブル１１３において、キーワード／ユーザ／グループ７０１は、検索キーワード、ユーザ及びユーザグループのいずれかを格納する。文書ＩＤ７０２には、キーワード／ユーザ／グループ７０１に登録された内容に関連する文書の識別子が登録される。即ち、キーワード場合には、当該キーワードを含む文書が登録される。例えばキーワードとして"XYZ"が含まれる文書には、文書１、文書２、文書４がある。また、ユーザやユーザグループの場合には、当該ユーザやグループがアクセス可能な文書が登録される。例えば、ユーザ１の場合、アクセス可能な文書には文書１、文書２、文書３がある。同様に、ユーザグループ１の場合、アクセスできる文書には文書９がある。
【００４１】
検索索引テーブル１１３を用いることで、複数のキーワードやユーザ、ユーザグループの条件を組み合わせて、文書を絞り込むことができる。例えば、"XYZ"と"EFG"が両方含まれる文書は、 (XYZの行)AND(EFGの行) で容易に求められる。"XYZ"を含み、ユーザ１がアクセスできる文書は、ユーザ構造情報からユーザ１はグループ１とグループ２に属しているので、 (XYZの行)AND((ユーザ１の行)OR(グループ１の行)OR(グループ２)) で求められる。あるユーザが検索を指示したときに、これらの検索式が生成され、検索結果がリストアップされる。
【００４２】
この検索索引テーブル１１３は、内容的には文書データベース１１０のアクセス権情報フィールド４０２のコピーであるが、フォルダの記載はなく、各フォルダは具体的な文書のリストに展開されている。また、行と列の関係が転置している。このため、検索索引テーブル１１３を作成するのは一般的にはかなりの時間がかかり、即時に反映することは不可能に近い。
【００４３】
そこで、本実施形態では図８を参照して説明するようなアクセス権変更差分情報１１４を用いて、アクセス権の変更に即時に対応することを可能とする。図８は、発明の実施形態に対応するアクセス権変更差分情報１１４の一例を示した図である。図７で示した検索索引テーブル１１３を文書データベース１１０から反映して即時に作ることは困難である。そこで、文書あるいはフォルダのアクセス権が変更された場合に、変更が検索索引テーブル１１３に反映されるまでの間、このアクセス権変更差分情報１１４を作成しておく。この情報は文書データベース１１０に対して行と列の関係が一致しているので、わずかの処理負荷で作成可能である。
【００４４】
ＩＤ８０１には、文書ＩＤあるいはフォルダＩＤが格納される。追加リスト８０２には、アクセス権変更の結果、アクセス許可が追加されたユーザあるいはユーザグループがリストアップされる。削除リスト８０３には、アクセス権変更の結果、アクセス許可が抹消されたユーザあるいはユーザグループがリストアップされる。このアクセス権変更差分情報１１４は、ユーザを指定した検索には不向きである。なぜなら、ユーザ情報から文書を検索するには、全ての行をスキャンして該当する文書を抽出する必要がある。しかし、容易に作成できるという特徴がある。
【００４５】
次に、発明の実施形態に対応する検索装置１００における処理を説明する。図９は、発明の実施形態に対応する検索装置１００の全体動作の一例を示すフローチャートである。当該処理は、ＣＰＵ１０１がＲＯＭ１０５の制御プログラム１０６やＨＤ１０９に格納された対応する処理プログラムを実行することで実現される。
【００４６】
まず、ステップＳ９０１において、システムの初期化処理が実行され、各種パラメータの初期化や初期画面の表示等が行われる。続くステップＳ９０２では、マウスクリック、ボタンタッチ等の入力装置１０２から何らかのイベントが発生するのを待機する。タイマー割込もイベントの一種である。
【００４７】
イベントが発生すると、ステップＳ９０３においてイベントの種類を判別し、イベントの種類に応じて各種の処理に分岐する。各種イベントに対応した分岐先の複数の処理をステップＳ９０４という形でまとめて表現している。ここで行われる処理には、図１０で詳述する文書登録処理、図１１で詳述するアクセス権変更処理、図１２で詳述するアクセス権反映処理、図１３、図１４で詳述する検索処理が含まれる。他の処理としては、詳細は記述されないが、メニュー変更処理、文書編集処理などの処理がある。
【００４８】
続くステップＳ９０５では、上記の各処理の処理結果や処理終了を通知し、画面を各処理の指示に従って表示する。エラーがあった場合のエラー表示、正常な処理が行われた場合に設定されている表示データの画面表示への反映など通常広く行われる処理である。また、例えば、後述する図１３や図１４で検索処理が行われた場合には検索結果の表示を行う。
【００４９】
次に、図１０を参照して図９のステップＳ９０４の各種イベント対応処理の一例として、文書登録処理を説明する。図１０は、発明の実施形態に対応する文書登録処理の一例を示すフローチャートである。
【００５０】
図１０において、ステップＳ１００１では指定された文書を文書データベース１１０に登録する。ステップＳ１００２では新規文書のアクセス権をアクセス権変更差分情報１１４に登録する。このとき、ＩＤ８０１には新規文書の文書ＩＤが追加され、追加リスト８０２に当該新規文書に対するアクセス権を有するユーザ、ユーザグループが追加される。新規登録の場合は、削除リスト８０３はブランクのままである。
【００５１】
続くステップＳ１００３において、アクセス権反映処理の起動タイマーをセットする。これにより、所定時間ごとにアクセス権反映処理がタイマー起動され、アクセス権変更差分情報１１４の内容が検索索引テーブル１１３に反映される。これにより、起動タイマーで設定された所定期間が経過すると、図１２に示すようなアクセス権反映処理が実行される。
【００５２】
次に、図１１を参照して図９のステップＳ９０４の各種イベント対応処理の一例として、アクセス権変更処理を説明する。図１１は、発明の実施形態に対応するアクセス権変更処理の一例を示すフローチャートである。
【００５３】
図１１において、ステップＳ１１０１では、アクセス権変更の操作を受け付け、変更内容を取得する。具体的には、文書やフォルダに対するアクセス権情報フィールド４０２が変更された場合に、変更前後のアクセス権情報フィールド４０２を取得する。
【００５４】
ステップＳ１１０２では、変更前後のアクセス権情報フィールド４０２から各文書、フォルダについてアクセス権に変更があったユーザあるいはユーザグループの差分を抽出する。続くステップＳ１１０３では、抽出されたユーザやユーザグループの情報をアクセス権変更差分情報１１４に登録する。ステップＳ１１０４においてアクセス権反映処理の起動タイマーをセットする。これにより、起動タイマーで設定された所定期間が経過すると、図１２に示すようなアクセス権反映処理が実行される。
【００５５】
次に、図１２を参照して図９のステップＳ９０４の各種イベント対応処理の一例として、アクセス権反映処理を説明する。図１２は、発明の実施形態に対応するアクセス権反映処理の一例を示すフローチャートである。アクセス権反映処理はユーザあるいはユーザグループの指定があれば受け取る。
【００５６】
図１２において、ステップＳ１２０１では、ユーザあるいはユーザグループの指定があるかどうか判定する。ユーザあるいはユーザグループの指定がない場合はステップＳ１２０３に進み、指定があるときはステップＳ１２０２に進む。ステップＳ１２０２では、アクセス権変更差分情報１１４から差分のあるユーザまたはユーザグループを１つ取り出しステップＳ１２０３に進む。
【００５７】
ステップＳ１２０３では、アクセス権変更差分情報１１４を参照して、指定されたユーザあるいはユーザグループについて、差分のある文書あるいはフォルダを取得する。図８のユーザ１の例について言えば、文書１（追加）、文書３（削除）、フォルダ３（追加）が該当する。
【００５８】
つづくステップＳ１２０４ではフォルダ構造情報１１１を参照してフォルダを文書に展開して変更可能性がある文書のリストを作成する。例えば、図５の例に従うとフォルダ３は文書４、文書５に展開され、先の文書１、文書３と合わせて、｛文書１、文書３、文書４、文書５｝というリストが作成される。
【００５９】
ステップＳ１２０５において、リストアップされた各文書について指定されたユーザあるいはユーザグループのアクセス権情報フィールド４０２を文書データベース１１０から抽出する。ステップＳ１２０６において、抽出された情報を検索索引テーブル１１３の指定ユーザあるいはユーザグループの情報として反映する。ステップＳ１２０７において、アクセス権変更差分情報１１４から指定ユーザあるいはユーザグループの情報を削除して本処理を終了する。
【００６０】
次に、図１３を参照して図９のステップＳ９０４の各種イベント対応処理の一例として、検索処理を説明する。図１３は、発明の実施形態に対応する検索処理の一例を示すフローチャートである。検索処理はユーザが実際に検索を起動した場合の処理である。
【００６１】
図１３においてステップＳ１３０１では、検索式及び検索指示を行ったユーザのユーザ情報を取得する。ユーザ情報は例えばユーザＩＤである。ステップＳ１３０２において、該ユーザの属するユーザグループを網羅して列挙する。ステップＳ１３０３において列挙されたユーザまたはユーザグループについてアクセス権変更差分情報１１４があるかどうか判定する。
【００６２】
判定結果においてアクセス権変更差分情報１１４がなければ（ステップＳ１３０３において「ＮＯ」）、ステップＳ１３０５に進むが、もしあれば（ステップＳ１３０３において「ＹＥＳ」）、ステップＳ１３０４に進む。ステップＳ１３０４では、列挙されたユーザまたはユーザグループを指定して図１２において詳述したアクセス権反映処理を実行する。即ち、本実施形態では、アクセス権変更差分情報１１４に登録されている情報のうち、検索を行うユーザに関連する情報のみを検索索引テーブル１１３に反映させる点に特徴がある。これにより、検索実行時における検索索引テーブル１１３の更新処理の負荷を最小限としつつ、検索処理の遅延を回避することができる。なお、検索処理時に反映されなかったアクセス権変更差分情報１１４はタイマーで設定された時間になれば自動的に検索索引テーブル１１３に反映される。
【００６３】
続くステップステップＳ１３０５では、指定ユーザ、ユーザグループ（複数あれば複数個）のORに、指定された検索式をAND条件で追加した検索式を生成する。すなわち、生成される検索式は次のようになる。
（検索式）＝（指定検索式）AND（（ユーザ）OR（属するユーザグループ）OR・・・）  ステップＳ１３０６では、生成された検索式に基づく検索を実行する。その後図９のステップＳ９０５で検索結果を表示する。検索結果の表示例は、図２に示したとおりである。
【００６４】
以上のように、本発明によればアクセス権情報が検索索引化されているので、アクセス権判定が高速化でき、アクセス権を考慮した高速文書検索を実現できる。また、アクセス権変更の際は差分情報が迅速に作成できるので高速に処理可能である。これにより、セキュリティが重要なオフィス内において操作性の高いアクセス権付き高速検索システムを実現することができる。
【００６５】
＜第２の実施形態＞
なお、本発明は上述の実施形態に限定されるのではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更が可能である。上記の第１の実施形態では、検索前に使う分だけの検索索引テーブル１１３を修正しておくことにより検索結果を補正する方法を示した。検索作成を変更せずに、検索結果の追加・削除で補正する方法もある。この場合、検索処理を図１４のフローチャートに従って実行することができる。図１４は、発明の第２の実施形態に対応する検索処理の一例を示すフローチャートである。
【００６６】
以下、図１４を参照して図９のステップＳ９０４の各種イベント対応処理の一例として、発明の第２の実施形態に対応する検索処理を説明する。図１４は、発明の第２の実施形態に対応する検索処理の一例を示すフローチャートである。
【００６７】
図１４のステップＳ１４０１において、検索式及び検索を指示したユーザ情報を取得する。ユーザ情報は例えばユーザＩＤである。ステップＳ１４０２において、該ユーザの属するユーザグループをリストアップする。ステップＳ１４０３において、検索式による検索を実行し、検索結果を取得する。ステップＳ１４０４において、列挙されたユーザまたはユーザグループについてアクセス権変更差分情報１１４があるかどうか判定する。判定結果において、もしアクセス権変更差分情報１１４がなければ（ステップＳ１４０４で「ＮＯ」）、検索処理をそのまま終了する。もしアクセス権変更差分情報１１４があれば（ステップＳ１４０４で「ＹＥＳ」）、ステップＳ１４０５に進み、検索結果補正処理を実行して検索処理を終える。その後図９のステップＳ９０５で検索結果を表示する。検索結果の表示例は、図２に示したとおりである。
【００６８】
ここで図１５を参照して、図１４のステップＳ１４０５における検索結果補正処理を説明する。図１５は、発明の第２の実施形態に対応する検索結果補正処理の一例を示すフローチャートである。
【００６９】
図１５のステップＳ１５０１において、ユーザ、ユーザの属するユーザグループなどのユーザ情報を取得する。ステップＳ１５０２において、アクセス権変更差分情報１１４の追加リスト８０２を参照し、ユーザ情報に関係する文書を抽出し、検索結果に追加すべき文書の候補（追加文書）としてリストアップする。ステップＳ１５０３において、先の追加文書が検索式の条件を充たすかどうかチェックし、条件を充たすもののみに絞り込む。
【００７０】
ステップＳ１５０４において、絞り込まれた追加文書を実際に検索結果に追加する。ステップＳ１５０５において、アクセス権変更差分情報１１４の削除リスト８０３を参照し、ユーザ情報に関係する文書を抽出し、検索結果から削除すべき文書の候補（削除文書）としてリストアップする。
【００７１】
ステップＳ１５０６において、先の削除文書のリストを、文書データベース１１０のアクセス権情報フィールド４０２をチェックすることにより、該当ユーザ情報のアクセス権がないもののみに絞り込む。ステップＳ１５０７において、絞り込まれた削除文書を実際に検索結果から削除する。
【００７２】
上記以外にも、本発明の趣旨を逸脱しない限りにおいて、構成を適宜変更することが可能である。
【００７３】
以上のように、本実施形態によれば、検索結果から差分情報の削除リストに基づいて検索実行ユーザがアクセス権を有しない文書を除外することができる。これにより、アクセス権の変更が検索索引テーブル１１３に反映されるまでの間の検索も、アクセス権の変更を考慮して検索結果を補正できるので、リアルタイムに正しい検索結果が得られる。
【００７４】
［その他の実施形態］
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００７５】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【００７６】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【図面の簡単な説明】
【００７７】
【図１】発明の実施形態に対応する検索装置の構成の一例を示すブロック図である。
【図２】発明の実施形態に対応する検索結果の表示例を示した図である。
【図３】発明の実施形態に対応する文書のアクセス権の設定方法を説明するための図である。
【図４】発明の実施形態に対応する文書データベースの構成の一例を示す図である。
【図５】発明の実施形態に対応するフォルダ構造情報の一例を示した図である。
【図６】発明の実施形態に対応するユーザ構造情報の一例を示した図である。
【図７】発明の実施形態に対応する検索索引テーブルの一例を示した図である。
【図８】発明の実施形態に対応するアクセス権変更差分情報の一例を示した図である。
【図９】発明の実施形態に対応する検索装置１００の全体動作の一例を示すフローチャートである。
【図１０】発明の実施形態に対応する文書登録処理の一例を示すフローチャートである。
【図１１】発明の実施形態に対応するアクセス権変更処理の一例を示すフローチャートである。
【図１２】発明の実施形態に対応するアクセス権反映処理の一例を示すフローチャートである。
【図１３】発明の第１の実施形態に対応する検索処理の一例を示すフローチャートである。
【図１４】発明の第２の実施形態に対応する検索処理の一例を示すフローチャートである。
【図１５】発明の第２の実施形態に対応する検索結果補正処理の一例を示すフローチャートである。
【図１】
2010160577.tif 000003
【図２】
2010160577.tif 000004
【図３】
2010160577.tif 000005
【図４】
2010160577.tif 000006
【図５】
2010160577.tif 000007
【図６】
2010160577.tif 000008
【図７】
2010160577.tif 000009
【図８】
2010160577.tif 000010
【図９】
2010160577.tif 000011
【図１０】
2010160577.tif 000012
【図１１】
2010160577.tif 000013
【図１２】
2010160577.tif 000014
【図１３】
2010160577.tif 000015
【図１４】
2010160577.tif 000016
【図１５】
2010160577.tif 000017