JP2004110216A - 検索装置および方法 - Google Patents

検索装置および方法 Download PDF

Info

Publication number
JP2004110216A
JP2004110216A JP2002269347A JP2002269347A JP2004110216A JP 2004110216 A JP2004110216 A JP 2004110216A JP 2002269347 A JP2002269347 A JP 2002269347A JP 2002269347 A JP2002269347 A JP 2002269347A JP 2004110216 A JP2004110216 A JP 2004110216A
Authority
JP
Japan
Prior art keywords
records
key
search
record
subtree
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.)
Pending
Application number
JP2002269347A
Other languages
English (en)
Inventor
Shigehisa Kawabe
川邉 惠久
Ayumi Seki
瀬木 歩
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2002269347A priority Critical patent/JP2004110216A/ja
Publication of JP2004110216A publication Critical patent/JP2004110216A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】範囲検索時にヒット件数を簡易に取得する。
【解決手段】開始キー順位算出部13は、開始キーを基づいて中間ノードを辿り、対応する件数管理情報を累積してリーフノードに到達したときのレコードの順位を求め、さらにリーフノードを水平検索する。開始キーを含むレコードに到達したときにそのレコードに至るまでの水平検索時のレコード数を求め、これをリーフノードに到達したときのレコードの順位に足して開始キーを含むレコードの順位(Nstart)を求める。終了キー順位算出部13も同様に終了キーを含むレコードの順位(Nend)を求める。レコード数算出部15は、開始キー順位算出部13のNstart出力および終了キー順位算出部14のNend出力に基づいて検索範囲に含まれるキーを持つレコードの総数を算出する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
この発明は、B+ツリー構造を用いた検索技術に関し、とくに、B+ツリー構造中に、件数を管理する情報を追加し、指定したキーの範囲にヒットするレコード数を、検索結果と同時に得ることができるようにしたものである。
【0002】
【従来の技術】
サーチエンジンなどを具現化するために、語をキーとして、文書IDを検索する索引を構成する。その際に、指定した語に対する、検索結果として、文書のリストだけでなく、検索結果件数を表示することが求められる。なぜならば、通常、ヒットした文書のリストは、限定された件数しか表示されないので、リストに表示された件数が、検索結果全体の内のどの程度かを知ることが重要であるからである。
【0003】
このためには、語の索引を用意し、指定した語を含む文書が何件あるかを管理する方法があるが、この方式では、語から検索結果を得る為に、語の索引と、文書の索引の両方を検索しなければならず、検索時間が増大する。
【0004】
【発明が解決する課題】
この発明は、以上の事情を考慮してなされたものであり、検索結果の件数を知るための索引を別途検索することなしに、検索結果の件数を知ることができる検索技術を提供することを目的としている。
【0005】
【課題を解決するための手段】
この発明によれば、上述の目的を達成するために、特許請求の範囲に記載のとおりの構成を採用している。ここでは、発明を詳細に説明するのに先だって、特許請求の範囲の記載について補充的に説明を行なっておく。
【0006】
まず、この発明の原理的な説明を行う。
【0007】
この発明の原理的な構成においては、文書の索引のB+ツリー構造中に、各ノード以下に含まれる文書数を格納するように、構成する。そして、検索と同時に、検索結果件数が得られるようし、検索時間を半減させる。
【0008】
改良されたB+ツリー構造では、例えば、所定のノードから分岐するサブツリーのリーフ中に格納されるレコード数(文書数)を、サブツリーに対応つけて格納する。
【0009】
また、他の態様の改良されたB+ツリー構造では、所定のノードから分岐する最初のサブツリーから当該サブツリーに至るまでのすべてのサブツリーのリーフ中に格納されるレコード数を、当該サブツリーに対応つけて格納する。
【0010】
検索範囲を指定した検索において、範囲の開始キーと最終キーを検索キーとして、それぞれ、以下のステップで検索を行なう。検索キーと一致するものがない場合は、検索範囲に含まれ、かつ検索キーに最も近いキーを持つレコードに位置づけることにする。下記ステップにて、ルートからリーフへ順にノードを選択してツリーを下るステップを垂直探索(垂直検索)と呼ぶ。また、リーフノードの中から指定したキーを持つレコードを選択するステップを水平探索(水平検索)と呼ぶ。
【0011】
[ステップ1]:順位数を0に設定する。
[ステップ2]:B+ツリー構造のルートを得る。
[ステップ3]:キーを選択する。
[ステップ4]:選択したキーの左側(小さい側)に隣接するキーに対応つけられたレコード数を順位数に足す。選択したノードが最左端(LEFT)であれば、順位数には0を加える。
[ステップ5]:指定したノードがリーフになるまで、ステップ3とステップ4とを実施する。
[ステップ6]:リーフノードの場合、指定したキーを持つレコードを選択する。
[ステップ7]:リーフノード中のレコードの順位を、順位数に加える。
【0012】
つぎに、開始キーに対する順位数(Nstartとする)と、最終キーに対する順位数(Nendとする)とから、ヒット件数を計算する。最終キーと一致するレコードがあった場合は、ヒット件数は、Nend−Nstart+1として、計算される。最終キーに一致するレコードが無い場合は、ヒット件数は、Nend−Nstartとして、計算される。
【0013】
以上の構成をとることで、ヒット件数を管理する目的で語索引を保持する必要が無いばかりでなく、語索引を検索し、件数を得るという余計な処理がなくなり、高速に検索ができる。
【0014】
さらにこの発明を説明する。
【0015】
この発明の一側面によれば、検索装置において、(i)B+ツリー構造のノードから分岐するサブツリーの各々について最初のサブツリーから当該サブツリーの直前のサブツリーまでのリーフに含まれるレコードの総数を管理情報として当該ノードに保持し、(ii)検索範囲を規定する開始キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前で隣接するサブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記開始キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記開始キーを含むレコードに至るまでの、または開始キーを含むレコードがない場合には、上記検索範囲に含まれて上記開始キーに最も近いキーを含むレコードまでの、第1のレコード数を決定し、(iii)上記検索範囲を規定する終了キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前で隣接するサブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記終了キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記終了キーを含むレコードに至るまでの、または終了キーを含むレコードがない場合には、上記検索範囲に含まれて上記終了キーに最も近いキーを含むレコードに至るまでの、第2のレコード数を決定し、(iv)決定した第2のレコード数に対する、決定した第1のレコード数の差分に基づいて検索範囲に該当するレコードの総数を決定する。
【0016】
この構成においては、B+ツリー構造中のレコード数に関する情報に基づいてB+ツリー構造の検索時にヒット件数を計算できる。この例では、ノードから分岐するサブツリーの各々について最初のサブツリーから当該サブツリーの直前のサブツリーまでのリーフに含まれるレコードの総数を当該サブツリーの直前のサブツリーに関連づけて管理情報として保持しているので、予め、最初のサブツリーから当該サブツリーの直前までのリーフに含まれるレコードを累積して求めてあるので、検索時にそのような累積を行う必要がなく高速な処理が可能である。
【0017】
また、この発明の他の側面によれば、検索装置において、(i)B+ツリー構造のノードから分岐するサブツリーの各々について当該リーフに含まれるレコードの個数を管理情報として当該ノードに保持し、(ii)検索範囲を規定する開始キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前のサブツリーまでのリーフに含まれるレコードを上記管理上情報に基づいて順次に累積し、上記開始キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記開始キーを含むレコードに至るまでの、または開始キーを含むレコードがない場合には、上記検索範囲に含まれて上記開始キーに最も近いキーを含むレコードまでの、第1のレコード数を決定し、(iii)上記検索範囲を規定する終了キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前のサブツリーまでのリーフに含まれるレコードを順次に上記管理情報に基づいて累積し、上記終了キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記終了キーを含むレコードに至るまでの、または終了キーを含むレコードがない場合には、上記検索範囲に含まれて上記終了キーに最も近いキーを含むレコードに至るまでの、第2のレコード数を決定し、(iv)決定した第2のレコード数に対する、決定した第1のレコード数の差分に基づいて検索範囲に該当するレコードの総数を決定する。
【0018】
この構成においても、B+ツリー構造中のレコード数に関する情報に基づいてB+ツリー構造の検索時にヒット件数を計算できる。この例では、検索時に、ノードから分岐するサブツリーの各々について最初のサブツリーから当該サブツリーの直前のサブツリーまでのリーフに含まれるレコードの総数を累積する。その分処理負荷が大きくなるが、B+ツリーを作成する時にそのような累積処理を行う必要がない。
【0019】
なお、この発明は装置またはシステムとして実現できるのみでなく、方法としても実現可能である。また、そのような発明の一部をソフトウェアとして構成することができることはもちろんである。またそのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品もこの発明の技術的な範囲に含まれることも当然である。
【0020】
この発明の上述の側面およびこの発明の他の側面は特許請求の範囲に記載され、以下実施例を用いて詳細に説明される。
【0021】
【発明の実施の形態】
以下、この発明の実施例の検索システムについて説明する。
【0022】
図1は、実施例の検索システムを模式的に示しており、この図において、検索システムは、検索キー入力部10、検索部11、インデクス保持部12、開始キー順位算出部13、終了キー順位算出部14、レコード数算出部15等を含んで構成されている。
【0023】
検索キー入力部10は、検索範囲を指定する開始キーおよび終了キーを入力する。検索部11は、開始キーおよび終了キーについてそれぞれインデクス保持部12のB+ツリー構造を参照して検索を行い、「開始キーを含むレコード」(開始キーを含むレコードがない場合には検索範囲において最も開始キーに近いキーを含むレコード。以下同様)および「終了キーを含むレコード」(開始キーを含むレコードがない場合には検索範囲において最も開始キーに近いキーを含むレコード。以下同様)を位置決めし、この後、「開始キーを含むレコード」から「終了キーを含むレコード」に水平検索を行い、検索範囲のキーを含む値(例えば文書ID)を取り出し、検索結果として出力する。この場合、検索結果が多数に上るときには、検索を所望数のレコードまでで取りやめるようにすることが多い。
【0024】
インデクス保持部12に保持されているB+ツリー構造は、例えば、図2に示すように、管理ノード、中間ノードおよびリーフノードにより記述される。管理ノードは、図3に示すように、複数のB+ツリーを管理する。各B+ツリーはスキーマによりキー、バリュー等のバイト数等が規定される。管理ノードにより、検索キーが対応するB+ツリーに振り分けられる。中間ノードは、分岐を制御するキーと分岐する下位ノード(サブツリー)が規定される。また、この実施例に特有の構成として、各下位ノードについてそのサブツリーのリーフノードに属するレコードの数を件数管理情報として保持している。リーフノードは図4に示すようにキーとバリュー(例えば文書ID)との複数の対を含んでいる。リーフノードは、中間ノードにおいて分岐を制御するキーについても、そのキーとバリューとの対を含んでいる。また、つぎのリーフノードへのポインタも含まれ、いわゆる水平検索を行える。
【0025】
検索に際しては、図6に示すように、管理ノードによりB+ツリーが決定され、そのルートノードから中間ノードを沿って垂直検索が行われ、リーフノードに当直した後、水平検索が行われる。
【0026】
ここで、図7を用いて、中間ノードの件数管理情報について説明する。図7において、中間ノードは、第1段目の中間ノード(管理ノードのつぎのノード)を例にすると、キー「LEFT」、K(0)、K(0)、K(0)、・・・により下位ノード(サブツリー)に分岐する。「K(0)」は第1段目のキーであることを示す。第n段目の中間ノードのキーは同様に「K(n−1)」で表す。「LEFT」からK(0)1までの範囲のキーが分岐する下位ノード(サブツリー)のリーフノードに格納されるレコードの数R(0)を、下位ノード0の件数管理情報にストアする。K(0)からK(0)までの範囲のキーが分岐する下位ノード(サブツリー)のリーフノードに格納されるレコードの数r(0)を求め、これにその前の下位ノードのレコードの数(この場合R0)を足して、R(0)=R(0)+r(0)を得、下位ノード1の件数管理情報に格納する。キーK(0)からキーK(0)N+1までの範囲のキーが分岐する下位ノードNのリーフノードに格納されるレコードr(0)を求め、これにその直前の下位ノードN−1の件数管理情報(R(0)N−1)を足して、下位ノードNの件数管理情報R(0)=R(0)N−1+r(0)を得る。同様に最後の下位ノードまで、件数管理情報を取得して管理する。
【0027】
開始キーおよび終了キーを用いて検索するときに、中間ノードの件数管理情報を用いてリーフノードに到達した時点の順位を求めることができる。すなわち、順次辿っていく中間ノードにおいて、つぎに辿る下位の中間ノードを決定する。このとき、その左側の中間ノードの件数管理情報を求める。つぎに辿る中間ノードでも同様にし、この操作をリーフノードに至るまで繰り返す。例えば、第1段から第N段のそれぞれのキーK(0)、K(1)、K(2)、・・・、K(N−1)を辿っていくとすると、中間ノード0のキー(下位のノードまたはサブツリー。以下同様)K(0)A−1の件数管理情報R(0)A−1、中間ノード1のキーK(1)B−1の件数管理情報R(1)B−1、中間ノード2のキーK(2)C−1の件数管理情報R(2)C−1、・・・中間ノード(N−1)のキーK(N−1)D−1の件数管理情報R(N−1)D−1を累積してリーフノードに到達したときレコードの順位を得ることができる。
【0028】
なお、後述するように、中間ノードの件数管理情報としてそのサブツリーに含まれるレコードの総数(その左側の件数を含まない)を用いてもよい。この場合、辿る中間ノードのキーにおいて、その左側のキーの件数管理情報を累積するようにすれば、同様な操作となる。
【0029】
図1に戻る。
【0030】
開始キー順位算出部13は、上述のとおり、開始キーを基づいて中間ノードを辿り、対応する件数管理情報を累積してリーフノードに到達したときのレコードの順位を求め、さらにリーフノードを水平検索する。開始キーを含むレコードに到達したときにそのレコードに至るまでの水平検索時のレコード数を求め、これをリーフノードに到達したときのレコードの順位に足して開始キーを含むレコード(開始キーを含むレコードがない場合には、検索範囲に含まれて開始キーに最も近いキーを含むレコード)の順位(Nstart)を求める。
【0031】
終了キー順位算出部13も同様である。すなわち、終了キー順位算出部13は、終了キーに基づいて中間ノードを辿り、対応する件数管理情報を累積してリーフノードに到達したときのレコードの順位を求め、さらにリーフノードを水平検索する。終了キーを含むレコードに到達したときにそのレコードに至るまでの水平検索時のレコード数を求め、これをリーフノードに到達したときのレコードの順位に足して終了キーを含むレコード(開始キーを含むレコードがない場合には、検索範囲に含まれて開始キーに最も近いキーを含むレコード)の順位(Nend)を求める。
【0032】
レコード数算出部15は、開始キー順位算出部13のNstart出力および終了キー順位算出部14のNend出力に基づいて検索範囲に含まれるキーを持つレコードの総数を算出する。終了キーを含むレコードが有る場合には、そのレコードの総数はNend−Nstart+1であり、終了キーを含むレコードがない場合には、そのレコードの総数はNend−Nstartである。
【0033】
図8は、この実施例の動作を示している。図8においては、語および文書IDを用いて範囲検索における検索範囲のレコード(文書)の総数を算出する。総数の算出の処理は以下のとおりである。なお、検索者が語を入力すると、文書IDの範囲が自動的に0x3000(16進数表示)から0x3fffとされる。
【0034】
[ステップS10]:検索範囲を受け取る。
[ステップS11]:B+ツリーを決定する。
[ステップS12]:開始キーを検索キーとする。
[ステップS13]:検索キーが該当するキーを、選択する
[ステップS14]:順位算出ルーチンを実施する。図9参照。
[ステップS15]:順位算出ルーチンで取得した順位をNstartとする。。
[ステップS16]:終了キーを検索キーとする。
[ステップS17]:順位算出ルーチンを実施する。
[ステップS18]:順位算出ルーチンで取得した順位をNendとする。
[ステップS19]:終了キーに該当するレコードがあるか。あればステップS20ヘ進み、なければステップS21へ進む。
[ステップS20]:検索範囲の件数をNend−Nstart+1で算出する。
[ステップS21]:検索範囲の件数をNend−Nstartで算出する。
【0035】
順位算出ルーチンはつぎのとおりである。
【0036】
[ステップS30]:順位を0にリセットする。
[ステップS31]:中間ノードにおいて検索キーが該当するキーの左のキーの件数管理情報を順位に累積する。
[ステップS32]:検索キーが該当するキーの下位のノードに進む。
[ステップS33]:ノードが中間ノードかリーフノードかを判別する。中間ノードであれば、ステップS31に戻る。リーフノードであればステップS34に進む。
[ステップS34]:リーフノードに到達したときのレコードから検索キーに対応するキーのレコードまで水平検索で辿る。
[ステップS35]:水平検索で辿ったレコードの数を上述の順位に累積する。
【0037】
なお、中間ノードの件数管理情報としてそのサブツリーのリーフノードのレコードの総数を用いる場合には、図9の処理に変えて図10の処理を行う。
【0038】
[ステップS40]:順位を0にリセットする。
[ステップS41]:中間ノードにおいて、最初のキーから、検索キーが該当するキーの左のキーまでの件数管理情報を加算し、順位に累積する。
[ステップS42]:検索キーが該当するキーの下位のノードに進む。
[ステップS43]:ノードが中間ノードかリーフノードかを判別する。中間ノードであれば、ステップS41に戻る。リーフノードであればステップS44に進む。
[ステップS44]:リーフノードに到達したときのレコードから検索キーに対応するキーのレコードまで水平検索で辿る。
[ステップS45]:水平検索で辿ったレコードの数を順位に累積する。
【0039】
なお、上述では語と文書IDで検索範囲を指定したが、語のみで検索範囲を指定することもできる。
【0040】
また、上述実施例では、図1において模式的な構成を示したが、図11に示すようなイントラネット環境で実装することができる。この例では、ウェブサーバ100、アプリケーションサーバ101、検索システム102、ディレクトリサーバ103等で検索サービスを提供する。検索システム102は図1で示したような機能を実現するものであり、インデクス保持部104を有する。クライアント端末105からウェブサーバ100にアクセスし、検索要求を検索システム102に送り、上述のとおりの検索を行い、検索結果の一部のリストと、そのレコードの総数とをウェブサーバ100がクライアント端末105に返す。ユーザはレコードの総数を確かめながらリストの内容を評価し、適宜、リスト用いて必要な文書を取得する。図11では、記録媒体106を用いて検索システム102に上述の処理を実行するプログラムをインストールしている。もちろんネットワーク107等を介してプログラムをダウンロードしてインストールしてもよい。なお、108はルータ、109はLANである。
【0041】
【発明の効果】
以上説明したように、この発明によれば、語の索引を別途用いることなく、キーの検索時にそれに該当するレコードの件数を簡易に求めることができる。
【図面の簡単な説明】
【図1】この発明の実施例の検索システムを模式的に示すブロック図である。
【図2】上述実施例のB+ツリー構造を説明する図である。
【図3】上述実施例のB+ツリー構造の管理ノードを説明する図である。
【図4】上述実施例のB+ツリー構造の中間ノードを説明する図である。
【図5】上述実施例のB+ツリー構造のリーフノードを説明する図である。
【図6】上述実施例の検索の態様を説明する図である。
【図7】上述実施例の件数管理情報を説明する図である。
【図8】上述実施例の検索範囲のレコードの件数を算出する動作を説明するフローチャートである。
【図9】図8の順位算出ステップのサブルーチンを説明するフローチャートである
【図10】図9の他の例を説明するフローチャートである。
【図11】上述実施例のイントラネット環境における実装例を説明する図である。
【符号の説明】
10   検索キー入力部
11   検索部
12   インデクス保持部
13   開始キー順位算出部
13   終了キー順位算出部
14   終了キー順位算出部
15   レコード数算出部
100   ウェブサーバ
101   アプリケーションサーバ
102   検索システム
103   ディレクトリサーバ
104   インデクス保持部
105   クライアント端末
106   記録媒体
107   ネットワーク
108   ルータ
109   LAN

Claims (7)

  1. B+ツリー構造のノードから分岐するサブツリーの各々について当該ノードの最初のサブツリーから当該サブツリーに直前で隣接するサブツリーまでのリーフに含まれるレコードの総数を管理情報として当該サブツリーのリンク情報に関連づけて当該ノードに保持し、
    検索範囲を規定する開始キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前で隣接するサブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記開始キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記B+ツリー構造の最初のレコードから上記開始キーを含むレコードに至るまでの、または開始キーを含むレコードがない場合には、上記検索範囲に含まれて上記開始キーに最も近いキーを含むレコードまでの、第1のレコード数を決定し、
    上記検索範囲を規定する終了キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前で隣接するサブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記終了キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記B+ツリー構造の最初のレコードから上記終了キーを含むレコードに至るまでの、または終了キーを含むレコードがない場合には、上記検索範囲に含まれて上記終了キーに最も近いキーを含むレコードに至るまでの、第2のレコード数を決定し、
    決定した第2のレコード数に対する、決定した第1のレコード数の差分に基づいて検索範囲に該当するレコードの総数を決定することを特徴とする検索装置。
  2. 上記ノードから分岐するサブツリーの各々について、当該サブツリーと、当該最初のサブツリーから当該サブツリーまでのリーフに含まれるレコードの総数とを関連づけて保持し、上記上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーに直前で隣接するサブツリーに関連づけられるレコードの総数を取得して順次累積する請求項1記載の検索装置。
  3. 上記ノードから分岐するサブツリーの各々について、当該サブツリーと、当該最初のサブツリーから当該サブツリーに直前で隣接するサブツリーまでのリーフに含まれるレコードの総数とを関連づけて保持し、上記上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーに関連づけられるレコードの総数を取得して順次累積する請求項1記載の検索装置。
  4. B+ツリー構造のノードから分岐するサブツリーの各々について当該サブツリーのリーフに含まれるレコードの個数を管理情報として当該ノードに保持し、
    検索範囲を規定する開始キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの兄弟に位置するサブツリーのうち先頭から直前で隣接するサブツリーまでのリーフに含まれるレコード数の和を上記管理上情報に基づいて順次に累積し、上記開始キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記B+ツリー構造の最初のレコードから上記開始キーを含むレコードに至るまでの、または開始キーを含むレコードがない場合には、上記検索範囲に含まれて上記開始キーに最も近いキーを含むレコードまでの、第1のレコード数を決定し、
    上記検索範囲を規定する終了キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの兄弟に位置するサブツリーのうち先頭から直前で隣接するサブツリーまでのリーフに含まれるレコード数の和を順次に上記管理情報に基づいて累積し、上記終了キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記B+ツリー構造の最初のレコードから上記終了キーを含むレコードに至るまでの、または終了キーを含むレコードがない場合には、上記検索範囲に含まれて上記終了キーに最も近いキーを含むレコードに至るまでの、第2のレコード数を決定し、
    決定した第2のレコード数に対する、決定した第1のレコード数の差分に基づいて検索範囲に該当するレコードの総数を決定することを特徴とする検索装置。
  5. B+ツリー構造のノードから分岐するサブツリーの各々について最初のサブツリーから当該サブツリーに直前で隣接するサブツリーまでのリーフに含まれるレコードの総数を管理情報として当該サブツリーのリンク情報に関連付けて当該ノードに保持させ、上記管理情報を用いて検索範囲に該当するレコードの総数を決定する検索方法において、
    検索範囲を規定する開始キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前で隣接するサブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記開始キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記B+ツリー構造の最初のレコードから上記開始キーを含むレコードに至るまでの、または開始キーを含むレコードがない場合には、上記検索範囲に含まれて上記開始キーに最も近いキーを含むレコードまでの、第1のレコード数を決定するステップと、
    上記検索範囲を規定する終了キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前で隣接するサブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記終了キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記B+ツリー構造の最初のレコードから上記終了キーを含むレコードに至るまでの、または終了キーを含むレコードがない場合には、上記検索範囲に含まれて上記終了キーに最も近いキーを含むレコードに至るまでの、第2のレコード数を決定するステップと、
    決定した第2のレコード数に対する、決定した第1のレコード数の差分に基づいて検索範囲に該当するレコードの総数を決定するステップとを有することを特徴とする検索方法。
  6. B+ツリー構造のノードから分岐するサブツリーの各々について最初のサブツリーから当該サブツリーに直前で隣接するサブツリーまでのリーフに含まれるレコードの総数を管理情報として当該ノードに保持させ、上記管理情報を用いて検索範囲に該当するレコードの総数を決定する検索方法において、
    検索範囲を規定する開始キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前で隣接するサブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記開始キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記B+ツリー構造の最初のレコードから上記開始キーを含むレコードに至るまでの、または開始キーを含むレコードがない場合には、上記検索範囲に含まれて上記開始キーに最も近いキーを含むレコードまでの、第1のレコード数を決定するステップと、
    上記検索範囲を規定する終了キーに対する上記B+ツリー構造の垂直検索時にとおるサブツリーの各々について当該サブツリーの直前で隣接するサブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記終了キーに対する上記B+ツリー構造のリーフノードに含まれるレコードの水平検索時にとおるレコードの数を上記累積した値に加算して、上記B+ツリー構造の最初のレコードから上記終了キーを含むレコードに至るまでの、または終了キーを含むレコードがない場合には、上記検索範囲に含まれて上記終了キーに最も近いキーを含むレコードに至るまでの、第2のレコード数を決定するステップと、
    決定した第2のレコード数に対する、決定した第1のレコード数の差分に基づいて検索範囲に該当するレコードの総数を決定するステップとをコンピュータに実行させるために用いられることを特徴とする検索用コンピュータプログラム。
  7. B+ツリー構造のノードから分岐するサブツリーの各々について最初のサブツリーから当該サブツリーに直前で隣接するサブツリーまでのリーフに含まれるレコードの総数を管理情報として当該ノードに保持し、
    検索範囲を規定する開始キーに対する上記B+ツリー構造の検索時にとおるサブツリーの各々について当該サブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記累積して得た総数合計を利用して、上記B+ツリー構造の最初のレコードから上記開始キーを含むレコードに至るまでの、または開始キーを含むレコードがない場合には、上記検索範囲に含まれて上記開始キーに最も近いキーを含むレコードまでの、第1のレコード数を決定し、
    上記検索範囲を規定する終了キーに対する上記B+ツリー構造の検索時にとおるサブツリーの各々について当該サブツリーに関する上記管理情報のレコードの総数を順次に累積し、上記累積して得た総数合計を利用して、上記B+ツリー構造の最初のレコードから上記終了キーを含むレコードに至るまでの、または終了キーを含むレコードがない場合には、その直前のレコードに至るまでの、第2のレコード数を決定し、
    決定した第2のレコード数に対する、決定した第1のレコード数の差分に基づいて検索範囲に該当するレコードの総数を決定することを特徴とする検索装置。
JP2002269347A 2002-09-17 2002-09-17 検索装置および方法 Pending JP2004110216A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002269347A JP2004110216A (ja) 2002-09-17 2002-09-17 検索装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002269347A JP2004110216A (ja) 2002-09-17 2002-09-17 検索装置および方法

Publications (1)

Publication Number Publication Date
JP2004110216A true JP2004110216A (ja) 2004-04-08

Family

ID=32267294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002269347A Pending JP2004110216A (ja) 2002-09-17 2002-09-17 検索装置および方法

Country Status (1)

Country Link
JP (1) JP2004110216A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040103495A (ko) * 2003-05-30 2004-12-08 마이크로소프트 코포레이션 b-트리를 사용한 위치 액세스
JP2006350770A (ja) * 2005-06-17 2006-12-28 Hitachi Ltd 情報検索装置及び情報検索方法
JP2010262455A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 管理装置、情報生成プログラム、及び情報生成方法
WO2013154247A1 (ko) * 2012-04-13 2013-10-17 연세대학교 산학협력단 수정된 b+트리 노드 검색 방법 및 장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040103495A (ko) * 2003-05-30 2004-12-08 마이크로소프트 코포레이션 b-트리를 사용한 위치 액세스
JP2004362574A (ja) * 2003-05-30 2004-12-24 Microsoft Corp Bツリーを使用した位置アクセス
JP2006350770A (ja) * 2005-06-17 2006-12-28 Hitachi Ltd 情報検索装置及び情報検索方法
JP2010262455A (ja) * 2009-05-01 2010-11-18 Brother Ind Ltd 管理装置、情報生成プログラム、及び情報生成方法
WO2013154247A1 (ko) * 2012-04-13 2013-10-17 연세대학교 산학협력단 수정된 b+트리 노드 검색 방법 및 장치
KR101341507B1 (ko) 2012-04-13 2013-12-13 연세대학교 산학협력단 수정된 b+트리 노드 검색 방법 및 장치

Similar Documents

Publication Publication Date Title
US11907244B2 (en) Modifying field definitions to include post-processing instructions
US7653623B2 (en) Information searching apparatus and method with mechanism of refining search results
US6356899B1 (en) Method for interactively creating an information database including preferred information elements, such as preferred-authority, world wide web pages
JPH11212980A (ja) インデクス作成方法および検索方法
JP2000112981A (ja) ワールドワイドウェブサーバーのウェブページにわたるフルテキストサーチを提供する検索システム及び方法
US20030055834A1 (en) Method and system for supporting multivalue attributes in a database system
JP2004164555A (ja) 検索装置および方法ならびにそのインデクス構築装置および方法
JP6911877B2 (ja) 情報管理装置、情報管理方法及び情報管理プログラム
CN110889023A (zh) 一种elasticsearch的分布式多功能搜索引擎
JP2004110216A (ja) 検索装置および方法
Yadav et al. Parallel crawler architecture and web page change detection
JP5210970B2 (ja) 共通クエリグラフパターン生成方法、共通クエリグラフパターン生成装置及び共通クエリグラフパターン生成プログラム
CN114051162B (zh) 一种基于播放记录的缓存方法及装置
US20140067840A1 (en) System and method for retrieving information
JP2010282402A (ja) 検索システム
JP2015176407A (ja) 検索装置、検索方法、検索用プログラムおよび検索用データ構造
CN104636384A (zh) 一种处理文档的方法及装置
JP2009163772A (ja) 検索システムおよびコンピュータプラグラム
JPH1040255A (ja) ハッシュ表管理装置
JP4675986B2 (ja) 情報共有装置及び情報共有プログラム
JP4119057B2 (ja) 検索システム、検索装置およびプログラムを記録した記録媒体
JP5949764B2 (ja) 構成管理装置、構成管理方法、及び構成管理プログラムを記憶するプログラム記録媒体
EP4198761A1 (en) Branching for tree structure in database system
CN111488544B (zh) 网页相似子元素的确定方法、装置、设备和存储介质
JPH09245042A (ja) 検索支援方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090310