JP2001229060A - ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体 - Google Patents

ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体

Info

Publication number
JP2001229060A
JP2001229060A JP2000039682A JP2000039682A JP2001229060A JP 2001229060 A JP2001229060 A JP 2001229060A JP 2000039682 A JP2000039682 A JP 2000039682A JP 2000039682 A JP2000039682 A JP 2000039682A JP 2001229060 A JP2001229060 A JP 2001229060A
Authority
JP
Japan
Prior art keywords
entry
index
search
key
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000039682A
Other languages
English (en)
Other versions
JP3752945B2 (ja
Inventor
Yoshitaka Yasumura
義孝 安村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2000039682A priority Critical patent/JP3752945B2/ja
Publication of JP2001229060A publication Critical patent/JP2001229060A/ja
Application granted granted Critical
Publication of JP3752945B2 publication Critical patent/JP3752945B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 ディレクトリ検索システムのインデックスを
記憶する記憶容量を小さくし、インデックスの検索速度
を上げる。 【解決手段】 アトリビュートインデックス記憶部32
は、各エントリの複数のアトリビュートから構成される
マルチキーをキーとする2分探索木から構成されるマル
チキーインデックスを記憶する。マルチキーインデック
ス管理手段22はマルチキーインデックスを管理し、フ
ィルタ検索手段23は、フィルタ条件として複数のアト
リビュートが指定されていても、マルチキーインデック
ス管理手段22を介してマルチキーインデックスを1回
探索するだけでフィルタ条件を満たすエントリを検索す
ることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データベースなど
の検索を行うディレクトリ検索システムおよび方法、デ
ィレクトリ検索用プログラムを記録したコンピュータ読
み取り可能な記録媒体に関し、特に、ディレクトリサー
ビスにおいてエントリを検索するディレクトリ検索シス
テムおよび方法、インデックス用プログラムを記録した
コンピュータ読み取り可能な記録媒体に関する。
【0002】
【従来の技術】ディレクトリ検索システムは、ディレク
トリ階層上に管理されるデータのデータベースの検索を
高速に行うために用いられるシステムである。ディレク
トリ検索システムは、2分探索木やハッシュ表のような
仕組みを保持している。この仕組みをインデックスとい
う。インデックスは、データを特定するためのキーに基
づいて構成されている。ディレクトリ検索システムは、
検索条件として指定されたキーの値によってインデック
スを探索してデータを特定する。
【0003】特開昭60−254325号公報にはディ
レクトリ検索システムの一例が開示されている。その公
報に開示されているディレクトリ検索システムは、イン
デックスを主記憶装置上に保持している。このディレク
トリ検索システムは、データを特定するキーによってイ
ンデックスを検索してそのデータの位置情報を取得し、
2次記憶装置上の目的のデータにアクセスする。一般的
に、主記憶装置は2次記憶装置よりもはるかにアクセス
速度が速い。そのため、このようなディレクトリ検索シ
ステムを用いることによって、2次記憶装置(外部記憶
装置)上に大量のデータが格納されていても目的のデー
タに高速にアクセスすることができる。通常、このよう
なインデックスは1種類のキーに基づいて構成されてい
る。また、ディレクトリ検索システムでは1種類のキー
に対して複数のインデックスを検索しなければならない
場合もある。この場合、1種類のキーについて複数のイ
ンデックスを検索するため、検索に時間がかかってしま
うという問題があった。特開平3−70049号公報に
は、この問題を解決するディレクトリ検索システムが開
示されている。図15は、この公報で開示されたディレ
クトリ検索システムの構成を示すブロック図である。
【0004】このディレクトリ検索システムは、レコー
ド処理の開始を指示する処理開始指示装置1001とデ
ィレクトリ情報処理手段1002と併合インデックス作
成手段1005と併合インデックス読込手段1006と
作業ファイル1007とディレクトリファイル1009
とを備えている。
【0005】ディレクトリ情報処理手段1002は、併
合インデックス作成指示手段1003と併合インデック
ス読込指示手段1004とを備えている。ディレクトリ
ファイル1009は、データベースのデータの管理情報
を記憶するためのものである。ディレクトリファイル1
009は、データの管理情報の部分集合である幾つかの
サブファイルから成るサブファイル群1013と、利用
者インデックス1010と、グループ共有インデックス
1011と、システム共有インデックス1012とを備
えている。利用者インデックス1010は利用者毎に作
成されており、ディレクトリファイル内に多数記憶され
ている管理情報レコードのうち、その利用者のみが利用
できるデータの管理情報レコードを管理している。グル
ープ共有インデックス1011は複数の利用者から構成
されるグループ毎に作成されており、グループに属する
利用者のみが利用できるデータの管理情報レコードを管
理している。システム共有インデックス1012は1つ
だけ作成されており、全利用者が利用できるデータの管
理情報レコードを管理している。
【0006】このディレクトリ検索システムは以下のよ
うに動作する。まず、処理開始指示装置1001からデ
ィレクトリ情報処理手段1002に対し処理開始が要求
されると、併合インデックス作成指示手段1003は、
入力された処理指示者名に基づいて併合インデックス作
成手段1005に対し併合インデックスを作成するよう
に指示する。
【0007】すると、併合インデックス作成手段100
5は、ディレクトリファイル1009内の処理指示者の
利用者インデックス1010と処理指示者が属するグル
ープ共有インデックス1011とシステム共有インデッ
クス1012とを読み込み、これらを併合して作業ファ
イル1007上に併合インデックス1008を作成す
る。次に、併合インデックス読込指示手段1004は、
併合インデックス読込手段1006に対し併合インデッ
クス1008を読込むように指示する。併合インデック
ス読込手段1006は管理情報レコードを特定するキー
である管理情報レコード名を用いて併合インデックス1
008から該当する管理情報レコードの位置情報を読
み、それをディレクトリ情報処理手段1002へ渡す。
ディレクトリ情報処理手段1002は渡された管理情報
レコードの位置情報により目的の管理情報レコードをサ
ブファイルから読込む。
【0008】このディレクトリ検索システムでは、デー
タを探索するためのキーとなる管理情報レコード名から
目標とする管理情報レコードを読み込むのに、3つのイ
ンデックスを別々に探索しなければならなかったところ
を、3つのインデックスを併合し、併合されたインデッ
クスを1回探索するだけでインデックスレコードを求め
ることができるので、検索時間を短縮することができ
る。このように、ディレクトリ検索システムでは、イン
デックスを探索する時間を短縮することが1つの課題と
なっている。
【0009】また、ディレクトリ検索システムでは、デ
ータを検索するときに数種類のキーを用いる場合が多
い。この場合、従来のディレクトリ検索システムでは、
それぞれのキーに対応したインデックスを1つずつ探索
しなければならないため、データの検索時間が長くなっ
てしまうという問題があった。
【0010】数種類のキーから一度にデータを探索する
ことができる2分探索木がいくつか提案されている。こ
の2分探索木の1つにケイ−ディー・ツリー(以降 k
−dtree)がある。k−d treeは、アイ・イ
ー・イー・イー・トランザクションズ・オン・ソフトウ
ェア・エンジニアリング、第SE−5巻、第4号、33
3〜340頁(IEEE TRANSACTIONS
ON SOFTWARE ENGINEERING、V
OL.SE−5、NO.4、JULY 1979、Pa
ges 333−340.)に掲載されたマルチディメ
ンジョナル・バイナリ・サーチ・ツリーズ・イン・デー
タベース・アプリケーションズ(Multidimen
sional Binary Search Tree
s in Database Application
s)と題するジョン.L.ベントレー(John L.
Bentley)による論文に記載されている。
【0011】このk−d treeは、2分探索木の各
ノードに検索するデータのエントリが有する複数のキー
値を格納できるように拡張されたものである。k−d
treeでは、ツリーの格段毎に各キーが順番に分岐条
件として用いられる。例えば、キーがその人の名前、年
齢、電話番号であるとすると、第1段目では名前が分岐
条件として用いられ、第2段目では年齢が分岐条件とし
て用いられ、第3段目は電話番号が分岐条件として用い
られ、第4段目以降も名前、年齢、電話番号がこの順番
で分岐条件として用いられる。
【0012】図16は、k−d Treeの基本的な構
成を示す図である。このk−d treeは、ある会社
の社員を探索するためのツリーである。このツリーで
は、社員の名前と年齢とが、社員を検索するためのキー
となる。
【0013】図16に示すように、根(以降 ルート)
のノード101には、Sato氏(Sato、22)が
格納されている。Satoは名前を表し、22は年齢を
表す。このツリーの第1段目では、名前で枝が分岐す
る。ルートにおける名前の頭文字はSであるので、名前
の頭文字のアルファベットがA〜Rである人は左へ分岐
し、名前の頭文字のアルファベットがS〜Zである人は
右へ分岐する。したがって、Endo氏(Endo、2
8)は左へ分岐してノード102に格納され、Ueda
氏(Ueda、34)は右へ分岐してノード103に格
納される。ツリーの第2段目では年齢によって枝が分岐
する。年齢が分岐元のノードに格納されている年齢より
下の人は左に分岐し、年齢が分岐元のノードに格納され
ている年齢以上の人は右に分岐する。したがって、Ii
jima氏(Iijima、20)は左へ分岐してノー
ド104に格納され、Aoki氏(Aoki、32)は
右に分岐してノード105に格納される。第3段目で
は、第1段目と同様に名前のアルファベットで枝が分岐
する。したがって、Doi氏(Doi、22)は左へ分
岐してノード106に格納され、Kato氏(Kat
o、25)は右へ分岐してノード107に格納される。
そして、Nakai氏(Nakai、37)はノード1
05から右に分岐してノード108に格納される。
【0014】k−d treeでは、指定されていない
キーによって分岐されている段において枝の選択は行わ
れない。例えば、年齢が検索条件として指定されていな
い場合には、2段目ではノード104およびノード10
5の両方へ進むようにする。以上述べたように、k−d
treeでは、数種類のキーを用いて一度にデータの
検索が行えるので、検索時間を短縮することができる。
【0015】しかし、このようなk−d treeで
は、木のデータの分布が不均衡である場合に検索条件に
よって検索時間に偏りがあるという問題があった。k−
d Freeを改良して、木のデータ分布が不均衡な場
合でも検索時間が安定する2分探索木として、エッチ・
ビー・ツリー(以降 hB tree)がある。hBt
reeは、1990年12月、エー・シー・エム・トラ
ンザクションズ・オン・データベース・システムズ、第
15巻、第4号、624〜658頁(ACMTrans
actions on DatabaseSystem
s、Vol.15、No.4、 December 1
990、Pages 625−658.)に掲載された
ザ・エッチ・ビー・ツリー:マルチディメンジョナル・
インデックシング・メソッド・ウィズ・グッド・ギャラ
ンティード・パフォーマンス(The hB Tre
e: A Multiattribute Index
ing Method with Good Guar
anteed Performance)と題するデビ
ッド.B.ロメット(David B. Lomet)
らによる論文に記載されている。
【0016】k−d treeは、オブジェクト単位で
インデックスを管理しているが、hB treeは、複
数のオブジェクトを含む所定の範囲でインデックスを管
理している。この所定の範囲をブリックという。各ブリ
ックには、前述のk−d tree方式のインデックス
が格納されている。ブリック内におけるオブジェクトの
数が所定の値を越えた場合、そのブリックは分割され
る。分割されたブリック同士は2分探索木方式で接続さ
れ、その木におけるノードとなる。そのブリックにより
構成された2分探索木のリーフ部分には、各オブジェク
トの情報が格納される。このhB treeで目的のオ
ブジェクトを検索するときには、まず、検索条件を満た
すブリックが探索され、そのブリック内のk−d tr
eeを検索して目的のオブジェクトの情報が格納される
リーフが探索される。
【0017】図17は、図16のk−d treeで示
された社員の分布状態を示すマップである。このマップ
は、縦軸が年齢であり、横軸が名前となっている。図1
7に示すように、アルファベットSをx3とし、アルフ
ァベットIをx2とし、年齢28をy1とする。マップ
上のエリアは、年齢28以上かつ名前の頭文字がAの領
域301と、年齢28以上で名前の頭文字がB〜Rの領
域302と、年齢28以下で名前の頭文字がA〜Hの領
域303と、年齢28以下で名前の頭文字がI〜Rの領
域304と、名前の頭文字がS〜Zの領域305とに分
割されている。図18は、これらの社員の構成をhB
treeで表した図である。このhBtreeは、ノー
ド201〜203と、リーフ204〜208とから構成
されている。ノード201〜203は、それぞれhB
treeのブリックを表すものであり、それぞれをブリ
ックa、ブリックb、ブリックcとする。図18のhB
treeでは、図16におけるマップの各領域を元にブ
リックa、b、cを構成する。ブリックaは、マップ全
体を指すものであるとし、ブリックbは、領域301、
302、305を指すものであるとし、ブリックcは、
領域303、304を指すものであるとする。
【0018】領域303、304には、Iijima
氏、Doi氏、Kato氏が含まれている。この3氏
は、図16のk−d treeにおけるノード104以
下に格納されている。したがって、ブリックbには、図
16のk−d treeのノード104以下の部分がk
−d tree方式で管理されている。
【0019】また、領域301、302、305には、
Sato氏、Endo氏、Ueda氏、Aoki氏、N
akai氏が含まれている。この5人は、図16のk−
dtreeにおけるノード101、102、103、1
05、108に格納されている。したがって、ブリック
cには、それらのノード101、102、103、10
5、108から構成される部分がk−d tree方式
で管理されている。ブリックaは、ブリックbへ分岐す
るかブリックcへ分岐するかを決定するためのものであ
る。図16のk−d treeによれば、ブリックbへ
分岐するかブリックcへ分岐するかは、ノード101ま
たはノード102によって決定されるため、ブリックa
内のk−d treeは、ノード101とノード102
から構成され、そのk−d treeの葉には、選択す
べきブリック名が指定されている。
【0020】リーフ204〜リーフ208には、E、
D、C、B、Aのリーフ名がそれぞれに付与されてお
り、図17に示す領域301〜305に含まれる社員に
ついての情報が格納されている。リーフ204には領域
303に含まれるDoi氏(Doi、22)に関する情
報が格納され、リーフ204には領域304に含まれる
Iijima氏(Iijima、20)、Kato氏
(Kato、22)に関する情報が格納される。以下リ
ーフ207、208には領域302、305に含まれる
社員に関する情報が格納される。
【0021】また、ブリックb、cは前述のとおり、k
−d tree方式により構成されるが、そのツリーの
葉には、そのリーフ204〜208のうち選択すべきリ
ーフ名が指定されている。また、該当するオブジェクト
がない場合は、その葉は外部ノードであるとしてext
が指定される。各ブリックの各ノードにあるx1、x
2、x3、y1は、それぞれ図18に示すように、アル
ファベットのA、アルファベットのI、アルファベット
のS、年齢の28を示し、各ノードにおける分岐条件を
示す。
【0022】以上述べたように、データを検索する2分
探索木をhB treeとすることによって、複数のオ
ブジェクトを管理するブリックを2分探索木のノードと
して木の枝の状態を均一化することができるため、安定
した検索時間を得ることができる。なお、上述のような
複数のキーから構成されたマルチキーをキーとしてデー
タを特定するための2分探索木から構成されるインデッ
クスをマルチキーインデックスという。
【0023】一方、特開平10−289139号公報に
開示されているようなディレクトリサーバでは、各ファ
イルの媒体情報を一元管理して保存しておき、クライア
ントからの検索要求や更新要求があった場合、一元管理
してある媒体情報の検索や更新などを行う。この媒体情
報の管理などにも、上述のようなディレクトリ検索シス
テムが用いられている。
【0024】また、媒体情報の管理を始めとして、個人
情報管理やネットワーク管理などに利用される汎用のデ
ィレクトリサービスでは、組織や個人、コンピュータ、
プリンタなど、様々な資源が管理対象となる。ディレク
トリ検索システムは、それらの資源をエントリとして、
資源間の関係に基づいてディレクトリ階層を形成し、そ
れらのエントリの属性(以降 アトリビュート)をキー
としたインデックスを探索することによって、それらの
エントリを検索することができる仕組みを提供してい
る。
【0025】このようなディレクトリ検索システムの一
例が特願平11−43259号出願で示されている。こ
のディレクトリ検索システムは、エントリが有するアト
リビュートについての検索条件であるフィルタ条件とデ
ィレクトリ階層に基づいて設定される検索範囲であるス
コープ条件とを利用者が指定することによってエントリ
を検索するシステムである。
【0026】図19は、この出願で示されているディレ
クトリ検索システムの構成を示すブロック図である。こ
のディレクトリ検索システムは、入力装置1と、データ
処理装置8と、記憶装置9と、出力装置4とから構成さ
れる。入力装置1は、キーボード等の利用者からの要求
を入力するためのものである。データ処理装置8はプロ
グラム制御により動作し、記憶装置9が記憶する情報の
検索を行う。出力装置4はディスプレイ装置や印刷装置
等であり、データ処理装置8が行った処理の結果を出力
する。記憶装置9は、エントリ/アトリビュート記憶部
31と、複合インデックス記憶部35と、先祖関係記憶
部34とを備えている。
【0027】エントリ/アトリビュート記憶部31は、
全てのエントリの情報と、その各エントリが有する属性
であるアトリビュートの情報を記憶する。
【0028】複合インデックス記憶部35は、各エント
リがエントリ/アトリビュート記憶部31におけるディ
レクトリ上の何階層目の何番目にあるかという複合した
データを、2分探索木により構成されるインデックスや
ハッシュ表等の形式で記憶している。
【0029】図20は、ある会社の組織をディレクトリ
階層で表す図である。このディレクトリ階層は4層から
構成される。階層1は会社、階層2は部門、階層3は
課、階層4は社員の層となっている。会社401には、
営業部門402と開発部門403とがある。営業部門4
02には国内営業課404と海外営業課405、開発部
門403には企画課406と製造課407という課があ
る。各課にはそれぞれの人408〜415が配属されて
いる。
【0030】先祖関係記憶部34は、各エントリの先祖
関係を記憶している。図21は、先祖関係記憶部34に
記憶されている先祖関係を表す先祖関係表を示す図であ
る。この表は、各行にはエントリ/アトリビュート記憶
部31が記憶する各エントリのうち、先祖を有するエン
トリが各ディレクトリ階層毎に並べられている。また、
この表の各列には、エントリ/アトリビュート記憶部3
1が記憶する各エントリのうち、子孫を有するエントリ
が各ディレクトリ階層毎に並べられている。この表上で
チェックされているところは、列のエントリが、行のエ
ントリの先祖になっているということを示している。例
えば、Ueda氏の先祖は、会社401と、営業部門4
02と、海外営業課405であるということが、この表
からわかるようになっている。
【0031】データ処理装置8は、エントリ管理手段2
1と、フィルタ検索手段27と、スコープ判定手段28
とから構成される。エントリ管理手段21は、エントリ
やアトリビュートの登録・削除・更新の処理を行う。フ
ィルタ検索手段27は、利用者が指定した検索条件にし
たがってエントリの検索を行う。スコープ判定手段28
は、フィルタ検索手段23が検索したエントリが利用者
が指定した検索範囲に入っているかどうか調べてエント
リを絞り込む。
【0032】まず、利用者からの要求が、エントリやア
トリビュートの更新要求、削除要求、登録要求のいずれ
かの要求であった場合のディレクトリ検索システムの動
作について説明する。入力装置1からその要求が入力さ
れると、エントリ管理手段21は、その要求がアトリビ
ュート更新要求ならばエントリ/アトリビュート記憶部
31に格納されているエントリのアトリビュートを更新
する。
【0033】また、その要求がID更新又は削除要求な
らば、エントリ管理手段21は、複合インデックス記憶
部35に記憶されているエントリのIDを更新または削
除し、先祖関係記憶部34の先祖関係表におけるそのエ
ントリに関係する箇所のチェックも更新または削除す
る。また、その要求がエントリまたはアトリビュートの
削除要求ならば、エントリ管理手段21は、エントリ/
アトリビュート記憶部31に格納されたデータの中から
該当するエントリ又はアトリビュートを削除する。ま
た、その要求がエントリまたはアトリビュートの登録要
求ならば、エントリ管理手段21は、エントリ/アトリ
ビュート記憶部31に登録要求されたエントリまたはア
トリビュートを登録する。
【0034】その要求がID更新又は登録要求の場合、
エントリ管理手段21は、複合インデックス記憶部35
にエントリのIDを追加し、先祖関係記憶部34の先祖
関係表の該当箇所にもチェックする。上述の処理が終了
したら、エントリ管理手段21は処理終了を出力装置4
に通知し、出力装置4は処理結果を表示する。
【0035】次にアトリビュートをキーとして、エント
リを検索する場合の動作について説明する。入力装置1
から与えられた検索要求がフィルタ検索手段27に入力
されると、フィルタ検索手段27は、指定された検索条
件であるフィルタ条件にしたがってエントリ/アトリビ
ュート記憶部31に格納されているエントリの検索を行
う。検索条件を満たしたエントリは、フィルタ検索手段
27によって一時集合(不図示)に格納される。その
後、スコープ判定手段28は、一時集合に格納されたエ
ントリのうち検索範囲に入っているエントリを先祖関係
記憶部34の先祖関係表を参照することによって抽出
し、結果集合(不図示)に格納する。その後、フィルタ
検索手段27は、結果集合に格納されたエントリについ
て複合インデックス記憶部35にアクセスしてそのエン
トリのディレクトリ情報を取得し、その検索結果を出力
装置4に出力する。
【0036】以上述べたように、このディレクトリ検索
システムでは、フィルタ検索手段27によってエントリ
/アトリビュート記憶部31よりエントリを検索した後
に、その検索されたエントリの中から、スコープ判定手
段28によって、検索範囲に入っているエントリを抽出
している。よって、フィルタ検索手段27において検索
されたエントリに中には検索範囲外にあるエントリも含
まれている場合があり、それらのエントリの検索が結果
的に無駄となり、検索時間が長くなってしまうという問
題点があった。
【0037】また、このようなアトリビュートによるエ
ントリのフィルタ検索では、エントリのアトリビュート
に文字列や数値が含まれていた場合、文字列や数値の全
一致検索だけではなく、部分一致検索もすることができ
るディレクトリ検索システムが要求される。
【0038】また、特開平10−187745号公報で
は、エントリのアトリビュートに文字列や数値がフィル
タ条件として含まれている場合に、その文字列の部分一
致検索を行うことができるディレクトリ検索システムが
開示されている。しかしながらこの公報に開示された従
来のディレクトリ検索システムでは、アトリビュートの
全一致検索用のインデックスと、部分一致検索用のイン
デックスを別々に備えることが必要となる。さらに、部
分一致検索用のインデックスでは、格納されるアトリビ
ュートが膨大な数にのぼるため、インデックスの大きさ
も大きくなる。そのため、文字列の部分一致検索が可能
な従来のディレクトリ検索システムでは、それらのイン
デックスをできるだけ統合して、インデックスに使用さ
れる記憶装置の容量をできるだけ抑制することが課題と
なっている。
【0039】
【発明が解決しようとする課題】上述のような従来のデ
ィレクトリ検索システムは以下に示す3つの問題点を有
している。 (1) 数種類のキーからデータを検索する場合には複
数のインデックスを必要とするため、複数のインデック
スを主記憶装置または2次記憶装置上に展開させなけれ
ばならないので大容量の記憶装置が必要である。また、
複数のインデックスを検索するので検索時間が長くなっ
てしまう。 (2) ディレクトリサービスにおいてディレクトリ検
索システムを用いてエントリを検索する場合、フィルタ
条件に基づいてエントリの検索を行うフィルタ処理と、
検索範囲に基づいてエントリの絞り込みを行うスコープ
処理とが別々に実行される。そのため、フィルタ処理に
おいて検索されたエントリが、検索範囲外である場合が
あり、フィルタ処理において行われた検索処理が一部無
駄となり、検索時間が長くなってしまう。 (3) アトリビュートの部分一致の検索が可能な従来
のディレクトリ検索システムでは、アトリビュートの全
一致検索用のインデックスと、部分一致検索用のインデ
ックスという複数のインデックスが必要である。また、
部分一致検索用のインデックスは、格納されるアトリビ
ュートが膨大な数にのぼるため、インデックスのサイズ
も大きくなる。よって、アトリビュートの部分一致の検
索が可能な従来のディレクトリ検索システムでは、大容
量の記憶装置が必要となってしまう。
【0040】よって、本発明は、キーが2種類以上指定
された場合でも、インデックスを記憶するのに必要な記
憶容量を少なくし、検索時間を短縮することができるデ
ィレクトリ検索システムを提供することを目的とする。
【0041】また、本発明は、検索条件および検索範囲
の両方について検索を行わなければならない場合でも、
検索時間を短縮することができるディレクトリ検索シス
テムを提供することを目的とする。
【0042】また、本発明は、エントリのアトリビュー
トに文字列が含まれていて、その文字列の部分一致検索
を行う場合でも、できるだけインデックスを記憶するの
に必要な記憶容量を少なくするディレクトリ検索システ
ムを提供することを目的とする。
【0043】
【課題を解決するための手段】上記問題点を解決するた
めに、本発明では、複数の資源を管理するために該各資
源をエントリとして該各資源間の関係に基づいてディレ
クトリ階層を構成し、該各エントリの属性をキーとする
インデックスを用いてエントリを検索するディレクトリ
検索システムであって、前記各エントリの管理情報と前
記各エントリの全ての属性とを前記ディレクトリ階層順
に記憶するエントリ/アトリビュート記憶手段と、エン
トリを識別するための識別子からエントリの前記ディレ
クトリ階層における階層番号および階層別番号を導き出
すためのインデックスを記憶するエントリインデックス
記憶手段と、検索条件として指定された属性値を満たす
エントリの識別子を取得するために前記各エントリの複
数の属性から成るマルチキーをキーとする2分探索木か
ら構成されるマルチキーインデックスを記憶するアトリ
ビュートインデックス記憶手段と、前記エントリインデ
ックス記憶手段および前記アトリビュートインデックス
記憶手段を管理するマルチキーインデックス管理手段
と、前記マルチキーインデックス管理手段を介して検索
条件を満たすエントリの識別子を前記マルチキーインデ
ックスから取得し前記マルチキーインデックスから取得
した識別子に基づいて検索条件を満たすエントリの階層
番号および階層別番号を前記マルチキーインデックス管
理手段を介して前記エントリインデックス記憶手段から
取得し該階層番号および階層別番号に基づいて検索条件
を満たすエントリの管理情報を前記エントリインデック
ス記憶手段から取得するフィルタ検索手段とを備える。
【0044】本発明のディレクトリ検索システムでは、
アトリビュートインデックス記憶手段が記憶するインデ
ックスが、複数のキーによって一度に探索可能なマルチ
キーインデックスとなっているので、複数のインデック
スを備える必要がないため、アトリビュートからエント
リを検索するためのインデックスに必要な記憶容量を少
なくことができる。また、複数のインデックスを検索す
る必要がないので検索時間を短縮することができる。
【0045】本発明の他のディレクトリ検索システム
は、複数の資源を管理するために該各資源をエントリと
して該各資源間の関係に基づいてディレクトリ階層を構
成し、該各エントリの属性をキーとするインデックスを
用いてエントリを検索するディレクトリ検索システムで
あって、前記各エントリの管理情報と前記各エントリの
全ての属性とを前記ディレクトリ階層順に記憶するエン
トリ/アトリビュート記憶手段と、エントリを識別する
ための識別子からエントリの前記ディレクトリ階層にお
ける階層番号および階層別番号を検索するためのインデ
ックスを記憶するエントリインデックス記憶手段と、検
索条件として指定された属性値を満たすエントリの識別
子を取得するために前記各エントリの複数の属性から成
るマルチキーをキーとする2分探索木から構成され前記
2分探索木の各ノードに格納されているエントリの前記
階層番号および前記階層別番号が付与されているマルチ
キーインデックスを記憶するアトリビュートインデック
ス記憶手段と、前記エントリインデックス記憶手段およ
び前記アトリビュートインデックス記憶手段を管理する
マルチキーインデックス管理手段と、前記ディレクトリ
階層における検索範囲が指定されていた場合に、検索条
件として指定された属性の値に基づいて前記マルチキー
インデックス管理手段を介して前記検索条件を満たすエ
ントリを検索する途中に通過する前記各ノードに付与さ
れている階層番号および階層別番号を有するエントリが
前記検索範囲に入っているか否かを各エントリの先祖関
係からチェックし、該チェックの結果において前記検索
範囲に含まれていなかったエントリを検索条件を満たす
エントリから除外した後で、残りのエントリが前記検索
範囲に含まれているか否かの判定を行うスコープ/フィ
ルタ統合検索手段とを備える。
【0046】本発明のディレクトリ検索システムでは、
フィルタ検索とスコープ判定の処理を統合するスコープ
/フィルタ統合検索手段を備えることにより、フィルタ
検索に含まれていてスコープ判定に含まれないエントリ
にアクセスすることがなくなるため、エントリの検索時
間を短縮することができる。
【0047】本発明のディレクトリ検索システムでは、
マルチキーインデックスの探索時にスコープの絞り込み
を行い、スコープの判定処理の負荷を軽減しているた
め、スコープ判定処理の負荷を軽減してエントリの検索
時間を短縮することができる。本発明の他のディレクト
リ検索システムは、指定された文字列の中から所定の文
字数の部分文字列をすべて抽出する部分文字列操作手段
をさらに備え、前記アトリビュートインデックス記憶部
は前記部分文字列操作手段によって抽出された部分文字
列をキーとするマルチキーインデックスを記憶してお
り、前記マルチキーインデックス管理手段は、前記検索
条件として文字列が含まれていた場合、前記部分文字列
操作手段によって該文字列から抽出された少なくとも1
つの部分文字列によって前記マルチキーインデックスの
探索を行い、各部分文字列毎の前記マルチキーインデッ
クスの探索結果となったエントリのうち、すべての部分
文字列についての探索結果に含まれるエントリを検索条
件を満たすエントリとする。
【0048】本発明のディレクトリ検索システムでは、
文字列から所定の文字数の部分文字列を抽出する部分文
字列操作手段と、すべての部分文字列の検索結果に含ま
れるエントリを検索結果であると判断するマルチキーイ
ンデックス管理手段とを備えることによって、同一のイ
ンデックスで全文字列および部分文字列の検索を行うこ
とができるため、インデックスに必要な記憶容量を少な
くすることができる。
【0049】
【発明の実施の形態】次に、本発明の実施形態のディレ
クトリ検索システムについて図面を参照して詳細に説明
する。全図において、同一の符号がつけられている構成
要素は、すべて同一のものを示す。
【0050】(第1の実施形態)まず、本発明の第1の
実施形態のディレクトリ検索システムについて説明す
る。本実施形態のディレクトリ検索システムは、図20
の会社401の組織を管理するデータベースに用いられ
ているものとする。図1は、本実施形態のディレクトリ
検索システムの構成を示すブロック図である。図1に示
すように、本実施形態のディレクトリ検索システムは、
入力装置1とデータ処理装置2と記憶装置3と出力装置
4とから構成されている。
【0051】入力装置1は、キーボード等であり、利用
者からの要求を入力し、その要求をデータ処理装置2に
出力している。出力装置4は、ディスプレイ装置や印刷
装置等の出力装置であり、データ処理装置3から処理の
終了通知を受け取って処理結果を表示する。データ処理
装置2は、エントリ管理手段21と、マルチキーインデ
ックス管理手段22と、フィルタ検索手段23と、スコ
ープ判定手段24とを備えている。また、記憶装置3
は、エントリインデックス記憶部31とアトリビュート
インデックス記憶部32とエントリ/アトリビュート記
憶部33とを備えている。
【0052】エントリ/アトリビュート記憶部33は、
全てのエントリの管理情報と各エントリが有する全ての
アトリビュートとを記憶している。各エントリは、ディ
レクトリ階層の形態で記憶されており、ディレクトリの
ルートであるベースエントリの管理情報の格納場所と各
エントリの階層番号および階層別番号が分かれば、各エ
ントリの管理情報の格納場所を特定でき、各エントリの
管理情報にアクセスすることができる。本実施形態のデ
ィレクトリ検索システムでは、図20のディレクトリ階
層の各エントリの管理情報と各エントリが有する全ての
アトリビュートとを記憶している。
【0053】エントリインデックス記憶部31は、エン
トリを識別するための識別子(以降DN:Distin
guished Name)に基づいて作成されたイン
デックスを記憶している。このインデックスを検索する
ことによって各エントリの階層番号と階層別番号とを取
得することができる。
【0054】アトリビュートインデックス記憶部32
は、各エントリが有するアトリビュートをキーとして構
成されたインデックスを記憶している。このインデック
スは、前述のhB tree方式を用いたマルチキーイ
ンデックスとなっており、複数のアトリビュートをキー
としてエントリを検索することができるようになってい
る。本実施形態のディレクトリ検索システムでは、アト
リビュートインデックス記憶部32に記憶されるマルチ
キーインデックスは、図18の様になる。
【0055】エントリ管理手段21は、入力装置1から
エントリの登録・削除・ID更新要求やアトリビュート
の登録・削除・更新要求を入力した場合、エントリ/ア
トリビュート記憶部33に対してエントリやアトリビュ
ートの登録・削除・更新を行う。さらに、エントリ管理
手段21は、マルチキーインデックス管理手段22を介
して、エントリインデックス記憶部31およびアトリビ
ュートインデックス記憶部32の登録、削除、更新を行
う。
【0056】フィルタ検索手段23は、入力装置1から
エントリの検索要求を入力した場合、指定されたフィル
タ条件を満たすエントリの検索を行う。スコープ判定手
段24は、フィルタ検索手段23によって検索されたエ
ントリが、指定された検索範囲であるスコープ条件を満
たすかどうかを判定する。スコープ判定手段24は、エ
ントリ/アトリビュート記憶部33のエントリのディレ
クトリ階層を参照することによってその判定を行う。
【0057】マルチキーインデックス管理手段22は、
フィルタ検索手段23やエントリ管理手段21からの要
求により、エントリインデックス記憶部31やアトリビ
ュートインデックス記憶部32が記憶するインデックス
の管理や探索を行う。
【0058】次に、本実施形態のディレクトリ検索シス
テムの動作について図2、図3、図18を参照して詳細
に説明する。図2は、エントリやアトリビュートの更新
要求が入力された場合の本実施形態のディレクトリ検索
システムの動作を示すフローチャートである。
【0059】利用者が入力装置1に対し、エントリやア
トリビュートの更新要求を入力した場合、入力装置1は
その要求をエントリ管理手段21へ出力する。すると、
エントリ管理手段21は、その要求がエントリの更新要
求であるか否かを判定する(ステップA1)。もし、そ
の要求がエントリの更新要求であれば、エントリ管理手
段21は、マルチキーインデックス管理手段22を介し
てエントリインデックス記憶部31が記憶するインデッ
クスを更新する(ステップA2)。その後、エントリ管
理手段21は、エントリ/アトリビュート記憶部33に
記憶されているエントリの更新を行う(ステップA
3)。ステップA2、A3の処理終了後、エントリ管理
手段21は処理終了を出力装置4に通知し、出力装置4
は処理結果を出力する(ステップA4)。
【0060】ステップA1において、入力装置1からの
要求がエントリの更新要求ではない場合、その要求はア
トリビュートの更新要求である。エントリ管理手段21
は、アトリビュートインデックス記憶部32において更
新しようとするアトリビュートにインデックスが付与さ
れているか否かを判定する(ステップA5)。更新しよ
うとするアトリビュートにインデックスが付与されてい
れば、エントリ管理手段21は、マルチキーインデック
ス管理手段22を介してアトリビュートインデックス記
憶部32に記憶されるアトリビュートのインデックスを
更新する(ステップA6)。エントリ管理手段21は、
エントリ/アトリビュート記憶部33に記憶されるアト
リビュートを更新する(ステップA7)。そして、ステ
ップA6、A7の処理終了後、エントリ管理手段21は
処理終了を出力装置4に通知し、出力装置4は処理結果
を表示する(ステップA4)。
【0061】ステップA5において、更新しようとする
アトリビュートにインデックスが付与されていない場
合、ステップA6の処理は実行されずに、ステップA7
において、エントリ/アトリビュート記憶部33のアト
リビュートの更新のみが行われる。
【0062】ステップA6において、アトリビュートの
インデックスを更新する際の動作について説明する。前
述のように、アトリビュートインデックス記憶部32
は、図18に示す社員の名前と年齢とをキーとしたマル
チキーインデックスを記憶している。なお、更新される
アトリビュートは、社員の名前と年齢であり、更新され
るアトリビュート値は(Ozawa、24)であるとす
る。
【0063】このマルチキーインデックスでは、ブリッ
クaから探索が開始される。ブリックaでは、「O」と
x3(S)とが比較され、「24」とy1(28)とが
比較されることによって、ブリックbが選択される。ブ
リックbでは、「O」とx2(I)とが比較され、リー
フ205が選択される。リーフ205に(Ozawa、
24)のアトリビュート値を有するエントリのDNが格
納される。
【0064】図3は、エントリを検索する場合の本実施
形態のディレクトリ検索システムの動作を示すフローチ
ャートである。利用者が入力装置1に対しエントリの検
索要求を入力した場合、入力装置1はその要求をフィル
タ検索手段23へ出力する。フィルタ検索手段23は、
エントリの検索要求が入力されるとマルチキーインデッ
クス管理手段22を介してエントリインデックス記憶部
31のインデックスを探索する(ステップB1)。その
インデックスのルートであるベースエントリのエントリ
/アトリビュート記憶部33における格納場所を取得す
る(ステップB2)。そして、フィルタ検索手段23は
フィルタ条件が含まれているか否かを調べる(ステップ
B3)。もし、検索要求にフィルタ条件が含まれていれ
ば、フィルタ検索手段23は、フィルタ条件となってい
るアトリビュートにインデックスが付与されているかを
調べる(ステップB6)。
【0065】フィルタ条件となっているアトリビュート
にインデックスが付与されていれば、フィルタ検索手段
23は、マルチキーインデックス管理手段22を介して
そのフィルタ条件のアトリビュートの値によってマルチ
キーインデックスの探索を行い、フィルタ条件を満たす
エントリのDNを得る。(ステップB7)。そして、フ
ィルタ検索手段23は、マルチキーインデックス管理手
段22を介してエントリインデックス記憶部31が記憶
するインデックスを探索してステップB7において検索
されたエントリのDNからそのエントリの階層番号と階
層別番号を得る(ステップB8)。フィルタ検索手段2
3は、エントリ/アトリビュート記憶部33からステッ
プB8において得られたベースエントリの格納場所とエ
ントリの階層番号および階層別番号とからエントリの格
納場所を割り出し、そのエントリの情報を取得する(ス
テップB9)。
【0066】ステップB6において、フィルタ条件とな
っているアトリビュートにインデックスが付与されてい
ない場合には、フィルタ検索手段23は、データベース
の検索機能などを利用して、エントリ/アトリビュート
記憶部33からフィルタ条件を満たすエントリの検索を
行って(ステップB10)、ステップ9に移行する。ス
テップB9の後およびステップB3において検索要求に
フィルタ条件が含まれていなかったときは、本実施形態
のディレクトリ検索システムの動作はスコープ判定手段
24に移行する。スコープ判定手段24は、検索要求に
スコープ条件が含まれているかを調べる(ステップB
4)。スコープ判定手段24は、入力装置1から入力さ
れた検索要求にスコープ条件が含まれていれば、エント
リ/アトリビュート記憶部33のディレクトリ階層をた
どってステップB9で取得されたエントリが、スコープ
条件を満たしているか否かの判定を行う(ステップB1
1)。そして、スコープ判定手段24は、スコープ条件
を満たしているエントリをエントリ/アトリビュート記
憶部33にアクセスして取得し、検索結果を出力装置4
に出力する(ステップB5)。
【0067】ステップB7において、アトリビュートの
インデックスを更新する際の動作について詳細に説明す
る。前述のように、アトリビュートインデックス記憶部
32は、図18に示す社員の名前と年齢とをキーとした
マルチキーインデックスを記憶している。フィルタ条件
は、名前がAかKで始まることと年齢が30歳以下であ
ることとする。
【0068】マルチキーインデックスでは、ブリックa
から探索が開始される。ブリックaでは、ルートにおい
て「A」および「K」とx3(S)とが比較され、左の
枝が選択される。続いて、次のノードで「30歳以下」
とy1(28)とが比較され、ここでは両者の大小関係
が不明なので両方の枝が選択される。したがって、ブリ
ックaでは、ブリックbとブリックcの両方が選択され
る。
【0069】ブリックbでは、ルートにおいて、「A」
および「K」とx2(I)とが比較され、ここでは両者
の関係が不明なので両方の枝が選択される。したがっ
て、ブリックbでは、リーフD、Eが選択される。
【0070】ブリックbでは、ルートにおいて「A」お
よび「K」とx3(S)とが比較され、左の枝が選択さ
れる。続いて、次のノードで「30歳以下」とy1(2
8)とが比較され、ここでは両者の大小関係が不明なの
で両方の枝が選択される。しかし、左の枝には外部ノー
ド(ext)が指定されているので、左の枝についての
探索はここでストップする。右の枝については、「A」
および「K」とx1(A)とが比較され、リーフBが選
択される。そして、選択されたリーフB、D、Eに登録
されたエントリの中から、フィルタ条件を満たす(Ao
ki、32)が抽出され、この(Aoki、32)のエ
ントリのDNがフィルタ検索手段23に出力される。
【0071】本実施形態のディレクトリ検索システムで
は、各エントリのアトリビュートに基づいて構成される
インデックスが、hB tree方式のマルチキーイン
デックスであるため、複数のアトリビュートがフィルタ
条件として指定されたときでも、複数のインデックスを
保持する必要がなくなる。そのため、本実施形態のディ
レクトリ検索システムでは、インデックスを記憶するた
めの記憶容量を小さくすることができる。
【0072】また、本実施形態のディレクトリ検索シス
テムでは、前述のように各エントリのアトリビュートに
基づいて構成されるアトリビュートのインデックスが、
複数のアトリビュートをキーとするhB tree方式
のマルチキーインデックスとなっている。そのため、本
実施形態のディレクトリ検索システムでは、複数のアト
リビュートがフィルタ条件として指定されたときでもイ
ンデックスの探索を1回で済ませることができる。その
ため、本実施形態のインデックスシステムでは、複数の
アトリビュートを探索する場合に複数のインデックスを
検索したり何度も同じエントリにアクセスする必要がな
くなるため、エントリの検索時間を短縮することができ
る。
【0073】(第2の実施形態)次に、本発明の第2の
実施形態のディレクトリ検索システムについて説明す
る。図4は、本実施形態のディレクトリ検索システムの
構成を示すブロック図である。図4を参照すると、本実
施形態のディレクトリ検索システムは、入力装置1と、
データ処理装置5と、記憶装置6と、出力装置4とから
構成されている。データ処理装置5は、図1に示すデー
タ処理装置2が備えるフィルタ検索手段23とスコープ
判定手段24とが、スコープ/フィルタ統合検索手段2
5に置き換えられたものである。また、記憶装置6は、
図1に示す記憶装置3の構成要素に加え、先祖関係記憶
部34をさらに備えている。
【0074】アトリビュートインデックス記憶部32
は、図5に示すhB tree形式のマルチキーインデ
ックスを備える。このマルチキーインデックスは、ノー
ド501〜503と、リーフ204〜208とから構成
される。ノード501〜ノード503は、それぞれがブ
リックa、b、cである。ブリックa、b、c内のイン
デックスの各ノードには、各ノードに格納されているキ
ーの値を有するエントリの階層番号および階層別番号が
付与されている。
【0075】スコープ/フィルタ統合検索手段25は、
マルチキーインデックス管理手段22を介して指定され
たフィルタ条件に基づいてアトリビュートインデックス
記憶部32に記憶されているマルチキーインデックスの
探索を行うとともに、スコープ条件が指定されている場
合には先祖関係記憶部34が記憶する先祖関係表を用い
てスコープ判定も同時に行う。また、スコープ/フィル
タ統合検索手段25は、スコープ判定を行った結果を記
録するためのスコープ表を備える。図6は、本実施形態
のディレクトリ検索システムにおけるスコープ/フィル
タ統合検索手段25が備えるスコープ表である。スコー
プ表の各行は、図20のディレクトリ階層の各階層番号
を表しており、スコープ表の各列は、スコープ左外(L
eft−Out、以降L−O)、スコープ右外(Lef
t−In、以降L−I)、スコープ右内(Right−
In、以降R−I)、スコープ右外(Right−Ou
t、以降R−O)とに区切られている。
【0076】エントリの階層別番号がL−O、R−Oに
書き込まれているということは、そのエントリはスコー
プ条件の範囲外にあることを意味している。また、エン
トリの階層別番号がL−I、R−Iに書き込まれている
ということは、そのエントリはスコープ条件の範囲内に
あることを意味している。
【0077】本実施形態のディレクトリ検索システムの
動作を図7、図8を参照して詳細に説明する。図7は、
エントリやアトリビュートの更新要求があった場合のデ
ィレクトリ検索システムの動作を示すフローチャートで
ある。なお、図7におけるステップA1、A4〜A7の
動作は、図2におけるエントリ管理手段21の動作と同
一のため、説明は省略する。
【0078】ステップA1において、利用者からの要求
がエントリの更新である場合、エントリ管理手段21
は、マルチキーインデックス管理手段22を介してエン
トリインデックス記憶部31に記憶されるエントリの更
新を行う(ステップA2)。そして、エントリ管理手段
21は、先祖関係記憶部34のエントリの更新にともな
って変化したエントリの先祖関係に基づいて先祖関係表
を更新する(ステップC1)。その後、エントリ管理手
段21は、エントリ/アトリビュート記憶部33に記憶
されるエントリの更新を行う(ステップA3)。
【0079】図8は、エントリの検索を行う場合の本実
施形態のディレクトリ検索システム動作を示すフローチ
ャートである。ステップB1、B2、B6、B9、B1
0における動作は、図3に示す動作と同一であるため、
これらのステップにおける動作の説明は省略する。
【0080】ステップB3で検索要求にフィルタ条件が
含まれており、ステップB6でフィルタ条件となってい
るアトリビュートにインデックスが付与されている場合
には、スコープ/フィルタ統合検索手段25は、検索要
求にスコープ条件が含まれているかを調べる(ステップ
D1)。
【0081】もし、検索要求にスコープ条件が含まれて
いる場合、スコープ/フィルタ統合検索手段25は、マ
ルチキーインデックス管理手段22を介してフィルタ条
件に基づいてアトリビュートインデックス記憶部32が
記憶するインデックスを探索するとともに、インデック
ス探索途中で先祖関係記憶部34の先祖関係表を参照し
てインデックスの各ノードの分岐条件となっているアト
リビュート値を有するエントリがスコープの範囲内にあ
るエントリであるかどうかを調べ、スコープ表を作成す
る(ステップD2)。ステップD2においてフィルタ条
件を満すエントリを検索後、それらのエントリの中から
スコープ条件を満たすエントリをスコープ表から求め
る。スコープ表からスコープ条件を満たしているかどう
か判断できないエントリについては、先祖関係記憶部3
4の先祖関係表を参照してスコープ判定を行う(ステッ
プD3)。
【0082】ステップD1においてスコープ条件が含ま
れていない場合には、第1の実施形態のディレクトリ検
索システムと同様にアトリビュートインデックス記憶部
32のインデックスを探索のみを行う(ステップB
7)。ステップD3またはステップB7の終了後、ステ
ップD3またはステップB7において検索されたエント
リの階層番号および階層別番号をエントリインデックス
記憶部31のインデックスを探索して得る(ステップB
8)。そして、エントリ/アトリビュート記憶部33か
ら検索結果のエントリの管理情報を取得する(ステップ
D4)。
【0083】また、ステップB4において、検索要求に
スコープ条件が含まれている場合には、スコープ/フィ
ルタ統合手段25は、先祖関係記憶部34の先祖関係表
を参照してスコープの判定を行う(ステップD3)。ス
テップD3、B4、D4終了後、スコープ/フィルタ統
合手段25は、エントリ/アトリビュート記憶部33に
アクセスして最終的な検索結果のエントリの管理情報を
取得し、出力装置4にそれらの管理情報を出力する(ス
テップB5)。
【0084】アトリビュートインデックス記憶部32の
記憶するマルチキーインデックスでは、前述のように、
ブリック501〜503のインデックスのノードには、
各ノードの分岐条件となっているキー値をアトリビュー
トとして有するエントリの階層番号および階層別番号が
付与されている。
【0085】ステップD2において、スコープ/フィル
タ統合検索手段25は、フィルタ条件となっているアト
リビュートをキーとするインデックスがアトリビュート
インデックス記憶部32に存在している場合に、マルチ
キーインデックス管理手段22を介してアトリビュート
インデックス記憶部32に記憶されるインデックスを探
索する。そして、各ブリックのインデックスのノードを
通過する際に、そのノードに付与されている階層番号お
よび階層別番号を有するエントリが、スコープ条件の範
囲内かどうかを先祖関係記憶部34の先祖関係表を参照
して調べ、その結果に基づいてスコープ表を更新する。
【0086】例えば、フィルタ条件が年齢30歳以上で
あることであり、スコープ条件が営業部門であるとす
る。スコープ/フィルタ統合検索手段25は、アトリビ
ュートインデックス記憶部32のマルチキーインデック
スを年齢30歳以上で探索する。スコープ/フィルタ統
合検索手段25は、その探索途中でノードを通過する際
に、そのノードに付与されている階層番号および階層別
番号を有するエントリがスコープ条件となっている営業
部門に属しているかどうかをスコープ表にチェックして
いく。階層番号4および階層別番号1のSato氏と階
層番号4および階層別番号2のEndo氏とは、営業部
門に属しているので、スコープ条件の範囲内にある。し
たがって、スコープ/フィルタ統合検索手段25は、ス
コープ表の階層番号4およびL−I、R−Iのところに
階層別番号1、2を書き込む。さらに、階層番号4およ
び階層別番号5のAoki氏は、営業部門に属していな
いので、スコープ条件の範囲外である。したがって、ス
コープ/フィルタ統合検索手段25は、スコープ表の階
層番号4でR−Oのところに階層別番号5が書き込む。
以上の結果から、階層番号4における各エントリのう
ち、階層別番号が1、2であるエントリはスコープ条件
の範囲内であり、階層別番号が5であるエントリはスコ
ープ条件の範囲外であることがわかる。
【0087】フィルタ条件によるマルチキーインデック
スの探索は、最終的にリーフA、B、Cが選択され、そ
こに登録されているエントリから30歳以上のAoki
氏、(階層別番号5)、Nakai氏(階層別番号
8)、Ueda氏(階層別番号3)が抽出される。この
中からスコープ条件の範囲外である階層別番号5のAo
ki氏は検索結果から除外される。
【0088】本実施形態のディレクトリ検索システムで
は、フィルタ条件を満たすエントリの検索中にスコープ
の絞り込みを行うことで、スコープ判定の負担を軽減す
ることができる。また、本実施形態のディレクトリ検索
システムでは、フィルタ検索とスコープ判定の処理を統
合することにより、結果的にスコープ判定に含まれない
エントリにアクセスすることがなくなるため、エントリ
の検索時間を短縮することができる。
【0089】(第3の実施形態)次に、本発明の第3の
実施形態のディレクトリ検索システムについて説明す
る。図9は、本実施形態のディレクトリ検索システムの
構成を示すブロック図である。本実施形態のディレクト
リ検索システムは、入力装置1と、出力装置4と、記憶
装置6と、データ処理装置7とから構成されている。デ
ータ処理装置7は図4のデータ処理装置5の構成要素に
加えて、部分文字列操作手段26を備えている。部分文
字列操作手段26は、マルチキーインデックス管理手段
22からの指示により、文字列を分解する。
【0090】本実施形態のディレクトリ検索システムで
は、名前の部分一致検索を行うため、各社員の名前から
抽出された3文字の部分文字列をキーとする。図10
は、図20のディレクトリ階層における社員の名前から
抽出された3文字の部分文字列と年齢とから成るマルチ
キーの分布状態を示すマップである。このマップは、縦
軸が年齢で、横軸が名前の先頭のアルファベットとなっ
ている。
【0091】図10に示すように、アルファベットSを
x3とし、アルファベットIをx2とし、アルファベッ
トEをx1とし、年齢28をy1とする。マップ上のエ
リアは、年齢28以上かつ名前の頭文字がA〜Dの領域
701と、年齢28以上かつ名前の頭文字がE〜Rの領
域702と、年齢28未満で名前の頭文字がA〜Hの領
域703と、年齢28未満で名前の頭文字がI〜Rの領
域704と、名前の頭文字がS〜Zの領域705とに分
割されている。
【0092】図11は、本実施形態のディレクトリ検索
システムにおけるアトリビュートインデックス記憶部3
2のマルチキーインデックスを示す図である。このマル
チキーインデックスは、ノード601〜603と、リー
フ604〜608とから構成されている。ノード601
〜603は、それぞれがブリックa、ブリックb、ブリ
ックcである。図11のhB treeでは、図10に
おけるマップの各領域を元にブリックa、b、cを構成
する。ブリックaは、マップ全体を指すものであると
し、ブリックcは、領域701、702、705を指す
ものであるとし、ブリックbは、領域703、704を
指すものであるとする。
【0093】このマルチキーインデックスは、まずフィ
ルタ条件として指定されたアトリビュートの値が、マッ
プ上のどの領域の属するかを探索する。ブリックaで
は、x3(S)とy1(28)とを分岐条件として、フ
ィルタ条件として指定されたアトリビュートの値が、領
域701、702、705に含まれるか領域703、7
04に含まれるかを切り分ける。そして、ブリックbで
は、フィルタ条件として指定されたアトリビュートの値
の含まれる領域が、領域703なのか領域704なのか
を切り分ける。ブリックcでは、フィルタ条件として指
定されたアトリビュートの値の含まれる領域が、領域7
01なのか領域702領域705なのかを切り分ける。
【0094】リーフ604〜608にはそれぞれ領域7
03、704、701、702、705に含まれる各要
素のDNが登録されている。同一のリーフ内に格納さ
れ、同じエントリのDNを指す要素は、マルチキーイン
デックス管理手段22によってキー併合されて登録され
ている。例えば、各マルチキー(IIJ、20)、(I
JI、20)、(JIM、20)、(IMA、20)
は、同じリーフ608に格納され、同じエントリである
Iijima氏を指すので(IIJ+IJI+JIM+
IMA、20)というふうにマルチキーインデックス管
理手段22によってキー併合されて登録されている。
【0095】次に、本実施形態のディレクトリ検索シス
テムの動作を図12、図13を参照して詳細に説明す
る。図12は、エントリまたはアトリビュートの更新を
行う場合の本実施形態のディレクトリ検索システムの動
作を示すフローチャートである。図12のステップA1
〜A5、A7、C1の動作は、第2の実施形態のディレ
クトリ検索システムにおけるエントリ管理手段21の動
作と同一であるため、これらのステップの動作の説明は
省略する。
【0096】ステップA5において、利用者からの要求
がインデックスが付与されているアトリビュートの更新
要求であった場合、マルチキーインデックス管理手段2
1は、アトリビュートに文字列が含まれているかを調べ
る(ステップE1)。
【0097】もし含まれていれば、マルチキーインデッ
クス管理手段22は、部分文字列操作手段26を介して
文字列から3文字の部分文字列を抽出する(ステップE
2)。例えば、更新要求のあったアトリビュートの値
が、(Tsuji、30)であった場合、文字列「ts
uji」から「tsu」と「suj」と「uji」を抽
出する。すると、マルチキーインデックス管理手段22
は、(tsu、30)、(suj、30)、(uji、
30)の3つのマルチキーを作成し、これらのマルチキ
ーによってアトリビュートインデックス記憶部のマルチ
キーインデックスを探索する。そして、各マルチキーの
うち、探索結果が同一のリーフとなったマルチキーがあ
る場合、マルチキーインデックス管理手段22は、それ
らのマルチキーのキー併合を行いアトリビュートインデ
ックス記憶部32のインデックスを更新する(ステップ
E3)。例えば、上述のマルチキー(tsu、30)、
(suj、30)、(uji、30)は、すべて、リー
フ608に格納されるようになるので、(tsu+su
j+uji、30)のように、キー併合を行って(ts
uji、30)のエントリのDNをリーフ608に格納
する。
【0098】その後、マルチキーインデックス管理手段
22は、エントリ/アトリビュート記憶部33に新しく
追加されたエントリのアトリビュートを更新する(ステ
ップA7)。ステップE1において、指定されたアトリ
ビュートに部分文字列が含まれていなかった場合、マル
チキーインデックス管理手段は、そのアトリビュートに
基づいて、アトリビュートインデックス記憶部32に格
納されたインデックスを更新し(ステップA6)、ステ
ップA7に進む。
【0099】図13は、エントリの検索要求があった場
合の本実施形態のディレクトリ検索システムの動作を示
すフローチャートである。図13において、ステップB
1〜B10、D1〜D4の動作は、図8におけるそれら
のステップの動作と同一であるため、それらのステップ
の動作の説明は省略する。
【0100】ステップB3でフィルタ条件が指定されて
おり、ステップB6でインデックスが付与されていた場
合、マルチキーインデックス管理手段22は、部分文字
列のインデックスが含まれているかを調べる(ステップ
F1)。もし含まれていれば、部分文字列操作文字手段
26は、その部分文字列から所定の文字数の部分文字列
を抽出する(ステップF2)。例えば、「NAKA」と
いう文字列を含む名前を持つエントリを検索する場合、
所定の文字数が3文字であるとすると、部分文字列操作
手段26は「NAKA」から「NAK」および「AK
A」を抽出する。その後、本実施形態のインデックスシ
ステムの動作は、スコープ/フィルタ統合検索手段25
に移行する。ステップF1において部分文字列のインデ
ックスが含まれていない場合には、ステップF2の処理
はスキップされる。
【0101】ブリックa、b、c内のインデックスの内
部ノードには、第2の実施形態のディレクトリ検索シス
テムと同様にスコープの絞り込みで使用されるエントリ
の階層番号および階層別番号が付与されている。リーフ
604〜608には、キー併合により同じエントリを指
しているマルチキーがキー併合されて管理されている。
「NAK」による探索では、リーフ605と607とに
たどりついて(NAK+KAI、37)のエントリが選
択される。[AKA]による探索ではリーフ604と6
06にたどりついて(AKA、37)のエントリが選択
される。これらのエントリは、同じNakai氏を示す
ので、Nakai氏が検索結果となって、出力装置4に
出力される。
【0102】また、本実施形態のディレクトリ検索シス
テムでは、「Nakai」のような全文字列検索を行う
場合でも、同様な動作で上述のマルチキーインデックス
を探索してNakai氏の情報を取得することができ
る。
【0103】以上述べたように、本実施形態のディレク
トリ検索システムでは、文字列から所定の文字数の部分
文字列を抽出する部分文字列操作手段26と、すべての
部分文字列の検索結果に含まれるエントリを検索結果で
あると判断するマルチキーインデックス管理手段22と
を備えることによって、同一のインデックスで全文字列
および部分文字列の検索を行うことができるため、イン
デックスの記憶に要する記憶容量を少なくすることがで
きる。
【0104】また、本実施形態のディレクトリ検索シス
テムでは、部分文字列をキーとするインデックスについ
て、同一のリーフの登録される同一のエントリについて
のマルチキーがあった場合には、それらのマルチキーを
キー併合するため、リーフに登録されるマルチキーの数
を減らすことができるため、インデックスを記憶するた
めの記憶容量を小さくすることができる。
【0105】なお、上記第1、第2、第3の実施形態の
ディレクトリ検索システムでは、アトリビュートインデ
ックス記憶部が格納するインデックスをhB tree
の形態としたマルチキーインデックスであるとして構造
および動作を説明したが、本発明はこれに限定されるも
のではなく、マルチキーインデックスをk−d tre
eまたは他の形態のマルチキーインデックスとしても良
い。
【0106】また、図14に示すように、第1、第2、
第3の実施形態のディレクトリ検索システムは、データ
更新またはデータ検索を実行するためのプログラムを記
録した記録媒体7を備えていてもよい。
【0107】第1の実施形態のディレクトリ検索システ
ムでは、記録媒体7は、フィルタ条件とを満たすエント
リをマルチキーインデックスから検索する処理と、エン
トリやアトリビュートの登録や削除や更新が行われる場
合に、ディレクトリ階層およびマルチキーインデックス
に対しても登録や削除や更新を行う処理とを行うプログ
ラムを記録している。
【0108】また、第2の実施形態のディレクトリ検索
システムでは、記憶媒体7は、ディレクトリ階層におけ
るスコープ条件が指定されていた場合にフィルタ条件を
満たすエントリをマルチキーインデックスを検索する途
中に通過する各ノードに付与されている階層番号および
階層別番号を有するエントリがスコープ条件に入ってい
るか否かを各エントリの先祖関係からチェックする処理
と、そのチェックの結果においてスコープ条件に含まれ
ていなかったエントリをフィルタ条件を満たすエントリ
から除外した後で、残りのエントリがスコープ範囲に含
まれているか否かの判定を行う処理と、利用者からエン
トリの登録や削除や更新が行われた場合には、ディレク
トリ階層の登録や削除や更新を行うとともにマルチキー
インデックスの2分探索木の各ノードに付与されている
階層番号および階層別番号の登録や削除や更新を行う処
理とを行うプログラムを記録している。
【0109】また、第3の実施形態のディレクトリ検索
システムでは、記録媒体7は、検索条件として指定され
た属性値が文字列であった場合、その文字列の中から所
定の文字数の部分文字列をすべて抽出する処理と、フィ
ルタ条件として指定された属性値が文字列であった場合
にその文字列から抽出された少なくとも1つの部分文字
列によって所定の文字数の部分文字列をキーの1つとす
るマルチキーインデックスの探索を行い、各部分文字列
毎のマルチキーインデックスの探索結果となったエント
リのうちすべての部分文字列についての探索結果に含ま
れるエントリをフィルタ条件を満たすエントリとする処
理と、利用者から属性となっている文字列の更新要求が
あった場合にその文字列から抽出された所定の文字数の
部分文字列のうちの探索結果が同一になる部分文字列に
ついてはキー併合を行ってその部分文字列が指すエント
リの識別子を格納する場所を同一とする処理とを行うた
めのプログラムを記録している。記録媒体7としては磁
気ディスク、半導体メモリまたはその他の記録媒体が用
いられる。
【0110】
【発明の効果】以上述べたように、本発明のディレクト
リ検索システムは、以下に示す3つの効果を有してい
る。 (1) アトリビュートインデックス記憶部が記憶する
インデックスが、複数のキーによって一度に探索可能な
マルチキーインデックスとなっているため、アトリビュ
ートからエントリを検索するためのインデックスを記憶
するのに必要な記憶容量を少なくことができる。また、
複数のインデックスを検索する必要がないので、検索時
間を短縮することができる。 (2) マルチキーインデックスの探索時にスコープの
絞り込みを行い、スコープの判定処理の負荷を軽減して
いるため、スコープ判定処理の負荷を軽減してエントリ
の検索時間を短縮することができる。また、フィルタ検
索とスコープ判定の処理を統合することにより、結果的
にスコープ判定に含まれないエントリにアクセスするこ
とがなくなるため、エントリの検索時間を短縮すること
ができる。 (3) 文字列から所定の文字数の部分文字列を抽出す
る部分文字列操作手段と、すべての部分文字列の検索結
果に含まれるエントリを検索結果であると判断するマル
チキーインデックス管理手段とを備えることによって、
同一のインデックスで全文字列および部分文字列の検索
を行うことができるため、インデックスを記憶するのに
必要な記憶容量を少なくすることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態のディレクトリ検索シ
ステムの構成を示すブロック図である。
【図2】エントリやアトリビュートの更新要求が入力さ
れた場合の本発明の第1の実施形態のディレクトリ検索
システムの動作を示すフローチャートである。
【図3】エントリを検索する場合の本発明の第1の実施
形態のディレクトリ検索システムの動作を示すフローチ
ャートである。
【図4】本発明の第2の実施形態のディレクトリ検索シ
ステムの構成を示すブロック図である。
【図5】本発明の第2の実施形態のディレクトリ検索シ
ステムにおけるアトリビュートインデックス記憶部が記
憶するマルチキーインデックスを示す図である。
【図6】本発明の第2の実施形態のディレクトリ検索シ
ステムにおけるスコープ/フィルタ検索手段が記憶する
スコープ表を示す図である。
【図7】エントリまたはアトリビュートの更新を行う場
合の本発明の第2の実施形態のディレクトリ検索システ
ムの動作を示すフローチャートである。
【図8】エントリの検索を行う場合の本発明の第2の実
施形態のディレクトリ検索システムの動作を示すフロー
チャートである。
【図9】本発明の第3の実施形態のディレクトリ検索シ
ステムの構成を示すブロック図である。
【図10】本発明の第3の実施形態のディレクトリ検索
システムにおけるアトリビュートインデックス記憶部が
記憶するマルチキーインデックスを示す図である。
【図11】ある会社の社員の名前の部分文字列を抽出し
た場合の各部分文字列と年齢とから構成されるマルチキ
ーの分布を示すマップを示す図である。
【図12】エントリまたはアトリビュートを更新する場
合の本発明の第3の実施形態のディレクトリ検索システ
ムの動作を示すフローチャートである。
【図13】本発明の第3の実施形態のディレクトリ検索
システムのエントリまたはアトリビュートの検索時にお
ける動作を示すフローチャートである。
【図14】本発明の第1、第2、第3の実施形態のディ
レクトリ検索システムが記録媒体を備えている場合の構
成を示すブロック図である。
【図15】特開平3−70049号公報に開示されたデ
ィレクトリ検索システムの構成を示すブロック図であ
る。
【図16】k−d treeの基本的な構成を示す図で
ある。
【図17】ある会社の社員の名前と年齢とから構成され
るマルチキーの分布状態を示すマップである。
【図18】ある会社の社員の構成をhB treeの形
態で表した図である。
【図19】特願平11−43259号出願に記載された
従来のディレクトリ検索システムの構成を示すブロック
図である。
【図20】ある会社の組織をディレクトリ階層で表す図
である。
【図21】従来のディレクトリ検索システムの先祖関係
記憶部が記憶する先祖関係表を示す図である。
【符号の説明】
1 入力装置 2、5、7、8 データ処理装置 3、6、9 記憶装置 4 出力装置 21 エントリ管理手段 22 マルチキーインデックス管理手段 23、27 フィルタ検索手段 24、28 スコープ判定手段 25 スコープ/フィルタ統合検索手段 26 部分文字列操作手段 31 エントリインデックス記憶部 32 アトリビュートインデックス記憶部 33 エントリ/アトリビュート記憶部 34 先祖関係記憶部 35 複合インデックス記憶部 101〜108 ノード 204〜208、604〜608 リーフ 201〜203、501〜503、601〜603
ノード 301〜305、701〜705 領域 401 会社 402 営業部門 403 開発部門 404 国内営業課 405 海外営業課 406 企画課 407 製造課 408〜415 社員 1001 処理開始指示装置 1002 ディレクトリ情報処理手段 1003 併合インデックス作成指示手段 1004 併合インデックス読込指示手段 1005 併合インデックス作成手段 1006 併合インデックス読込手段 1007 作業ファイル 1008 併合インデックス 1009 ディレクトリファイル 1010 利用者インデックス 1011 グループ共有インデックス 1012 システム共有インデックス 1013 サブファイル群 A1〜A7、B1〜B11、C1 ステップ D1〜D4、E1〜E3、F1、F2 ステップ

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 複数の資源を管理するために該各資源を
    エントリとして該各資源間の関係に基づいてディレクト
    リ階層を構成し、該各エントリの属性をキーとするイン
    デックスを用いてエントリを検索するディレクトリ検索
    システムであって、 前記各エントリの管理情報と前記各エントリの全ての属
    性とを前記ディレクトリ階層順に記憶するエントリ/ア
    トリビュート記憶手段と、 エントリを識別するための識別子からエントリの前記デ
    ィレクトリ階層における階層番号および階層別番号を導
    き出すためのインデックスを記憶するエントリインデッ
    クス記憶手段と、 検索条件として指定された属性値を満たすエントリの識
    別子を取得するために前記各エントリの複数の属性から
    成るマルチキーをキーとする2分探索木から構成される
    マルチキーインデックスを記憶するアトリビュートイン
    デックス記憶手段と、 前記エントリインデックス記憶手段および前記アトリビ
    ュートインデックス記憶手段を管理するマルチキーイン
    デックス管理手段と、 前記マルチキーインデックス管理手段を介して検索条件
    を満たすエントリの識別子を前記マルチキーインデック
    スから取得し、前記マルチキーインデックスから取得し
    た識別子に基づいて検索条件を満たすエントリの階層番
    号および階層別番号を前記マルチキーインデックス管理
    手段を介して前記エントリインデックス記憶手段から取
    得し、該階層番号および階層別番号に基づいて検索条件
    を満たすエントリの管理情報を前記エントリインデック
    ス記憶手段から取得するフィルタ検索手段とを備えるデ
    ィレクトリ検索システム。
  2. 【請求項2】 前記エントリおよび前記属性の登録や削
    除や更新が要求された場合に、前記エントリ/アトリビ
    ュート記憶手段が記憶する前記エントリおよび前記属性
    の登録や削除や更新を行うとともに、前記マルチキーイ
    ンデックス管理手段を介して前記エントリインデックス
    記憶手段に記憶されるインデックスと前記アトリビュー
    トインデックス記憶手段に記憶されるマルチキーインデ
    ックスとに対しても登録や削除や更新を行うエントリ管
    理手段をさらに備える請求項1記載のディレクトリ検索
    システム。
  3. 【請求項3】 複数の資源を管理するために該各資源を
    エントリとして該各資源間の関係に基づいてディレクト
    リ階層を構成し、該各エントリの属性をキーとするイン
    デックスを用いてエントリを検索するディレクトリ検索
    システムであって、 前記各エントリの管理情報と前記各エントリの全ての属
    性とを前記ディレクトリ階層順に記憶するエントリ/ア
    トリビュート記憶手段と、 エントリを識別するための識別子からエントリの前記デ
    ィレクトリ階層における階層番号および階層別番号を検
    索するためのインデックスを記憶するエントリインデッ
    クス記憶手段と、 検索条件として指定された属性値を満たすエントリの識
    別子を取得するために前記各エントリの複数の属性から
    成るマルチキーをキーとする2分探索木から構成され前
    記2分探索木の各ノードに格納されているエントリの前
    記階層番号および前記階層別番号が付与されているマル
    チキーインデックスを記憶するアトリビュートインデッ
    クス記憶手段と、 前記エントリインデックス記憶手段および前記アトリビ
    ュートインデックス記憶手段を管理するマルチキーイン
    デックス管理手段と、 前記ディレクトリ階層における検索範囲が指定されてい
    た場合に、検索条件として指定された属性の値に基づい
    て前記マルチキーインデックス管理手段を介して前記検
    索条件を満たすエントリを検索する途中に通過する前記
    各ノードに付与されている階層番号および階層別番号を
    有するエントリが前記検索範囲に入っているか否かを各
    エントリの先祖関係からチェックし、該チェックの結果
    において前記検索範囲に含まれていなかったエントリを
    検索条件を満たすエントリから除外した後で、残りのエ
    ントリが前記検索範囲に含まれているか否かの判定を行
    うスコープ/フィルタ統合検索手段とを備えるディレク
    トリ検索システム。
  4. 【請求項4】 エントリの登録や削除や更新要求があっ
    た場合には前記エントリ/アトリビュート記憶手段が記
    憶するエントリの登録や削除や更新を行うとともに前記
    マルチキーインデックス管理手段を介して前記エントリ
    インデックス記憶手段に記憶されるインデックスの登録
    や削除や更新を行い前記マルチキーインデックスの2分
    探索木の各ノードに付与されている階層番号および階層
    別番号についての更新も行うエントリ管理手段をさらに
    備える請求項3記載のディレクトリ検索システム。
  5. 【請求項5】 指定された文字列の中から所定の文字数
    の部分文字列をすべて抽出する部分文字列操作手段をさ
    らに備え、 前記アトリビュートインデックス記憶部は前記部分文字
    列操作手段によって抽出された部分文字列をキーとする
    マルチキーインデックスを記憶しており、 前記マルチキーインデックス管理手段は、前記検索条件
    として文字列が含まれていた場合、前記部分文字列操作
    手段によって該文字列から抽出された少なくとも1つの
    部分文字列によって前記マルチキーインデックスの探索
    を行い、各部分文字列毎の前記マルチキーインデックス
    の探索結果となったエントリのうち、すべての部分文字
    列についての探索結果に含まれるエントリを検索条件を
    満たすエントリとする請求項1から4のいずれか1項記
    載のディレクトリ検索システム。
  6. 【請求項6】 属性となっている文字列の更新要求があ
    った場合に、前記部分文字列操作手段から抽出された部
    分文字列のうち探索結果が同一になる部分文字列につい
    ては、キー併合を行って該部分文字列が指すエントリの
    識別子を格納する場所を同一とする請求項5記載のディ
    レクトリ検索システム。
  7. 【請求項7】 複数の資源を管理するために該各資源を
    エントリとして該各資源間の関係に基づいてディレクト
    リ階層を構成し、該各エントリの属性をキーとするイン
    デックスを用いてエントリを検索するディレクトリ検索
    方法であって、 前記各エントリの複数の属性から構成されたマルチキー
    をキーとする2分探索木から構成されるマルチキーイン
    デックスを作成し、前記マルチキーインデックスから検
    索条件として指定された属性値を満たすエントリを検索
    するディレクトリ検索方法。
  8. 【請求項8】 前記エントリや前記属性の登録や削除や
    更新が行われる場合、前記エントリから構成されるディ
    レクトリ階層および前記マルチキーインデックスに対し
    ても登録や削除や更新を行う請求項7記載のディレクト
    リ検索方法。
  9. 【請求項9】 複数の資源を管理するために該各資源を
    エントリとして該各資源間の関係に基づいてディレクト
    リ階層を構成し、該各エントリの属性をキーとするイン
    デックスを用いてエントリを検索するディレクトリ検索
    方法であって、 エントリが有する複数の属性から成るマルチキーをキー
    とするエントリを特定するための2分探索木から構成さ
    れ、前記各エントリを格納する前記2分探索木の各ノー
    ドに前記各エントリの前記ディレクトリ階層における階
    層番号および階層別番号がそれぞれ付与されているマル
    チキーインデックスを作成し、前記ディレクトリ階層に
    おける検索範囲が指定されていた場合に、検索条件とし
    て指定された属性の値に基づいて前記検索条件を満たす
    エントリを検索する途中に通過する前記各ノードに付与
    されている階層番号および階層別番号を有するエントリ
    が前記検索範囲に入っているか否かを各エントリの先祖
    関係からチェックし、 該チェックの結果において前記検索範囲に含まれていな
    かったエントリを検索条件を満たすエントリから除外し
    た後で、残りのエントリが前記検索範囲に含まれている
    か否かの判定を行うディレクトリ検索方法。
  10. 【請求項10】 エントリの登録や削除や更新が行われ
    た場合には、ディレクトリ階層の登録や削除や更新を行
    うとともに、前記マルチキーインデックスの2分探索木
    の各ノードに付与されている階層番号および階層別番号
    の登録や削除や更新も行う請求項9記載のディレクトリ
    検索方法。
  11. 【請求項11】 前記マルチキーインデックスは、所定
    の文字数の部分文字列をキーとしており、 検索条件として指定された属性値が文字列であった場
    合、該文字列の中から所定の文字数の部分文字列をすべ
    て抽出し、 検索条件として指定された属性値が文字列であった場
    合、該文字列から抽出された少なくとも1つの部分文字
    列によって前記マルチキーインデックスの探索を行い、
    各部分文字列毎の前記マルチキーインデックスの探索結
    果となったエントリのうち、すべての部分文字列につい
    ての探索結果に含まれるエントリを検索条件を満たすエ
    ントリとする請求項7から10のいずれか1項記載のデ
    ィレクトリ検索方法。
  12. 【請求項12】 属性となっている文字列の更新要求が
    あった場合に、前記部分文字列操作手段から抽出された
    部分文字列のうち探索結果が同一になる部分文字列につ
    いては、キー併合を行って該部分文字列が指すエントリ
    の識別子を格納する場所を同一とする請求項11記載の
    ディレクトリ検索方法。
  13. 【請求項13】 複数の資源を管理するために該各資源
    をエントリとして該各資源間の関係に基づいてディレク
    トリ階層を構成し、前記各エントリの複数の属性から構
    成されたマルチキーをキーとする2分探索木から構成さ
    れるマルチキーインデックスを用いてエントリを検索す
    るディレクトリ検索システムに備えられ、 検索条件として指定された属性値を満たすエントリを前
    記マルチキーインデックスから検索する処理をコンピュ
    ータに実行させるためのプログラムを記録した機械読み
    取り可能な記録媒体。
  14. 【請求項14】 前記エントリや前記属性の登録や削除
    や更新が行われる場合、前記ディレクトリ階層および前
    記マルチキーインデックスに対しても登録や削除や更新
    を行う処理をコンピュータに実行させるためのプログラ
    ムをさらに記録した請求項13記載の機械読み取り可能
    な記録媒体。
  15. 【請求項15】 複数の資源を管理するために該各資源
    をエントリとして該各資源間の関係に基づいてディレク
    トリ階層を構成し、前記各エントリが有する複数の属性
    から成るマルチキーをキーとするエントリを特定するた
    めの2分探索木から構成され前記各エントリを格納する
    前記2分探索木の各ノードに前記ディレクトリ階層にお
    ける前記各エントリの階層番号および階層別番号がそれ
    ぞれ付与されているマルチキーインデックスを用いてエ
    ントリを検索するディレクトリ検索システムに備えら
    れ、 前記ディレクトリ階層における検索範囲が指定されてい
    た場合に検索条件として指定された属性の値に基づいて
    前記検索条件を満たすエントリを前記マルチキーインデ
    ックスを検索する途中に通過する前記各ノードに付与さ
    れている階層番号および階層別番号を有するエントリが
    前記検索範囲に入っているか否かを各エントリの先祖関
    係からチェックする処理と、 該チェックの結果において前記検索範囲に含まれていな
    かったエントリを前記検索条件を満たすエントリから除
    外した後で、残りのエントリが前記検索範囲に含まれて
    いるか否かの判定を行う処理とをコンピュータに実行さ
    せるためのプログラムを記録した機械読み取り可能な記
    録媒体。
  16. 【請求項16】 利用者からエントリの登録や削除や更
    新が行われた場合には、前記ディレクトリ階層の登録や
    削除や更新を行うとともに前記2分探索木の各ノードに
    付与されている階層番号および階層別番号の登録や削除
    や更新も行う処理をコンピュータに実行させるためのプ
    ログラムをさらに記録した請求項15記載の機械読み取
    り可能な記録媒体。
  17. 【請求項17】 検索条件として指定された属性値が文
    字列であった場合、該文字列の中から所定の文字数の部
    分文字列をすべて抽出する処理と、 検索条件として指定された属性値が文字列であった場合
    に該文字列から抽出された少なくとも1つの部分文字列
    によって前記所定の文字数の部分文字列をキーの1つと
    するマルチキーインデックスの探索を行い、前記各部分
    文字列毎の前記マルチキーインデックスの探索結果とな
    ったエントリのうちすべての部分文字列についての探索
    結果に含まれるエントリを前記検索条件を満たすエント
    リとする処理とをコンピュータに実行させるためのプロ
    グラムをさらに記録した請求項13から16のいずれか
    1項記載の機械読み取り可能な記録媒体。
  18. 【請求項18】 利用者から属性となっている文字列の
    更新要求があった場合に前記文字列から抽出された部分
    文字列のうちの探索結果が同一になる部分文字列につい
    てはキー併合を行って該部分文字列が指すエントリの識
    別子を格納する場所を同一とする処理をコンピュータに
    実行させるためのプログラムをさらに記録した請求項1
    7記載の機械読み取り可能な記録媒体。
JP2000039682A 2000-02-17 2000-02-17 ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体 Expired - Fee Related JP3752945B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000039682A JP3752945B2 (ja) 2000-02-17 2000-02-17 ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000039682A JP3752945B2 (ja) 2000-02-17 2000-02-17 ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2001229060A true JP2001229060A (ja) 2001-08-24
JP3752945B2 JP3752945B2 (ja) 2006-03-08

Family

ID=18563209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000039682A Expired - Fee Related JP3752945B2 (ja) 2000-02-17 2000-02-17 ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体

Country Status (1)

Country Link
JP (1) JP3752945B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004010334A1 (en) * 2002-07-23 2004-01-29 Samsung Electronics Co., Ltd. Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
WO2004010335A1 (en) * 2002-07-23 2004-01-29 Samsung Electronics Co., Ltd. Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
WO2004010333A1 (en) * 2002-07-23 2004-01-29 Samsung Electronics Co., Ltd. Encoded multi-key index data stream structure
AU2004202364B2 (en) * 2002-07-23 2004-09-16 Samsung Electronics Co., Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
AU2004202360B2 (en) * 2002-07-23 2004-09-16 Samsung Electronics Co., Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
AU2004202362B2 (en) * 2002-07-23 2004-09-16 Samsung Electronics Co., Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
AU2004202361B2 (en) * 2002-07-23 2004-09-16 Samsung Electronics Co., Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
WO2011004846A1 (ja) * 2009-07-07 2011-01-13 日本電気株式会社 情報検索システム、情報管理装置、情報検索方法、情報管理方法、及び、記録媒体
JP2012190078A (ja) * 2011-03-08 2012-10-04 Fujitsu Ltd 処理装置、分散処理システム、及び処理プログラム
CN108572953A (zh) * 2017-03-07 2018-09-25 上海颐为网络科技有限公司 一种词条结构的合并方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04250568A (ja) * 1991-01-25 1992-09-07 Casio Comput Co Ltd レコード検索装置
JPH07129450A (ja) * 1993-01-07 1995-05-19 Internatl Business Mach Corp <Ibm> 区分されたオブジェクトのデータベースの多層索引構造を生成する方法及びシステム
JPH09223159A (ja) * 1996-02-16 1997-08-26 Nec Corp 複合オブジェクト集合に対するデータベースアクセス方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04250568A (ja) * 1991-01-25 1992-09-07 Casio Comput Co Ltd レコード検索装置
JPH07129450A (ja) * 1993-01-07 1995-05-19 Internatl Business Mach Corp <Ibm> 区分されたオブジェクトのデータベースの多層索引構造を生成する方法及びシステム
JPH09223159A (ja) * 1996-02-16 1997-08-26 Nec Corp 複合オブジェクト集合に対するデータベースアクセス方式

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003281658C1 (en) * 2002-07-23 2005-02-24 Samsung Electronics Co., Ltd. Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
US7979437B2 (en) 2002-07-23 2011-07-12 Samsung Electronics Co., Ltd. Method of searching an index structure for TV-anytime forum metadata having location information expressed as a code for defining a key
WO2004010334A1 (en) * 2002-07-23 2004-01-29 Samsung Electronics Co., Ltd. Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
AU2003281658B2 (en) * 2002-07-23 2004-07-08 Samsung Electronics Co., Ltd. Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
GB2397405A (en) * 2002-07-23 2004-07-21 Samsung Electronics Co Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
GB2397406A (en) * 2002-07-23 2004-07-21 Samsung Electronics Co Ltd Index structure of metadata, method for providing indices of metatdata, and metadata searching method and apparatus using the indices of metadata
AU2004202364B2 (en) * 2002-07-23 2004-09-16 Samsung Electronics Co., Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
AU2004202360B2 (en) * 2002-07-23 2004-09-16 Samsung Electronics Co., Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
AU2003281657B2 (en) * 2002-07-23 2004-09-16 Samsung Electronics Co., Ltd. Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
AU2004202362B2 (en) * 2002-07-23 2004-09-16 Samsung Electronics Co., Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
AU2004202361B2 (en) * 2002-07-23 2004-09-16 Samsung Electronics Co., Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
GB2400955A (en) * 2002-07-23 2004-10-27 Samsung Electronics Co Ltd Encoded multi-key index data stream structure
GB2397405B (en) * 2002-07-23 2004-12-15 Samsung Electronics Co Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
GB2397406B (en) * 2002-07-23 2005-02-09 Samsung Electronics Co Ltd Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
WO2004010333A1 (en) * 2002-07-23 2004-01-29 Samsung Electronics Co., Ltd. Encoded multi-key index data stream structure
AU2003281657B9 (en) * 2002-07-23 2005-09-08 Samsung Electronics Co., Ltd. Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
WO2004010335A1 (en) * 2002-07-23 2004-01-29 Samsung Electronics Co., Ltd. Index structure of metadata, method for providing indices of metadata, and metadata searching method and apparatus using the indices of metadata
US7343381B2 (en) 2002-07-23 2008-03-11 Samsung Electronics Co., Ltd. Index structure for TV-Anytime Forum metadata having location information for defining a multi-key
CN100401290C (zh) * 2002-07-23 2008-07-09 三星电子株式会社 使用元数据的索引的元数据搜索方法和装置
US7428553B2 (en) 2002-07-23 2008-09-23 Samsung Electronics Co., Ltd. Method of providing an index structure for TV-anytime forum metadata having location information for defining a multi-key
US7444357B2 (en) 2002-07-23 2008-10-28 Samsung Electronics Co., Ltd. Method and apparatus for searching an index structure for TV-Anytime Forum metadata having location information for defining a multi-key
US8307009B2 (en) 2002-07-23 2012-11-06 Samsung Electronics Co., Ltd. Index structure for TV-anytime forum metadata having location information for defining a multi-key
GB2400955B (en) * 2002-07-23 2005-11-16 Samsung Electronics Co Ltd Encoded multi-key index data stream structure
US20120109990A1 (en) * 2009-07-07 2012-05-03 Nec Corporation Information search system, information management device, information search method, information management method, and recording medium
CN102473185A (zh) * 2009-07-07 2012-05-23 日本电气株式会社 信息搜索***、信息管理设备、信息搜索方法、信息管理方法、以及记录介质
WO2011004846A1 (ja) * 2009-07-07 2011-01-13 日本電気株式会社 情報検索システム、情報管理装置、情報検索方法、情報管理方法、及び、記録媒体
JP5267670B2 (ja) * 2009-07-07 2013-08-21 日本電気株式会社 情報検索システム、情報管理装置、情報検索方法、情報管理方法、及び、記録媒体
CN102473185B (zh) * 2009-07-07 2014-02-26 日本电气株式会社 信息搜索***、信息管理设备、信息搜索方法、信息管理方法、以及记录介质
JP2012190078A (ja) * 2011-03-08 2012-10-04 Fujitsu Ltd 処理装置、分散処理システム、及び処理プログラム
CN108572953A (zh) * 2017-03-07 2018-09-25 上海颐为网络科技有限公司 一种词条结构的合并方法
CN108572953B (zh) * 2017-03-07 2023-06-20 上海颐为网络科技有限公司 一种词条结构的合并方法

Also Published As

Publication number Publication date
JP3752945B2 (ja) 2006-03-08

Similar Documents

Publication Publication Date Title
US7558802B2 (en) Information retrieving system
JP4866495B2 (ja) データベースシステムにおいて結合質問を実行する方法及び装置
JP4045399B2 (ja) 構造化文書管理装置及び構造化文書管理方法
US8161371B2 (en) Method and system for defining a heirarchical structure
WO2018064962A1 (zh) 数据存储方法、电子设备和计算机非易失性存储介质
JP3914662B2 (ja) データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体
CN102893281A (zh) 信息搜索设备、信息搜索方法、计算机程序和数据结构
JP3752945B2 (ja) ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体
JPH04260945A (ja) ファイル・アクセス装置及びファイル・アクセス方法
JP2008065716A (ja) データ管理装置、データ管理方法及びデータ管理プログラム
JPH08235040A (ja) データファイル管理システム
US7822736B2 (en) Method and system for managing an index arrangement for a directory
JP4825504B2 (ja) データ登録・検索システムおよびデータ登録・検索方法
JP4112282B2 (ja) 関係データベース構築装置および方法
JP4219125B2 (ja) 全文検索装置、全文検索方法、プログラム、及び記録媒体
CN111737267A (zh) 基于HBase的索引***及查询加速方法
JP2000242538A (ja) ディレクトリ検索システム、ディレクトリ検索方法およびディレクトリ検索用プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002140218A (ja) データ処理方法、コンピュータ読み取り可能な記録媒体及びデータ処理装置
JP3980326B2 (ja) データ管理方法およびコンピュータ読み取り可能な記録媒体
JPH0934906A (ja) 図書管理装置
JPH04348468A (ja) データベース装置
JPS59146339A (ja) 情報検索方式
JP3498926B2 (ja) 文書データベース管理システム
JPH041855A (ja) 文書図面管理システム
JPH04250568A (ja) レコード検索装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041117

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041119

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050106

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050106

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051205

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111222

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111222

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121222

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121222

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131222

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees