JP6065844B2 - インデックス走査装置及びインデックス走査方法 - Google Patents

インデックス走査装置及びインデックス走査方法 Download PDF

Info

Publication number
JP6065844B2
JP6065844B2 JP2013553268A JP2013553268A JP6065844B2 JP 6065844 B2 JP6065844 B2 JP 6065844B2 JP 2013553268 A JP2013553268 A JP 2013553268A JP 2013553268 A JP2013553268 A JP 2013553268A JP 6065844 B2 JP6065844 B2 JP 6065844B2
Authority
JP
Japan
Prior art keywords
space
search
data
index
partial
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.)
Active
Application number
JP2013553268A
Other languages
English (en)
Other versions
JPWO2013105505A1 (ja
Inventor
祥治 西村
祥治 西村
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
Publication of JPWO2013105505A1 publication Critical patent/JPWO2013105505A1/ja
Application granted granted Critical
Publication of JP6065844B2 publication Critical patent/JP6065844B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、複数の部分空間に分割された多次元空間にマッピングされたデータベースに対する多次元範囲検索におけるインデックス走査技術に関する。
データ数の増加に伴い、拡張性のある分散型データベースが提案されている。これら分散型データベースの多くは、一次元のみの範囲検索のような単純な問い合わせ処理のみをサポートすることで拡張性を実現している。一方で、多次元値を一次元値にマップすることで、複数次元の範囲検索を可能としている分散型データベースも提案されている(下記非特許文献1)。
下記非特許文献1で提案される多次元範囲検索手法では、まず、データベースがマッピングされている多次元空間内の検索対象範囲(検索空間)を一次元化することで得られるデータ点の中から、最大値を示すデータ点(最大データ点と表記する)及び最小値を示すデータ点(最小データ点と表記する)が取得される。続いて、当該手法は、その多次元空間内の各部分空間を特定するための各インデックスデータが当該データ点の示す値の順にソートされてなるインデックス列を、最小データ点から最大データ点までの範囲で走査する。このとき、その走査範囲内にある各インデックスで特定される各部分空間について、検索空間と少なくとも一部が重なっているか否かがそれぞれチェックされ、重なっている部分空間に対応付けられたデータページが検索対象に決定される。
Shoji Nishimura, SudiptoDas, Divyakant Agrawal, Amr El Abbadi, "MD-HBase: A Scalable Multi-Dimensional Data Infrastructure forLocation Aware Services", IEEE computer society, 2011.6.6.
しかしながら、上述の手法では、インデックス走査が非効率になる場合がある。つまり、検索空間が多次元空間全体に比べて小さいにもかかわらず、インデックスの走査範囲(最小データ点から最大データ点までの間)に多くの部分空間が含まれる場合があり得る。最悪ケースとして、インデックス走査範囲に、各インデックスで特定される全部分空間が含まれる場合もあり得る。このような場合、全部分空間について検索空間と重なっているか否かをチェックすることになり、インデックス走査で検索空間と重なる部分空間を抽出するのに多くの時間が費やされてしまう。
このような問題は、多次元空間を一次元化するときに生じるひずみに起因する。例えば、検索範囲として、複数の属性の中の一部の属性値が指定されず、或る属性の全値域が指定される場合、指定した属性の範囲が十分狭いにもかかわらず、全インデックスを走査することになる可能性がある。このような問題は、検索対象の次元数が多い場合や、検索時に指定する各次元の範囲の幅に差がある場合等に顕著となる。
本発明は、上述のような課題に鑑みてなされたものであり、多次元範囲検索におけるインデックス走査を高速化する技術を提供する。
本発明の各態様では、上述した課題を解決するために、それぞれ以下の構成を採用する。
第1の態様に係るインデックス走査装置は、複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部と、クエリの検索範囲に対応する上記多次元空間内の検索空間の情報、又は、その検索空間内の部分検索空間の情報を取得する検索空間取得部と、検索空間又は部分検索空間に含まれるデータ点のうち、多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定する検索点設定部と、インデックス格納部において、検索点設定部により設定された検索点を含む部分空間のインデックスデータを特定し、この特定されたインデックスデータと関連付けられたページ特定データを検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出するインデックス検索部と、インデックス検索部により特定されたインデックスデータから得られる部分空間の特定情報に基づいて、検索空間又は部分検索空間を通る、上記多次元空間を上記複数の部分空間に分割する境界線を推定し、この推定された境界線により検索空間又は部分検索空間を分割することにより得られる分割検索空間のうち、当該検索点を含む部分空間以外の分割検索空間を部分検索空間として決定する検索領域決定部と、を備える。
第2の態様に係るインデックス走査方法は、複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部を走査する。第2の態様に係るインデックス走査方法は、クエリの検索範囲に対応する上記多次元空間内の検索空間の情報、又は、その検索空間内の部分検索空間の情報を取得し、検索空間又は部分検索空間に含まれるデータ点のうち、多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定し、インデックス格納部において、検索点設定部により設定された検索点を含む部分空間のインデックスデータを特定し、この特定されたインデックスデータと関連付けられたページ特定データを検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出し、その特定されたインデックスデータから得られる部分空間の特定情報に基づいて、検索空間又は部分検索空間を通る、上記多次元空間を上記複数の部分空間に分割する境界線を推定し、この推定された境界線により検索空間又は部分検索空間を分割することにより得られる分割検索空間のうち、当該検索点を含む部分空間以外の分割検索空間を部分検索空間として決定することを含む。
なお、本発明の他の態様としては、上記第1態様の構成をコンピュータに実現させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
本発明の各態様によれば、多次元範囲検索におけるインデックス走査を高速化する技術を提供することができる。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
図1は、第1実施形態におけるインデックス走査装置のハードウェア構成例を概念的に示す図である。 図2は、第1実施形態におけるインデックス走査装置の処理構成例を概念的に示す図である。 図3は、第1実施形態におけるインデックス走査装置の動作例を示すフローチャートである。 図4は、実施例におけるデータベースにマッピングされた2次元空間及び2次元検索範囲を概念的に示す図である。 図5は、実施例におけるインデックス格納部に格納されるエントリの例を示す図である。 図6は、最初に特定された部分空間(最小データ点を含む)とこの部分空間から推定される境界線を概念的に示す図である。 図7は、最初に特定された部分空間(最大データ点を含む)とこの部分空間から推定される境界線を概念的に示す図である。
以下、本発明の実施の形態について説明する。なお、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。
本実施形態に係るインデックス走査装置は、複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部と、クエリの検索範囲に対応する上記多次元空間内の検索空間の情報、又は、その検索空間内の部分検索空間の情報を取得する検索空間取得部と、検索空間又は部分検索空間に含まれるデータ点のうち、多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定する検索点設定部と、インデックス格納部において、検索点設定部により設定された検索点を含む部分空間のインデックスデータを特定し、この特定されたインデックスデータと関連付けられたページ特定データを検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出するインデックス検索部と、インデックス検索部により特定されたインデックスデータから得られる部分空間の特定情報に基づいて、検索空間又は部分検索空間を通る、上記多次元空間を上記複数の部分空間に分割する境界線を推定し、この推定された境界線により検索空間又は部分検索空間を分割することにより得られる分割検索空間のうち、当該検索点を含む部分空間以外の分割検索空間を部分検索空間として決定する検索領域決定部と、を備える。
本実施形態におけるインデックス走査方法は、複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部を走査する。当該インデックス走査方法は、クエリの検索範囲に対応する上記多次元空間内の検索空間の情報、又は、その検索空間内の部分検索空間の情報を取得し、検索空間又は部分検索空間に含まれるデータ点のうち、多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定し、インデックス格納部において、検索点設定部により設定された検索点を含む部分空間のインデックスデータを特定し、この特定されたインデックスデータと関連付けられたページ特定データを検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出し、その特定されたインデックスデータから得られる部分空間の特定情報に基づいて、検索空間又は部分検索空間を通る、上記多次元空間を上記複数の部分空間に分割する境界線を推定し、この推定された境界線により検索空間又は部分検索空間を分割することにより得られる分割検索空間のうち、当該検索点を含む部分空間以外の分割検索空間を部分検索空間として決定することを含む。
本実施形態では、検索空間又は部分検索空間に含まれるデータ点の中から、一次元化された値が最大となるデータ点(以降、最大データ点と表記する)及び一次元化された値が最小となるデータ点(以降、最小データ点と表記する)の少なくとも一方が検索点として設定され、この検索点を含む部分空間のインデックスデータが特定され、この特定されたインデックスデータと関連付けられたページ特定データが抽出される。抽出されたページ特定データは、当該検索空間の少なくとも一部と重なる部分空間に属するデータが格納されるデータページを特定するものである。
更に、本実施形態では、上述のように特定されたインデックスデータから得られる部分空間の特定情報に基づいて、検索空間又は部分検索空間を通る境界線が推定され、この推定された境界線により検索空間又は部分検索空間を分割することにより得られる分割検索空間のうち、当該検索点を含む部分空間以外の分割検索空間が部分検索空間として決定される。これにより、ここで決定された部分検索空間を対象にして、上述のように、検索点の設定、インデックスデータの特定及びページ特定データの抽出が実行される。このような処理は、例えば、検索空間の少なくとも一部と重なる全ての部分空間のページ特定データが抽出されるまで、繰り返される。
このように、本実施形態では、検索空間と重なる1つの部分空間が見つかると、その部分空間の存在から、多次元空間全体がどのように空間分割されているか(境界線)が出来る範囲で推定され、推定された境界線により、その見つけられた1つの部分空間を除いた検索空間がより小さな検索空間の集合に分割され、インデックスデータの走査範囲がその小さな検索空間に置き換えられる。
結果、本実施形態によれば、クエリの検索範囲に対応する検索空間と少なくとも1部が重なる部分空間のみを対象にしてインデックス走査が行われるため、インデックス走査を高速化することができる。
[第1実施形態]
以下、上述の実施形態について更に詳細を説明する。
〔装置構成〕
図1は、第1実施形態におけるインデックス走査装置10のハードウェア構成例を概念的に示す図である。第1実施形態におけるインデックス走査装置10は、いわゆるコンピュータであり、例えば、バス5で相互に接続される、CPU(Central Processing Unit)2、メモリ3、入出力インタフェース(I/F)4等を有する。メモリ3は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク、可搬型記憶媒体等である。
入出力I/F4は、ネットワーク(図示せず)を介して他のコンピュータと通信を行う通信装置等と接続される。入出力I/F4は、キーボード、マウス等のようなユーザ操作の入力を受け付ける入力装置、ディスプレイ装置やプリンタ等のようなユーザに情報を提供する出力装置と接続されてもよい。インデックス走査装置10のハードウェア構成は制限されない。
図2は、第1実施形態におけるインデックス走査装置10の処理構成例を概念的に示す図である。第1実施形態におけるインデックス走査装置10は、検索空間取得部11、検索点設定部13、検索領域決定部15、インデックス検索部17、インデックス格納部21、ページ特定データ保持部23、検索空間保持部25等を有する。これら各処理部は、例えば、CPU2によりメモリ3に格納されるプログラムが実行されることにより実現される。また、当該プログラムは、例えば、CD(Compact Disc)、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力I/F4を介してインストールされ、メモリ3に格納されてもよい。
インデックス走査装置10は、インデックス格納部21とデータ格納部(図示せず)とからなるデータベースシステムに適用される。データ格納部は、複数のデータページにより複数のデータを格納する。各データページには、所定閾値以下の件数のデータがそれぞれ格納される。
インデックス格納部21は、データ格納部に格納される複数データがマッピングされた多次元空間を構成する各部分空間を特定するための各インデックスデータ、及び、各部分空間に対応する各データページを特定するための各ページ特定データを含む複数エントリを格納する。インデックス格納部21に格納される各エントリにより、1つの部分空間を示す1つのインデックスデータと、その部分空間に対応するデータページを特定するための1つのページ特定データとがそれぞれ特定される。なお、1つのインデックスデータは、複数の部分空間を示し、複数のページ特定データと共に1つのエントリに含まれてもよい。
各インデックスデータは、各部分空間の位置及び範囲を特定し得るデータ形式を持つ。例えば、一次元化された多次元空間内の各データ点が2進数表記される場合、各インデックスデータは、対応する各部分空間に含まれるデータ点の最長共通プレフィックスに設定される。多次元空間を複数の部分空間に分割する手法には、例えば、KD(K-Dimentional)−Tree等のような空間分割法が利用される。多次元空間の一次元化には、例えば、Zカーブ、ヒルベルトカーブ等のような空間充填曲線が利用される。
検索空間取得部11は、多次元範囲検索のクエリ50を取得し、このクエリ50を解析することによりクエリ50の検索範囲に対応する多次元空間内の検索空間の情報を取得する。検索空間の情報には、少なくとも、当該検索空間に含まれるデータ点の中の最小データ点及び最大データ点が含まれる。上記検索空間情報の取得の後、検索空間取得部11は、検索空間保持部25に保持される部分検索空間の情報を取得する。部分検索空間とは、検索空間内の空間であって、後述のインデックス検索部17により、その空間に対応するページ特定データが未だ抽出されていない未処理空間を意味する。部分検索空間は、少なくとも1つの部分空間と重複する。
検索点設定部13は、検索空間に含まれるデータ点の中の最小データ点及び最大データ点の少なくとも一方を検索点として設定する。この場合、検索点には、最小データのみ、最大データ点のみ、又は、最小データ点及び最大データ点の両方が設定される。また、検索点設定部13は、検索空間取得部11により部分検索空間が取得された場合には、部分検索空間に含まれるデータ点の中の最小データ点及び最大データ点の少なくとも一方を検索点として設定する。
インデックス検索部17は、インデックス格納部21を検索することにより、検索点設定部13により設定された検索点を含む部分空間のインデックスデータを含むエントリを特定し、この特定されたエントリに含まれるページ特定データを抽出する。この抽出されたページ特定データは、検索空間の少なくとも一部と重なる部分空間に対応する。抽出されたページ特定データは、ページ特定データ保持部23に保持される。
検索領域決定部15は、インデックス検索部17により特定されたエントリに含まれるインデックスデータから得られる部分空間の特定情報(例えば、位置及び範囲)に基づいて、当該検索空間又は当該部分検索空間から、対応するページ特定データが既に抽出された部分空間を除外して残る空間を部分検索空間に決定する。以降、この残空間を未踏検索空間と表記する場合もある。このとき、検索領域決定部15は、当該検索空間又は当該部分検索空間を通る、多次元空間を複数の部分空間に分割する境界線を推定し、上記未踏検索空間をその境界線で分割することにより得られる各空間を当該部分検索空間に決定する。このように決定された部分検索空間の情報は検索空間保持部25に保持される。
ページ特定データ保持部23は、インデックス検索部17により抽出されたページ特定データを保持する。つまり、ページ特定データ保持部23は、検索空間の少なくとも一部と重なる部分空間に対応するページ特定データを保持する。ページ特定データは、例えば、データページのアドレスである。
検索空間保持部25は、検索領域決定部15により決定された部分検索空間の情報を保持する。部分検索空間の情報には、少なくとも、当該部分検索空間に含まれるデータ点の中の最小データ点又は最大データ点が含まれる。
〔動作例〕
以下、第1実施形態におけるインデックス走査方法について図3を用いて説明する。図3は、第1実施形態におけるインデックス走査装置10の動作例を示すフローチャートである。
インデックス走査装置10は、多次元範囲検索のクエリ50を取得する(S31)。インデックス走査装置10は、このクエリ50で指定された検索範囲に対応する多次元空間内の検索空間の情報を取得する(S32)。
続いて、インデックス走査装置10は、その検索空間内において検索点を設定する(S33)。例えば、インデックス走査装置10は、検索空間に含まれるデータ点の中の最小データ点及び最大データ点の少なくとも一方を検索点として設定する。
インデックス走査装置10は、インデックス格納部21に格納されるインデックスデータの中から、当該検索点を含む部分空間に対応するインデックスデータを特定する(S34)。言い換えれば、インデックス走査装置10は、インデックス格納部21に格納されるインデックスデータを走査することにより、多次元空間を構成する複数の部分空間の中から、この検索点を含む部分空間を特定する。
インデックス走査装置10は、特定されたインデックスデータと関連付けられたページ特定データを抽出する(S35)。インデックス走査装置10は、抽出されたページ特定データをページ特定データ保持部23に保持させる。
続いて、インデックス走査装置10は、検索空間内における、これまで(S34)で特定された全ての部分空間以外の残空間(未踏検索空間)を部分検索空間に決定する(S36)。このとき、インデックス走査装置10は、(S34)で特定された部分空間の特定情報に基づいて、当該検索空間を通る境界線を推定し、上記未踏検索空間をその境界線で分割することにより得られる各空間を当該部分検索空間に決定する。これにより、検索空間を通る境界線が1つ以上見つかれば、1つ以上の部分検索空間が決定されることになる。インデックス走査装置10は、このように決定された部分検索空間の情報を検索空間保持部25に保持させる。
インデックス走査装置10は、部分検索空間が有るか否かを判定する(S37)。具体的には、インデックス走査装置10は、検索空間保持部25に部分検索空間の情報が保持されているか否かでこの判定を行う。インデックス走査装置10は、部分検索空間が無いと判定した場合(S37;NO)、当該検索空間の少なくとも一部と重複する部分空間に対応付けられた全てのページ特定データが抽出されたと判断し、処理を終了する。
一方、インデックス走査装置10は、部分検索空間が有ると判定した場合(S37;YES)、検索空間保持部25から1つの部分検索空間の情報を取得する(S38)。インデックス走査装置10により取得された部分検索空間の情報は、検索空間保持部25から削除される。
インデックス走査装置10は、その部分検索空間内において検索点を設定する(S39)。この検索点は、例えば、その部分検索空間に含まれるデータ点の中の最小データ点及び最大データ点の少なくとも一方である。
インデックス走査装置10は、この新たに設定された検索点に関し、(S34)、(S35)及び(S36)を上述のように実行する。このとき、(S36)で部分検索空間が新たに決定された場合には、その新たな部分検索空間の情報が検索空間保持部25に追加される。(S36)において新たな部分検索空間がないと判定された場合には、検索空間保持部25に保持される部分検索空間の情報が取得される(S37)。インデックス走査装置10は、検索空間保持部25に保持される部分検索空間の情報がなくなるまで(S37;NO)、(S38)、(S39)、(S34)、(S35)、(S36)を実行する。
なお、上述の動作例では、部分検索空間が1つずつ処理されていたが、複数の部分検索空間が検索空間保持部25に保持されている場合には、部分検索空間毎に、(S34)から(S39)が並列かつ独立して実行されるようにしてもよい。これは、例えば、検索空間取得部11、検索点設定部13、検索領域決定部15及びインデックス検索部17のセットが部分検索空間毎に並列して動作するように構成されることで実現される。
〔第1実施形態の作用及び効果〕
上述のように、第1実施形態では、インデックス格納部21において、検索空間と重なる部分空間に対応するインデックスデータを探すにあたり、多次元空間の各データ点を一次元化することにより得られるバイナリ値が最小及び最大の少なくとも一方となるデータ点を含む部分空間に対応するインデックスデータが特定される。そして、この特定されたインデックスデータから得られる対応する部分空間の特定情報(位置及び範囲)から、全体の多次元空間がどのように空間分割されているのかが推定される。この推定により、検索空間を通る境界線情報が取得され、検索空間におけるその特定された部分空間以外の残空間(未踏検索空間)がその境界線で分割されてなる部分検索空間の情報が得られる。以降、このように得られた部分検索空間と重なる部分空間の検出が行われる。
従って、第1実施形態によれば、クエリ50の検索範囲に対応する検索空間の少なくとも一部と重なる部分空間のみを対象としてインデックス走査が行われるため、インデックス走査を高速化することができる。
以下、上述の各実施形態の更なる具体例を説明する。以下の実施例では、データベースがマッピングされた検索対象空間の次元が2次元であり、この2次元空間がZカーブ(空間充填曲線)により一次元化され、各データ点が2進数表記され、KD−Treeにより当該2次元空間が空間分割された場合の例が示される。
図4は、実施例におけるデータベースにマッピングされた2次元空間及び2次元検索範囲を概念的に示す図である。なお、以降、図4における横軸をX軸と表記し、縦軸をY軸と表記する。図4の太線は、空間分割の境界線を示し、図4の太点線は、検索空間を示す。2次元空間の各データ点は、図4に示されるバイナリ値(上段が上位3桁、下段が下位3桁)で特定される。各バイナリ値は、各軸のデータ点の値(各々3桁のバイナリ値)を上位桁から下位桁への方向に1桁ずつ交互に並べることにより形成される。具体的には、X軸の値「001」とY軸の値「010」とで特定されるデータ点は、X軸の最上位桁「0」、Y軸の最上位桁「0」、X軸の2番目の桁「0」、Y軸の2番目の桁「1」、X軸の最下位桁「1」、Y軸の最下位桁「0」が並べられることにより形成される(「000110」)。
図5は、実施例におけるインデックス格納部21に格納されるエントリの例を示す図である。図5の例によれば、各エントリには、図4に示される部分空間のいずれか1つを特定するインデックスデータと、そのインデックスデータに対応するページアドレスとがそれぞれ含まれる。各インデックスデータは、対応する部分空間に含まれるバイナリ値の最長共通プレフィックスと、他の各桁を示す「*」とで表記されている。「*」は、その桁の値を制限しないことを意味する。
例えば、データ点「000000」、「000001」、「000010」及び「000011」を含む部分空間(図4の左下)のインデックスデータは、最長共通プレフィックス「0000」と、他の2桁を示す「**」とで形成される。また、データ点「001000」、「001001」、「001010」、「001011」、「001100」、「001101」、「001110」及び「001111」を含む部分空間(図4における上記部分空間の右隣)のインデックスデータは、最長共通プレフィックス「001」と他の3桁を示す「***」とで形成される。実施例におけるインデックス格納部21の各エントリは、インデックスデータを昇順にソートすることにより、並べられている。
以下、この実施例におけるインデックス走査装置10の動作例について図3を用いて説明する。なお、第1実施形態と同じ内容については適宜省略する。
インデックス走査装置10は、(S31)で取得されたクエリ50で指定された検索範囲に対応する2次元空間内の検索空間の情報を取得する(S32)。実施例では、当該検索空間の情報には、最大データ点「100111」、最小データ点「000011」が含まれる。
インデックス走査装置10は、当該検索空間内において検索点を設定する(S33)。ここでは、インデックス走査装置10は、検索空間に含まれるデータ点の中の最小データ点「000011」を検索点に設定したものと仮定する。
インデックス走査装置10は、図5に示されるインデックスデータの中から、当該検索点「000011」を含む部分空間に対応するインデックスデータを特定する(S34)。本実施例では、インデックス格納部21において、インデックスデータと検索点とがプレフィックスマッチするエントリが二分探索されることにより、特定すべき当該インデックスデータを効率的に見つけることができる。ここでは、検索点「000011」とプレフィックスマッチするインデックスデータとして、インデックスデータ「0000**」が特定される。
図6は、最初に特定された部分空間とこの部分空間から推定される境界線を概念的に示す図である。図6の網掛けで示される領域がインデックスデータ「0000**」で特定される部分空間である。インデックス走査装置10は、特定されたインデックスデータ「0000**」と関連付けられたページ特定データ「0x0001」を抽出する(S35)。インデックス走査装置10は、抽出されたページ特定データ「0x0001」をページ特定データ保持部23に保持させる。
続いて、インデックス走査装置10は、検索空間内における、上述のように特定された部分空間(インデックスデータ「0000**」)以外の残空間(未踏検索空間)を部分検索空間に決定する(S36)。
ここで、図6の網掛けで示される部分空間の存在が判明すると、全体の2次元空間は、図6の太線で示された境界線で空間分割されていると推定することができる。これは、本実施例で用いられた空間ベースのKD−Treeでの空間分割手法の特性に基づく。一般的に、空間ベースの空間分割手法では、多次元空間が規則的かつ再帰的に分割されるため、或る部分空間の位置及び範囲に基づいて、その部分空間が切り出されるためにどのように空間が分割されてきたかを逆算することができる。一方で、データ点ベースの空間分割手法は、空間分割境界がデータ点に基づいて決定されるため、一般的に、位置と範囲から空間分割形態を逆算によって求めることができない。
上述の各実施形態では、このような事実に基づいて、既に特定された部分空間以外の残空間(未踏検索空間)を分割して得られる各空間が部分検索空間として決定される。具体的には、既に特定された部分空間の特定情報(位置及び範囲)から導出される空間分割の情報(境界線情報)により、検索空間内の未踏検索空間が分割される。検索空間内を通る境界線は、各軸についてそれぞれ推定される。具体的には、当該境界線は、各軸の各データ点のうち、最下位桁から上位桁方向に向けて初めて0が現れる桁位置までの全桁に1が設定されている値で示されるデータ点(以降、負側境界値と表記する)と、この値に1を加算して得られる値で示されるデータ点(以降、正側境界値と表記する)との間に位置すると推定される。
以下、図6の例に基づいて、具体的な境界線の推定方法について説明する。
まず、未踏検索空間における各次元(各軸)の下限値及び上限値が取得される。X軸については上限値が「101」であり、下限値が「001」であり、Y軸については上限値が「011」であり、下限値が「001」である。
続いて、各次元の下限値をNOT演算した値のサフィックス列が取得される。X軸については、下限値「001」をNOT演算した値が「110」であり、この値から得られるサフィックス列は、「0」、「10」、「110」である。Y軸についても同様に、サフィックス列「0」、「10」、「110」が取得される。
取得された各サフィックス列に下限値と「1」とが加算された値が境界値候補として取得される。X軸及びY軸の各境界値候補は以下のように取得される。
X軸のサフィックス列「0」=>境界値候補「010」
X軸のサフィックス列「10」=>境界値候補「100」
X軸のサフィックス列「110」=>境界値候補「1000」
Y軸のサフィックス列「0」=>境界値候補「010」
Y軸のサフィックス列「10」=>境界値候補「100」
Y軸のサフィックス列「110」=>境界値候補「1000」
このように取得された境界値候補のうち、未踏検索空間における各軸の下限値及び上限値の範囲に含まれる境界値候補が、その次元の境界線の正側(X軸の右側、Y軸の上側)に位置する値(正側境界値)と推定される。なお、上述の境界値から1を減算した値は、その次元の境界線の負側(X軸の左側、Y軸の下側)に位置する値(負側境界値)となる。
X軸の正側境界値=「010」、「100」
X軸の負側境界値=「001」、「011」
Y軸の正側境界値=「010」
Y軸の負側境界値=「001」
ここで、X軸の正側境界値と検索空間におけるY軸の下限値とで示されるデータ点、及び、Y軸の正側境界値と検索空間におけるX軸の下限値とで示されるデータ点が、その部分検索空間の最小データ点となる。
第1最小データ点(「010」、「001」)=「001001」
第2最小データ点(「100」、「001」)=「100001」
第3最小データ点(「001」、「010」)=「000110」
これにより、インデックス走査装置10は、網掛けで示される既に特定された部分空間以外の残空間が少なくとも3つに分割されていると決定することができる。この3つの残空間が部分検索空間として検索空間保持部25に追加される。この部分検索空間の情報としては、上述のように特定された最小データ点が含まれてもよい。これにより、その最小データ点がその部分検索空間の検索点に設定されてもよい。
また、X軸の負側境界値と検索空間におけるY軸の上限値とで示されるデータ点、及び、検索空間の最大データ点により、その部分検索空間の最大データ点が取得されてもよい。
第1最大データ点(「001」、「011」)=「000111」
第2最大データ点(「011」、「011」)=「001111」
第3最大データ点(「101」、「011」)=「100111」
このように決定される部分検索空間を以降の検索範囲とすることにより、クエリ50に対応する検索範囲に対応する元の検索空間をより狭い範囲検索へと絞り込むことになる。即ち、インデックス格納部21において、検索点(第1最小データ点)「001001」とプレフィックスマッチするインデックスデータとして、インデックスデータ「001***」が特定される。更に、検索点(第2最小データ点)「100001」とプレフィックスマッチするインデックスデータとして、インデックスデータ「10****」が特定される。更に、検索点(第3最小データ点)「000110」とプレフィックスマッチするインデックスデータとして、インデックスデータ「0001**」が特定される。なお、本実施例では、このように特定された各部分空間により新たに推定される部分検索空間はない。
このように、本実施例によれば、図6に示されるインデックスデータのエントリのうち、インデックスデータ「0000**」、「001***」、「10****」、「0001**」を含むエントリのみにアクセスすれば、クエリ50の検索範囲に対応する目的のデータページの集合を得ることができる。
上述の例では、最初の検索点が、検索空間に含まれるデータ点の中の最小データ点「000011」に設定されたが、最大データ点「100111」に設定されてもよい。この場合には、次のようにインデックス走査が実行される。
(S34)において、検索点「100111」とプレフィックスマッチするインデックスデータとして、インデックスデータ「10****」が特定される。
図7は、最初に特定された部分空間とこの部分空間から推定される境界線を概念的に示す図である。図7の網掛けで示される領域がインデックスデータ「10****」で特定される部分空間である。インデックス走査装置10は、特定されたインデックスデータ「10****」と関連付けられたページ特定データ「0x06a8」を抽出する(S35)。インデックス走査装置10は、抽出されたページ特定データ「0x06a8」をページ特定データ保持部23に保持させる。
インデックス走査装置10は、検索空間内における、上述のように特定された部分空間(インデックスデータ「10****」)以外の残空間(未踏検索空間)を部分検索空間に決定し(S36)、特定された部分空間に基づいて、次のように境界線を推定する。このとき、未踏検索空間における各軸の上限値及び下限値が取得される。ここでは、X軸については、下限値「001」、上限値「011」が取得され、Y軸については、下限値「001」、上限値「011」が取得される。
続いて、各次元の上限値をNOT演算した値のサフィックス列が取得される。X軸については、上限値「011」をNOT演算した値が「100」であり、この値から得られるサフィックス列は、「0」、「100」である。Y軸についても同様に、サフィックス列「0」、「100」が取得される。
ここで、取得されたサフィックス列のうち、未踏検索空間における各軸の上限値以上のサフィックス列が除外される。ここでは、X軸のサフィックス列「100」及びY軸のサフィックス列「100」が除外される。そして、各軸の上限値から、各サフィックス列及び「1」が減算された値が境界値候補として取得される。X軸及びY軸の各境界値候補は以下のように取得される。
X軸のサフィックス列「0」=>境界値候補「010」
Y軸のサフィックス列「0」=>境界値候補「010」
このように取得された境界値候補のうち、未踏検索空間における各軸の下限値及び上限値の範囲に含まれる境界値候補が、その次元の境界線の正側(X軸の右側、Y軸の上側)に位置する値(正側境界値)と推定される。なお、上述の境界値から1を減算した値は、その次元の境界線の負側(X軸の左側、Y軸の下側)に位置する値(負側境界値)となる。
X軸の正側境界値=「010」
X軸の負側境界値=「001」
Y軸の正側境界値=「010」
Y軸の負側境界値=「001」
ここで、X軸の正側境界値と検索空間におけるY軸の下限値とで示されるデータ点、Y軸の正側境界値と検索空間におけるX軸の下限値とで示されるデータ点、及び、検索空間の最小データ点が、その部分検索空間の最小データ点となる。
第1最小データ点(「010」、「001」)=「001001」
第2最小データ点(「001」、「010」)=「000110」
第3最小データ点(検索空間の最小データ点)=「000011」
[比較例]
以下、上述の各実施形態及び実施例の効果を示すために、本実施形態とは異なるインデックス走査方法を比較例として説明する。以下の説明においても、図4及び図5で示される、2次元空間と2次元範囲検索、並びに、インデックス格納部21が用いられる。
比較例の手法は、インデックス格納部21における、検索空間の最大データ点に対応するインデックスデータを含むエントリからその最小データ点に対応するインデックスデータを含むエントリまでの全エントリを走査対象とする。つまり、図5に示されるエントリのうち、インデックスデータ「0000**」を含むエントリからインデックスデータ「10****」を含むエントリまでの全エントリに関して、対応する部分空間と検索空間とが重なっていないかがチェックされる。
ところが、上述したように、特定されるべき部分空間は、インデックスデータ「0000**」、「001***」、「10****」、「0001**」に対応する4つの部分空間しかない。よって、比較例の手法によれば、インデックスデータ「010000」からインデックスデータ「011111」に対応する各部分空間は、重複チェックの対象となるが、検索空間と重複しておらず、特定されないことになる。
つまり、比較例の手法によれば、検索対象範囲は空間全体に比べて狭いにもかかわらず、インデックス走査される部分空間数が、インデックス格納部21に格納される全インデックスに対応する部分空間数と同程度となる場合があり得る。その結果、比較例によれば、インデックスの走査に時間がかかってしまうことになる。
一方で、上述の各実施形態及び実施例によれば、クエリの検索範囲に対応する検索空間と少なくとも1部が重なる部分空間のみを対象にしてインデックス走査が行われるため、インデックス走査が高速化される。このような各実施形態及び実施例と比較例との効果の差は、検索対象の次元数が大きい場合や、検索時に指定する各次元の範囲の幅に差がある場合に、顕著となる。
なお、上述の説明で用いた複数のフローチャートでは、複数のステップ(処理)が順番に記載されているが、本実施形態で実行される処理ステップの実行順序は、その記載の順番に制限されない。本実施形態では、図示される処理ステップの順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態及び各変形例は、内容が相反しない範囲で組み合わせることができる。
上記の各実施形態及び各変形例の一部又は全部は、以下の付記のようにも特定され得る。但し、各実施形態及び各変形例が以下の記載に限定されるものではない。
(付記1)
複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、該複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部と、
クエリの検索範囲に対応する前記多次元空間内の検索空間の情報、又は、該検索空間内の部分検索空間の情報を取得する検索空間取得部と、
前記検索空間又は前記部分検索空間に含まれるデータ点のうち、前記多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定する検索点設定部と、
前記インデックス格納部において、前記検索点設定部により設定された前記検索点を含む部分空間のインデックスデータを特定し、該特定されたインデックスデータと関連付けられたページ特定データを前記検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出するインデックス検索部と、
前記インデックス検索部により特定されたインデックスデータから得られる部分空間の特定情報に基づいて、前記検索空間又は前記部分検索空間を通る、前記多次元空間を前記複数の部分空間に分割する境界線を推定し、該推定された境界線により前記検索空間又は前記部分検索空間を分割することにより得られる分割検索空間のうち、前記検索点を含む部分空間以外の分割検索空間を前記部分検索空間として決定する検索領域決定部と、
を備えるインデックス走査装置。
(付記2)
前記各インデックスデータは、各部分空間の位置及び範囲を特定し得るデータ形式を有する付記1に記載のインデックス走査装置。
(付記3)
前記多次元空間の空間分割には、KD(K−dimentional)−Treeが利用され、
前記多次元空間の一次元化には、空間充填曲線が用いられ、
前記多次元空間の各データ点を一次元化することにより得られる値は、2進数表記され、
前記インデックス格納部は、各部分空間に含まれるデータ点の最長共通プレフィックスを各インデックスデータとし、
前記検索領域決定部は、各軸の各データ点のうち、最下位桁から上位桁方向に向けて初めて0が現れる桁位置までの全桁に1が設定されている値で示されるデータ点と、該値に1を加算して得られる値で示されるデータ点との間を前記境界線として推定する、
付記1又は2に記載のインデックス走査装置。
(付記4)
複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、該複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部を走査するインデックス走査方法において、
クエリの検索範囲に対応する前記多次元空間内の検索空間の情報、又は、該検索空間内の部分検索空間の情報を取得し、
前記検索空間又は前記部分検索空間に含まれるデータ点のうち、前記多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定し、
前記インデックス格納部において、前記検索点設定部により設定された前記検索点を含む部分空間のインデックスデータを特定し、
前記特定されたインデックスデータと関連付けられたページ特定データを前記検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出し、
前記特定されたインデックスデータから得られる部分空間の特定情報に基づいて、前記検索空間又は前記部分検索空間を通る、前記多次元空間を前記複数の部分空間に分割する境界線を推定し、
前記推定された境界線により前記検索空間又は前記部分検索空間を分割することにより得られる分割検索空間のうち、前記検索点を含む部分空間以外の分割検索空間を前記部分検索空間として決定する、
ことを含むインデックス走査方法。
(付記5)
前記各インデックスデータは、各部分空間の位置及び範囲を特定し得るデータ形式を有する付記4に記載のインデックス走査方法。
(付記6)
前記多次元空間の空間分割には、KD(K−dimentional)−Treeが利用され、
前記多次元空間の一次元化には、空間充填曲線が用いられ、
前記多次元空間の各データ点を一次元化することにより得られる値は、2進数表記され、
前記インデックス格納部は、各部分空間に含まれるデータ点の最長共通プレフィックスを各インデックスデータとし、
前記境界線の推定は、各軸の各データ点のうち、最下位桁から上位桁方向に向けて初めて0が現れる桁位置までの全桁に1が設定されている値で示されるデータ点と、該値に1を加算して得られる値で示されるデータ点との間を前記境界線として推定する、
付記4又は5に記載のインデックス走査方法。
(付記7)
コンピュータに、
複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、該複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部と、
クエリの検索範囲に対応する前記多次元空間内の検索空間の情報、又は、該検索空間内の部分検索空間の情報を取得する検索空間取得部と、
前記検索空間又は前記部分検索空間に含まれるデータ点のうち、前記多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定する検索点設定部と、
前記インデックス格納部において、前記検索点設定部により設定された前記検索点を含む部分空間のインデックスデータを特定し、該特定されたインデックスデータと関連付けられたページ特定データを前記検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出するインデックス検索部と、
前記インデックス検索部により特定されたインデックスデータから得られる部分空間の特定情報に基づいて、前記検索空間又は前記部分検索空間を通る、前記多次元空間を前記複数の部分空間に分割する境界線を推定し、該推定された境界線により前記検索空間又は前記部分検索空間を分割することにより得られる分割検索空間のうち、前記検索点を含む部分空間以外の分割検索空間を前記部分検索空間として決定する検索領域決定部と、
を実現させるプログラム。
(付記8)
前記各インデックスデータは、各部分空間の位置及び範囲を特定し得るデータ形式を有する付記7に記載のプログラム。
(付記9)
前記多次元空間の空間分割には、KD(K−dimentional)−Treeが利用され、
前記多次元空間の一次元化には、空間充填曲線が用いられ、
前記多次元空間の各データ点を一次元化することにより得られる値は、2進数表記され、
前記インデックス格納部は、各部分空間に含まれるデータ点の最長共通プレフィックスを各インデックスデータとし、
前記検索領域決定部は、各軸の各データ点のうち、最下位桁から上位桁方向に向けて初めて0が現れる桁位置までの全桁に1が設定されている値で示されるデータ点と、該値に1を加算して得られる値で示されるデータ点との間を前記境界線として推定する、
付記7又は8に記載のプログラム。
(付記10)付記7から9のいずれか1つに記載のプログラムを記録したコンピュータが読み取り可能な記録媒体。
この出願は、2012年1月13日に出願された日本出願特願2012−005562号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (9)

  1. 複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、該複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部と、
    クエリの検索範囲に対応する前記多次元空間内の検索空間の情報、又は、該検索空間内の部分検索空間の情報を取得する検索空間取得部と、
    前記検索空間又は前記部分検索空間に含まれるデータ点のうち、前記多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定する検索点設定部と、
    前記インデックス格納部において、前記検索点設定部により設定された前記検索点を含む部分空間のインデックスデータを特定し、該特定されたインデックスデータと関連付けられたページ特定データを前記検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出するインデックス検索部と、
    前記インデックス検索部により特定されたインデックスデータから得られる部分空間の特定情報に基づいて、前記検索空間又は前記部分検索空間を通る、前記多次元空間を前記複数の部分空間に分割する境界線を推定し、該推定された境界線により前記検索空間又は前記部分検索空間を分割することにより得られる分割検索空間のうち、前記検索点を含む部分空間以外の分割検索空間を前記部分検索空間として決定する検索領域決定部と、
    を備えるインデックス走査装置。
  2. 前記各インデックスデータは、各部分空間の位置及び範囲を特定し得るデータ形式を有する請求項1に記載のインデックス走査装置。
  3. 前記多次元空間の空間分割には、KD(K−dimentional)−Treeが利用され、
    前記多次元空間の一次元化には、空間充填曲線が用いられ、
    前記多次元空間の各データ点を一次元化することにより得られる値は、2進数表記され、
    前記インデックス格納部は、各部分空間に含まれるデータ点の最長共通プレフィックスを各インデックスデータとし、
    前記検索領域決定部は、各軸の各データ点のうち、最下位桁から上位桁方向に向けて初めて0が現れる桁位置までの全桁に1が設定されている値で示されるデータ点と、該値に1を加算して得られる値で示されるデータ点との間を前記境界線として推定する、
    請求項1又は2に記載のインデックス走査装置。
  4. 複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、該複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部を走査するインデックス走査方法において、
    クエリの検索範囲に対応する前記多次元空間内の検索空間の情報、又は、該検索空間内の部分検索空間の情報を取得し、
    前記検索空間又は前記部分検索空間に含まれるデータ点のうち、前記多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定し、
    前記インデックス格納部において、前記設定された検索点を含む部分空間のインデックスデータを特定し、
    前記特定されたインデックスデータと関連付けられたページ特定データを前記検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出し、
    前記特定されたインデックスデータから得られる部分空間の特定情報に基づいて、前記検索空間又は前記部分検索空間を通る、前記多次元空間を前記複数の部分空間に分割する境界線を推定し、
    前記推定された境界線により前記検索空間又は前記部分検索空間を分割することにより得られる分割検索空間のうち、前記検索点を含む部分空間以外の分割検索空間を前記部分検索空間として決定する、
    ことを含むインデックス走査方法。
  5. 前記各インデックスデータは、各部分空間の位置及び範囲を特定し得るデータ形式を有する請求項4に記載のインデックス走査方法。
  6. 前記多次元空間の空間分割には、KD(K−dimentional)−Treeが利用され、
    前記多次元空間の一次元化には、空間充填曲線が用いられ、
    前記多次元空間の各データ点を一次元化することにより得られる値は、2進数表記され、
    前記インデックス格納部は、各部分空間に含まれるデータ点の最長共通プレフィックスを各インデックスデータとし、
    前記境界線の推定は、各軸の各データ点のうち、最下位桁から上位桁方向に向けて初めて0が現れる桁位置までの全桁に1が設定されている値で示されるデータ点と、該値に1を加算して得られる値で示されるデータ点との間を前記境界線として推定する、
    請求項4又は5に記載のインデックス走査方法。
  7. コンピュータに、
    複数の部分空間に分割された多次元空間にマッピングされたデータベースにおける、該複数の部分空間の各々を特定するための各インデックスデータを、各部分空間に属するデータが格納されるデータページを特定するための各ページ特定データと関連付けて格納するインデックス格納部と、
    クエリの検索範囲に対応する前記多次元空間内の検索空間の情報、又は、該検索空間内の部分検索空間の情報を取得する検索空間取得部と、
    前記検索空間又は前記部分検索空間に含まれるデータ点のうち、前記多次元空間の各データ点を一次元化することにより得られる値が最小及び最大の少なくとも一方となるデータ点を検索点として設定する検索点設定部と、
    前記インデックス格納部において、前記検索点設定部により設定された前記検索点を含む部分空間のインデックスデータを特定し、該特定されたインデックスデータと関連付けられたページ特定データを前記検索空間の少なくとも一部と重なる部分空間のページ特定データとして抽出するインデックス検索部と、
    前記インデックス検索部により特定されたインデックスデータから得られる部分空間の特定情報に基づいて、前記検索空間又は前記部分検索空間を通る、前記多次元空間を前記複数の部分空間に分割する境界線を推定し、該推定された境界線により前記検索空間又は前記部分検索空間を分割することにより得られる分割検索空間のうち、前記検索点を含む部分空間以外の分割検索空間を前記部分検索空間として決定する検索領域決定部と、
    を実現させるプログラム。
  8. 前記各インデックスデータは、各部分空間の位置及び範囲を特定し得るデータ形式を有する請求項7に記載のプログラム。
  9. 前記多次元空間の空間分割には、KD(K−dimentional)−Treeが利用され、
    前記多次元空間の一次元化には、空間充填曲線が用いられ、
    前記多次元空間の各データ点を一次元化することにより得られる値は、2進数表記され、
    前記インデックス格納部は、各部分空間に含まれるデータ点の最長共通プレフィックスを各インデックスデータとし、
    前記検索領域決定部は、各軸の各データ点のうち、最下位桁から上位桁方向に向けて初めて0が現れる桁位置までの全桁に1が設定されている値で示されるデータ点と、該値に1を加算して得られる値で示されるデータ点との間を前記境界線として推定する、
    請求項7又は8に記載のプログラム。
JP2013553268A 2012-01-13 2013-01-10 インデックス走査装置及びインデックス走査方法 Active JP6065844B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012005562 2012-01-13
JP2012005562 2012-01-13
PCT/JP2013/000067 WO2013105505A1 (ja) 2012-01-13 2013-01-10 インデックス走査装置及びインデックス走査方法

Publications (2)

Publication Number Publication Date
JPWO2013105505A1 JPWO2013105505A1 (ja) 2015-05-11
JP6065844B2 true JP6065844B2 (ja) 2017-01-25

Family

ID=48781454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013553268A Active JP6065844B2 (ja) 2012-01-13 2013-01-10 インデックス走査装置及びインデックス走査方法

Country Status (5)

Country Link
US (1) US9619501B2 (ja)
EP (1) EP2804115B1 (ja)
JP (1) JP6065844B2 (ja)
IN (1) IN2014DN05829A (ja)
WO (1) WO2013105505A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049164B2 (en) * 2013-07-12 2018-08-14 Nec Corporation Multidimensional-range search apparatus and multidimensional-range search method
JP6167767B2 (ja) * 2013-08-30 2017-07-26 日本電気株式会社 インデックス生成装置及び検索装置
US9588978B2 (en) 2013-09-30 2017-03-07 International Business Machines Corporation Merging metadata for database storage regions based on overlapping range values
CN104599341B (zh) * 2013-10-31 2017-02-15 深圳市赛格导航科技股份有限公司 一种汽车定位信息存储方法及装置
US9519687B2 (en) * 2014-06-16 2016-12-13 International Business Machines Corporation Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices
US9996579B2 (en) * 2014-06-26 2018-06-12 Amazon Technologies, Inc. Fast color searching
US10042887B2 (en) * 2014-12-05 2018-08-07 International Business Machines Corporation Query optimization with zone map selectivity modeling
US10244278B2 (en) * 2015-12-28 2019-03-26 The Nielsen Company (Us), Llc Methods and apparatus to perform identity matching across audience measurement systems
CN106708405A (zh) * 2016-12-07 2017-05-24 广东小天才科技有限公司 一种图形轨迹与位置组合的内容定位方法及设备、***

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510435B2 (en) * 1996-09-02 2003-01-21 Rudolf Bayer Database system and method of organizing an n-dimensional data set
US6578031B1 (en) * 1998-09-30 2003-06-10 Canon Kabushiki Kaisha Apparatus and method for retrieving vector format data from database in accordance with similarity with input vector
JP4029536B2 (ja) 2000-01-24 2008-01-09 株式会社日立製作所 多次元ベクトル検索方法および装置並びに多次元ベクトル検索プログラムを記録した記録媒体
US7167856B2 (en) * 2001-05-15 2007-01-23 Jonathan Keir Lawder Method of storing and retrieving multi-dimensional data using the hilbert curve
US7383275B2 (en) * 2002-05-10 2008-06-03 International Business Machines Corporation Methods to improve indexing of multidimensional databases
US7143098B2 (en) * 2002-05-10 2006-11-28 International Business Machines Corporation Systems, methods, and computer program products to reduce computer processing in grid cell size determination for indexing of multidimensional databases
US7184998B2 (en) * 2002-06-29 2007-02-27 Sybase, Inc. System and methodology for generating bushy trees using a left-deep tree join enumeration algorithm
US7983482B2 (en) * 2005-11-08 2011-07-19 Kitakyushu Foundation For The Advancement Of Industry, Science And Technology Matching apparatus, image search system, and histogram approximate restoring unit, and matching method, image search method, and histogram approximate restoring method
US20100185588A1 (en) * 2009-01-18 2010-07-22 Vladimir Grigorian System and methods for storing abstract data in multi dimensional vectors
US9298761B2 (en) * 2009-04-30 2016-03-29 Hewlett Packard Enterprise Development Lp Adaptive merging in database indexes

Also Published As

Publication number Publication date
JPWO2013105505A1 (ja) 2015-05-11
US9619501B2 (en) 2017-04-11
IN2014DN05829A (ja) 2015-05-15
EP2804115B1 (en) 2019-08-07
EP2804115A4 (en) 2016-01-27
US20150012544A1 (en) 2015-01-08
EP2804115A1 (en) 2014-11-19
WO2013105505A1 (ja) 2013-07-18

Similar Documents

Publication Publication Date Title
JP6065844B2 (ja) インデックス走査装置及びインデックス走査方法
JP5798503B2 (ja) ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム
KR102178295B1 (ko) 결정 모델 구성 방법 및 장치, 컴퓨터 장치 및 저장 매체
RU2686590C1 (ru) Способ и устройство для сравнения схожих элементов высокоразмерных признаков изображений
JP6032467B2 (ja) 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
US9053386B2 (en) Method and apparatus of identifying similar images
JP6183376B2 (ja) インデックス生成装置及び方法並びに検索装置及び検索方法
JP6167767B2 (ja) インデックス生成装置及び検索装置
US11106708B2 (en) Layered locality sensitive hashing (LSH) partition indexing for big data applications
KR100903961B1 (ko) 시그니처 파일을 이용한 고차원 데이터 색인 및 검색방법과 그 시스템
JP5976115B2 (ja) 画像検索方法
JP6428615B2 (ja) 多次元範囲検索装置及び多次元範囲検索方法
CN110263104B (zh) Json字符串处理方法及装置
CN106777130B (zh) 一种索引生成方法、数据检索方法和装置
JPWO2016006276A1 (ja) インデックス生成装置及びインデックス生成方法
CN110083731B (zh) 图像检索方法、装置、计算机设备及存储介质
JP6677093B2 (ja) 表データ検索装置、表データ検索方法、及び表データ検索プログラム
JP6624062B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
KR20100105080A (ko) 엔-그램 기반의 질의 처리 장치 및 그 방법
JP2014134920A (ja) 設計書の検索システム、設計書の検索システムの構築方法およびそのためのプログラム
JP2013070158A (ja) 映像検索装置およびプログラム
JP5582358B2 (ja) 文書検索システム、文書検索方法、及びプログラム
JP5367622B2 (ja) ファイル分割装置及び方法及びプログラム
JP6155920B2 (ja) 多次元範囲検索装置及び多次元範囲検索方法
JP5903372B2 (ja) キーワード関連度スコア算出装置、キーワード関連度スコア算出方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160913

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161027

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: 20161129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161212

R150 Certificate of patent or registration of utility model

Ref document number: 6065844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150