JP2008287533A - カップルドノードツリーの最長一致/最短一致検索方法及びプログラム - Google Patents
カップルドノードツリーの最長一致/最短一致検索方法及びプログラム Download PDFInfo
- Publication number
- JP2008287533A JP2008287533A JP2007132289A JP2007132289A JP2008287533A JP 2008287533 A JP2008287533 A JP 2008287533A JP 2007132289 A JP2007132289 A JP 2007132289A JP 2007132289 A JP2007132289 A JP 2007132289A JP 2008287533 A JP2008287533 A JP 2008287533A
- Authority
- JP
- Japan
- Prior art keywords
- node
- search
- key
- tree
- bit position
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】カップルドノードツリーは、ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対とからなる。ブランチノードは検索キーの弁別ビット位置とリンク先のノード対の一方のノードの位置を示す情報を含み、リーフノードは検索対象のビット列からなるインデックスキーを含む。最長一致/最短一致検索キーを用いてカップルドノードツリーを検索し、検索結果のインデックスキーと最長一致/最短一致検索キーとの差分ビット位置と、検索時に記憶したルートノードからの検索経路上のブランチノードの弁別ビット位置との比較に基づいて、最長一致/最短一致ノードを決定する。
【選択図】図1
Description
上記ビット列の検索を高速に行うために、ビット列を記憶するデータ構造を種々に工夫することが従来から行われている。このようなものの1つとして、パトリシアツリーという木構造が知られている。
ある検索キーで検索を行うとき、ルートノードから順次各ノードに保持される検索キーの検査ビット位置を検査していき、検査ビット位置のビット値が1であるか0であるか判定を行い、1であれば右リンクをたどり、0であれば左リンクをたどる。そして、リンク先のノードの検査ビット位置がリンク元のノードの検査ビット位置より大きくなければ、すなわち、リンク先が下方でなく上方に戻れば(図13において点線で示されたこの逆戻りのリンクをバックリンクという)、リンク先のノードのインデックスキーと検索キーの比較を行う。比較の結果、等しければ検索成功であり、等しくなければ検索失敗であることが保証されている。
は前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含むカップルドノードツリーを用いたビット列検索を提案した。
、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索の結果である検索結果キーとするように構成されている。
最初に、本出願人により先の上記出願において提案された、本発明の前提となるカップルドノードツリーについて、カップルドノードツリーを配列に格納する例を説明する。ブランチノードが保持するリンク先の位置を示すデータとして、記憶装置のアドレス情報とすることもできるが、ブランチノードあるいはリーフノードのうち占有する領域の記憶容量の大きい方を格納可能な配列要素からなる配列を用いることにより、ノードの位置を配列番号で表すことができ、位置情報の情報量を削減することができる。
図1を参照すると、ノード101が配列100の配列番号10の配列要素に配置されている。ノード101はノード種別102、弁別ビット位置103及び代表ノード番号10
4で構成されている。ノード種別102は0であり、ノード101がブランチノードであることを示している。弁別ビット位置103には1が格納されている。代表ノード番号104にはリンク先のノード対の代表ノードの配列番号20が格納されている。なお、以下では表記の簡略化のため、代表ノード番号に格納された配列番号を代表ノード番号ということもある。また、代表ノード番号に格納された配列番号をそのノードに付した符号あるいはノード対に付した符号で表すこともある。
ノード[0]112、ノード[1]113、ノード122、及びノード123の格納された配列要素にそれぞれ付された0あるいは1は、検索キーで検索を行う場合にノード対のどちらのノードにリンクするかを示すものである。前段のブランチノードの弁別ビット位置にある検索キーのビット値である0か1を代表ノード番号に加えた配列番号のノードにリンクする。
図2は、カップルドノードツリーのツリー構造を概念的に示す図である。図示の6ビットのインデックスキーは、図13に例示されたパトリシアツリーのものと同じである。
ツリー構造としては、ルートノード210aの下にノート対201bが、その下層にノード対201cとノード対201fが配置され、ノード対201fの下層にはノード対201hとノード対201gが配置されている。ノード対201cの下にはノード対201dが、さらにその下にはノード対201eが配置されている。
まず、ビット列“100010”を検索キーとしてルートノード210aから処理をス
タートする。ルートノード210aの弁別ビット位置230aは0であるので、検索キー“100010”の弁別ビット位置が0のビット値をみると1である。そこで代表ノード番号の格納された配列番号220aに1を加えた配列番号の配列要素に格納されたノード211bにリンクする。ノード211bの弁別ビット位置231bには2が格納されているので、検索キー“100010”の弁別ビット位置が2のビット値をみると0であるから、代表ノード番号の格納された配列番号221bの配列要素に格納されたノード210fにリンクする。
カップルドノードツリーの構成はインデックスキーの集合により規定される。図2の例で、ルートノード210aの弁別ビット位置が0であるのは、図2に例示されたインデックスキーに0ビット目が0のものと1のものがあるからである。0ビット目が0のインデックスキーのグループはノード210bの下に分類され、0ビット目が1のインデックスキーのグループはノード211bの下に分類されている。
そして2ビット目が1であるインデックスキーは3ビット目の異なるものがあるのでノード211fの弁別ビット位置には3が格納され、2ビット目が0であるインデックスキーでは3ビット目も4ビット目も等しく5ビット目で異なるのでノード210fの弁別ビット位置には5が格納される。
そしてさらにいえば、異なるビット値となるビット位置ごとにビット値が“1”のノードとビット値が“0”のノードとに分岐していることから、ノード[1]側とツリーの深さ方向を優先させてリーフノードをたどると、それらに格納されたインデックスキーは、ノード211hのインデックスキー251hの“101100”、ノード210hのインデックスキー250hの“101011”、・・・、ノード210cのインデックスキー250cの“000111”となり降順にソートされている。
検索キーで検索するときはインデックスキーがカップルドノードツリー上に配置されたルートをたどることになり、例えば検索キーが“101100”であればノード211hに到達することができる。また、上記説明からも想像がつくように、“101101”か“101110”を検索キーとした場合でもノード211hにたどり着き、インデックスキー251hと比較することにより検索が失敗したことが分かる。
本発明の検索装置による検索処理及びデータメンテナンスは中央処理装置302及びキャッシュメモリ303を少なくとも備えたデータ処理装置301によりデータ格納装置308を用いて実施される。カップルドノードツリーが配置される配列309と検索中にたどるノードが格納された配列要素の配列番号を記憶する探索経路スタック310を有するデータ格納装置308は、主記憶装置305または外部記憶装置306で実現することができ、あるいは通信装置307を介して接続された遠方に配置された装置を用いることも可能である。図1の配列100は、配列309の一例である。
次に、上述の出願において、本出願人により提案されたカップルドノードツリーを用いた基本的な検索処理、カップルドノードツリーにおける挿入削除処理、及びカップルドノードツリーに含まれるインデックスキーの最大値/最小値を求める処理等の応用処理の一部について、図4〜図5を参照することにより、本発明を理解するために必要な範囲で紹介する。
まず、ステップS401で、検索開始ノードの配列番号を取得する。取得された配列番号に対応する配列要素は、カップルドノードツリーを構成する任意のノードを格納したも
のである。検索開始ノードの指定は、後に説明する各種応用検索において行われる。
とし、ステップS502に戻る。以降、ステップS505においてそのノードがリーフノードと判定されるまでステップS502からステップS507までの処理を繰り返し、ステップS508で、リーフノードからインデックスキーを取り出し、処理を終了する。
以下では、本発明によるカップルドノードツリーの最長一致/最短一致検索について説明する。まず、下記の実施形態で用いる用語と、下記の実施形態における前提条件を説明する。
することもある。
図6は、本発明の一実施形態における最長一致検索処理のフローチャートである。図6の処理の概要は、ステップS601〜S606で最長一致ノードを取得し、ステップS607〜S608で最長一致ノードをルートノードとする部分木の中から一つのインデックスキーを取得する、というものである。なお、ある部分木に含まれるすべてのリーフノードのインデックスキーが最長一致条件を満たすとき、その部分木のルートノードを最長一致ノードと定義する。よって、ステップS607〜S608により取得されたインデックスキーは最長一致条件を満たす。より詳細には、図6の処理は下記のとおりである。
次に、ステップS603において、ステップS601で設定された検索キーを用いて配列309を検索し、インデックスキーを取得する。この検索は、図4に示したとおりである。ステップS602で検索開始ノードにルートノードが設定されているので、検索対象はカップルドノードツリー全体である。ステップS603の検索で探索経路スタック310に格納された内容は、後にステップS606で利用される。
差分ビット位置が0のとき、判定は「はい」となり、最長一致検索処理を終了する。この場合、最長一致検索キーと、ステップS603で取得されたインデックスキーは、先頭の0ビット目が不一致である。また、カップルドノードツリーの構造から、カップルドノードツリーに含まれる他のすべてのインデックスキーも、最長一致検索キーと先頭の0ビット目が不一致である。したがって、カップルドノードツリー内に部分一致条件を満たすインデックスキーを含むリーフノードが存在しないため、「最長一致条件を満たすインデックスキーは存在しない」という検索結果が得られる。
ステップS101において、検索キーを比較キー1に設定し、インデックスキーを比較キー2に設定する。最長一致検索処理の場合、ここでの「検索キー」はステップS601で設定された最長一致検索キーであり、ここでの「インデックスキー」はステップS603で取得されたインデックスキーである。
この場合、図6のステップS603で取得されたインデックスキーはルートノードに格納されたインデックスキーである。よって、最長一致検索キーとインデックスキーとの差分ビット位置が0より大きければ、インデックスキーは最長一致条件を満たし、ルートノードは最長一致ノードに該当する。
また、(A1)の場合、探索経路スタック310に格納されている配列309の配列番号はルートノードの配列番号のみである。よって、ステップS801の実行後、スタックポインタが指す内容は、ルートノードの配列番号である。この状態で処理はステップS802に移行する。
そして、続くステップS809では、ステップS808で取得された配列番号、すなわちルートノードの配列番号を最長一致ノードの配列番号に設定し、図8の処理が終了する。
合
この場合、0ビット目が0のインデックスキーと0ビット目が1のインデックスキーの双方を検索対象のカップルドノードツリーが含む。よって、少なくとも0ビット目が一致するインデックスキーが必ず存在する。これは、最長一致条件を満たすインデックスキーが必ず存在することと、図6のステップS604で取得された差分ビット位置が0より大きいことを意味する。つまり、(A2)の場合、ステップS605の判定は必ず「いいえ」となり、必ず図8の処理が実行される。
つのいずれかである。
ステップS603で取得されたインデックスキーを格納するリーフノードにリンクするブランチノードの弁別ビット位置が、差分ビット位置よりも上位の場合、上記リーフノードが最長一致ノードとして設定される。
この場合、図6のステップS605の判定が「はい」になることもある点が、(A2)の場合と異なる。
図6のステップS601で“101010”が検索キーに設定され、ステップS602でルートノードが検索開始ノードに設定される。ステップS603から図4の処理が呼び出されると、探索経路スタック310には、配列番号220、(220a+1)、(221b+1)、(221f+1)が順に格納される。また、ステップS603で得られるインデックスキーは、配列番号(221f+1)の配列要素であるノード211hのインデックスキー251hに格納された“101111”である。図11では、このことをノード211hの横の「初期検索」で示した。
図7は、本発明の一実施形態における最短一致検索処理のフローチャートである。図7は、図6における「最長一致」を「最短一致」に変えた図である。
次に、ステップS703において、ステップS701で設定された検索キーを用いて配列を検索し、インデックスキーを取得する。この検索は、図4に示したとおりである。ス
テップS702で検索開始ノードにルートノードが設定されているので、検索対象はカップルドノードツリー全体である。ステップS703の検索で探索経路スタック310に格納された内容は、後にステップS706で利用される。インデックスキーの取得後、処理はステップS704に進む。
差分ビット位置が0のとき、判定は「はい」となり、最短一致検索処理を終了する。この場合、最短一致検索キーと、ステップS703で取得されたインデックスキーは、先頭の0ビット目が不一致である。また、カップルドノードツリーの構造から、カップルドノードツリーに含まれる他のすべてのインデックスキーも、最短一致検索キーと先頭の0ビット目が不一致である。したがって、「最短一致条件を満たすインデックスキーは存在しない」という検索結果が得られる。
次に、図7のステップS706で行われる最短一致ノードを取得する処理について図9を参照して説明する。図9の処理は、上記(b)の「最短一致条件」の定義にしたがった処理だが、図9の処理を理解しやすくするために、説明は(B1)〜(B4)の4つの場合に分けて行う。(B1)と(B2)は最短一致キーによる検索の結果、探索経路スタック上に少なくとも3つのノードの配列番号が格納されている場合であり、(B3)と(B4)はそれ以外の場合である。
この場合、上記経路上には少なくとも3つのノードが存在する。探索経路スタック310には、ルートノード、ルートノードの子ノードであるブランチノード、そのブランチノードの子ノードの順で、配列番号が格納されている。上記(b)の定義より、この場合、ルートノードの子ノードであるブランチノードからリンクされ、探索経路スタック310に配列番号が格納されたノードと対をなすノードが最短一致ノードに該当する。(B1)の場合における図9の処理は、このノードを最短一致ノードに設定する処理である。
続くステップS902〜S903はループを形成しており、1回以上繰り返し実行される。このループは、スタックポインタがルートノードの配列番号を指すまで探索経路スタック310を遡ることを表す。まず、ステップS902で、探索経路スタック310のスタックポインタを1つ戻す。続くステップS903で、探索経路スタック310のスタックポインタがルートノードの配列番号を指すか否かが判定される。スタックポインタがルートノードの配列番号を指している場合は判定が「はい」となってステップS904に進み、それ以外の場合は判定が「いいえ」となってステップS902に戻る。
図9の処理が実行されるのは差分ビット位置が0より大きいときのみなので、ステップS907で取り出されたルートノードの弁別ビット位置が0のときは必ずステップS908の判定が「はい」となる。
続くステップS910で探索経路スタック310からスタックポインタの指す配列番号を取り出す。
ステップS911の実行後、処理はステップS914に進み、ステップS911で得られた配列番号を最短一致ノードの配列番号に設定する。そして、図9の処理が終了する。
この場合、(B1)と違うのは、最短一致検索キーと0〜mビット目までの範囲が一致するインデックスキーが存在しない点のみである。よって、ステップS907までの処理は(B1)の場合とまったく同じである。
この場合、上記経路上には2つのノードのみが存在する。つまり、探索経路スタック310は、ルートノードの配列番号とインデックスキーを格納するリーフノードの配列番号が格納された状態である。
この場合、図7のステップS703で取得されたインデックスキーはルートノードに格納されたインデックスキーである。よって、最短一致検索キーとインデックスキーとの差分ビット位置が0より大きければ、インデックスキーは最短一致条件を満たし、ルートノードは最短一致ノードに該当する。また、図7のステップS705から明らかなとおり、図9の処理が行われるのは差分ビット位置が0より大きい場合のみなので、(B4)の場合、図9の処理によって必ずルートノードが最短一致ノードに設定される。具体的には次のとおりである。
続くステップS902において、スタックポインタの値を1減らす。また、(B4)の場合、探索経路スタック310に格納されている配列309の配列番号はルートノードの配列番号のみである。したがって、ステップS902の実行後、スタックポインタが指す配列番号は、すなわち、ルートノードの配列番号である。この状態で処理はステップS903に移行する。
以下では最短一致検索キーとして“101010”が指定された場合について説明する。
ックスキーの値は“100011”と“100010”である。いずれも、最短一致検索キー“101010”とは0〜1ビット目が一致し、2ビット目が一致しない。
なお、本発明の実施形態は上述のものに限られず、様々な変形が可能である。
図9のステップS902〜S903のループでは探索経路スタック310を1つずつ遡っているが、例えば、スタックポインタにルートノードの配列番号を指すスタックポインタを代入するステップでこのループを置き換えてもよい。
値よりも小さいとき、図9の処理を変形し、ルートノードを最短一致ノードに設定してもよい。
100 配列
101 ノード
102、114、117、124、126、260a〜260h、261b〜261h
ノード種別
103、115、230a〜230f、231b〜231f 弁別ビット位置
104、116、220、220a〜220f、221b〜221f 代表ノード番号
111、121、201a〜201h ノード対
112、122、210a〜210h ノード[0]、代表ノード
113、123、211b〜211h ノード[1]、代表ノードと対をなすノード
118、125、126、250c〜250h、251d〜251h インデックスキー
301 データ処理装置
302 中央処理装置
303 キャッシュメモリ
304 バス
305 主記憶装置
306 外部記憶装置
307 通信装置
308 データ格納装置
309 配列
310 探索経路スタック
1730a〜1730h 検査ビット位置
1740a〜1740f 左リンク
1741a〜1741f 右リンク
1750a〜1750h インデックスキー
Claims (9)
- ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、
前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、
前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、
前記ツリーの任意のノードを検索開始ノードとして、前記ブランチノードにおいて該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索の結果である検索結果キーとするように構成されたカップルドノードツリーを用いた最長一致検索方法であって、
前記カップルドノードツリーの前記ルートノードを前記検索開始ノードとし、指定された最長一致検索キーを前記検索キーとして、前記ルートノードからの経路を記憶しながら前記検索を行って前記検索結果キーを取得する検索ステップと、
前記最長一致検索キーと前記検索結果キーのビット列を比較して、ビット値が一致しない不一致ビットの位置のうち最も上位の位置である差分ビット位置を取得する差分ビット位置取得ステップと、
前記差分ビット位置がビット列の最上位以外の位置のとき、記憶された前記経路を参照して最長一致ノードを設定する最長一致ノード設定ステップであって、
前記ルートノードが前記リーフノードの場合または前記ルートノードが前記ブランチノードであり該ルートノードの前記弁別ビット位置が前記差分ビット位置よりも下位の位置の場合は、前記ルートノードを前記最長一致ノードとして設定し、
その他の場合は、前記経路上のノードであって前記弁別ビット位置が前記差分ビット位置よりも上位にある前記ブランチノードのうち前記弁別ビット位置が最下位の前記ブランチノードの次に前記検索ステップにおいて記憶された前記ブランチノードまたは前記リーフノードを前記最長一致ノードとして取得する最長一致ノード取得ステップと、
を備えることを特徴とする最長一致検索方法。 - 前記最長一致ノードをルートノードとする前記カップルドノードツリーの部分木に含まれる前記リーフノードを選択し、選択した該リーフノードに含まれるインデックスキーを取得するインデックスキー取得ステップをさらに備えることを特徴とする請求項1に記載の最長一致検索方法。
- 前記カップルドノードツリーは、配列に記憶され、前記位置情報は、該位置情報に対応する前記代表ノードが格納された前記配列の配列要素の配列番号であることを特徴とする請求項1に記載の最長一致検索方法。
- 前記検索ステップにおいて、前記経路上のノードの格納された前記配列要素の前記配列番号が順次スタックに保持されていくことにより、前記経路が記憶されることを特徴とする請求項3に記載の最長一致検索方法。
- ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いる
ツリーであって、
前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、
前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、
前記ツリーの任意のノードを検索開始ノードとして、前記ブランチノードにおいて該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索の結果である検索結果キーとするように構成されたカップルドノードツリーを用いた最短一致検索方法であって、
前記カップルドノードツリーの前記ルートノードを前記検索開始ノードとし、指定された最短一致検索キーを前記検索キーとして、前記ルートノードからの経路を記憶しながら前記検索を行って前記検索結果キーを取得する検索ステップと、
前記最短一致検索キーと前記検索結果キーのビット列を比較して、ビット値が一致しない不一致ビットの位置のうち最も上位の位置である差分ビット位置を取得する差分ビット位置取得ステップと、
前記差分ビット位置がビット列の最上位以外の位置のとき、記憶された前記経路を参照して最短一致ノードを設定する最短一致ノード設定ステップであって、
前記経路が、前記ルートノードと、該ルートノードのリンク先の前記ノード対の一方の前記ブランチノードである第一のノードとを含み、前記ルートノードの前記弁別ビット位置が前記差分ビット位置よりも上位の位置の場合は、前記第一のノードのリンク先の前記ノード対のうち、前記経路に記憶されていない方のノードである第二のノードを前記最短一致ノードとして取得する最短一致ノード取得ステップと、
を備えることを特徴とする最短一致検索方法。 - 前記最短一致ノードをルートノードとする前記カップルドノードツリーの部分木に含まれる前記リーフノードを選択し、選択した該リーフノードに含まれるインデックスキーを取得するインデックスキー取得ステップをさらに備えることを特徴とする請求項5に記載の最短一致検索方法。
- 前記カップルドノードツリーは、配列に記憶され、前記位置情報は、該位置情報に対応する前記代表ノードが格納された前記配列の配列要素の配列番号であることを特徴とする請求項5に記載の最短一致検索方法。
- 前記検索ステップにおいて、前記経路上のノードの格納された前記配列要素の前記配列番号が順次スタックに保持されていくことにより、前記経路が記憶されることを特徴とする請求項7に記載の最短一致検索方法。
- 請求項1〜4のいずれか1項に記載の最長一致検索方法または請求項5〜8のいずれか1項に記載の最短一致検索方法をコンピュータに実行させるためのプログラム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007132289A JP4514771B2 (ja) | 2007-05-18 | 2007-05-18 | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム |
CN2008800122779A CN101657818B (zh) | 2007-04-19 | 2008-04-14 | 配对节点树保存/复原方法、最长一致/最短一致检索方法、比特序列检索方法以及存储介质 |
PCT/JP2008/000983 WO2008132806A1 (ja) | 2007-04-19 | 2008-04-14 | カップルドノードツリーの退避/復元方法、最長一致/最短一致検索方法、ビット列検索方法及び記憶媒体 |
EP08738589.4A EP2149845B1 (en) | 2007-04-19 | 2008-04-14 | Coupled node tree backup/restore apparatus, backup/restore method, and program |
TW097114278A TW200846955A (en) | 2007-04-19 | 2008-04-18 | Coupled node tree save/restore method, longest consistence/shortest consistence retrieval method, bit retrieval method and memory medium |
US12/588,523 US8214405B2 (en) | 2007-05-18 | 2009-10-19 | Longest-match/shortest-match search apparatus, search method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007132289A JP4514771B2 (ja) | 2007-05-18 | 2007-05-18 | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008287533A true JP2008287533A (ja) | 2008-11-27 |
JP2008287533A5 JP2008287533A5 (ja) | 2010-03-11 |
JP4514771B2 JP4514771B2 (ja) | 2010-07-28 |
Family
ID=40147188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007132289A Expired - Fee Related JP4514771B2 (ja) | 2007-04-19 | 2007-05-18 | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8214405B2 (ja) |
JP (1) | JP4514771B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012090763A1 (ja) * | 2010-12-28 | 2012-07-05 | 株式会社エスグランツ | コード列検索装置、検索方法及びプログラム |
CN103544191A (zh) * | 2012-07-17 | 2014-01-29 | 人人游戏网络科技发展(上海)有限公司 | 一种用于读取缓存数据的方法和设备 |
CN108616403A (zh) * | 2018-05-09 | 2018-10-02 | 马鞍山优途网络科技有限公司 | 一种基于云计算的资源管理系统 |
CN109783206A (zh) * | 2019-01-04 | 2019-05-21 | 智恒科技股份有限公司 | 一种用于描述大数据任务流整体结构的方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429526B2 (en) * | 2006-04-10 | 2013-04-23 | Oracle International Corporation | Efficient evaluation for diff of XML documents |
US8527546B2 (en) | 2010-11-25 | 2013-09-03 | International Business Machines Corporation | Generating a checkpoint image for use with an in-memory database |
US9155320B2 (en) | 2011-07-06 | 2015-10-13 | International Business Machines Corporation | Prefix-based leaf node storage for database system |
KR101341507B1 (ko) * | 2012-04-13 | 2013-12-13 | 연세대학교 산학협력단 | 수정된 b+트리 노드 검색 방법 및 장치 |
JP6183376B2 (ja) * | 2013-01-11 | 2017-08-23 | 日本電気株式会社 | インデックス生成装置及び方法並びに検索装置及び検索方法 |
US9817852B2 (en) * | 2014-08-28 | 2017-11-14 | Samsung Electronics Co., Ltd. | Electronic system with version control mechanism and method of operation thereof |
CN105817029B (zh) * | 2016-03-14 | 2019-09-03 | 安徽大学 | 六子棋博弈系统中基于路和棋型的混合搜索方法 |
KR102195836B1 (ko) * | 2019-02-07 | 2020-12-28 | 주식회사 티맥스티베로 | 인덱스 관리 방법 |
US20230195705A1 (en) * | 2021-12-20 | 2023-06-22 | Sap Se | Branching for tree structure in database system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357070A (ja) * | 2000-06-13 | 2001-12-26 | Nec Corp | 情報検索方法及び装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3887867B2 (ja) * | 1997-02-26 | 2007-02-28 | 株式会社日立製作所 | 構造化文書の登録方法 |
US6029170A (en) * | 1997-11-25 | 2000-02-22 | International Business Machines Corporation | Hybrid tree array data structure and method |
JP3368237B2 (ja) * | 1999-04-14 | 2003-01-20 | キヤノン株式会社 | コード処理方法、端末装置及び記憶媒体 |
US6662184B1 (en) * | 1999-09-23 | 2003-12-09 | International Business Machines Corporation | Lock-free wild card search data structure and method |
US6675163B1 (en) * | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
US6594655B2 (en) * | 2001-01-04 | 2003-07-15 | Ezchip Technologies Ltd. | Wildcards in radix- search tree structures |
US6785699B1 (en) * | 2001-05-04 | 2004-08-31 | Lsi Logic Corporation | Prefix comparator |
JP3691018B2 (ja) | 2002-01-31 | 2005-08-31 | 日本電信電話株式会社 | 最長一致検索回路および方法およびプログラムおよび記録媒体 |
US6934252B2 (en) * | 2002-09-16 | 2005-08-23 | North Carolina State University | Methods and systems for fast binary network address lookups using parent node information stored in routing table entries |
US6915300B1 (en) * | 2003-12-19 | 2005-07-05 | Xerox Corporation | Method and system for searching indexed string containing a search string |
JP2006293619A (ja) | 2005-04-08 | 2006-10-26 | Toshiba Tec Corp | コンピュータ装置及びログ出力プログラム |
JP4271214B2 (ja) | 2006-07-07 | 2009-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
JP4271227B2 (ja) | 2006-10-30 | 2009-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
-
2007
- 2007-05-18 JP JP2007132289A patent/JP4514771B2/ja not_active Expired - Fee Related
-
2009
- 2009-10-19 US US12/588,523 patent/US8214405B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357070A (ja) * | 2000-06-13 | 2001-12-26 | Nec Corp | 情報検索方法及び装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012090763A1 (ja) * | 2010-12-28 | 2012-07-05 | 株式会社エスグランツ | コード列検索装置、検索方法及びプログラム |
JP2012141760A (ja) * | 2010-12-28 | 2012-07-26 | S Grants Co Ltd | コード列検索装置、検索方法及びプログラム |
CN103544191A (zh) * | 2012-07-17 | 2014-01-29 | 人人游戏网络科技发展(上海)有限公司 | 一种用于读取缓存数据的方法和设备 |
CN108616403A (zh) * | 2018-05-09 | 2018-10-02 | 马鞍山优途网络科技有限公司 | 一种基于云计算的资源管理系统 |
CN109783206A (zh) * | 2019-01-04 | 2019-05-21 | 智恒科技股份有限公司 | 一种用于描述大数据任务流整体结构的方法 |
CN109783206B (zh) * | 2019-01-04 | 2022-12-13 | 智恒科技股份有限公司 | 一种用于描述大数据任务流整体结构的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100042597A1 (en) | 2010-02-18 |
JP4514771B2 (ja) | 2010-07-28 |
US8214405B2 (en) | 2012-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4514771B2 (ja) | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム | |
JP4271214B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4271227B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4527753B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4498409B2 (ja) | データベースのインデックスキー更新方法及びプログラム | |
JP4379894B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
JP4402120B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4439013B2 (ja) | ビット列検索方法及び検索プログラム | |
JP4514768B2 (ja) | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム | |
JP2009140161A (ja) | ビット列のマージソート方法及びプログラム | |
US8250089B2 (en) | Bit string search apparatus, search method, and program | |
WO2009122651A1 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4567754B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP2011018296A (ja) | カップルドノードツリーのインデックスキー挿入/削除方法 | |
JP4417431B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
JP4813575B2 (ja) | ビット列検索装置 | |
JP5220057B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP2009199577A (ja) | ビット列検索装置、検索方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100120 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100120 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20100120 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20100210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100223 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100416 |
|
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: 20100511 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100511 |
|
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: 20130521 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |