JP6273892B2 - データ検索装置、プログラム、及びデータ検索システム - Google Patents
データ検索装置、プログラム、及びデータ検索システム Download PDFInfo
- Publication number
- JP6273892B2 JP6273892B2 JP2014031530A JP2014031530A JP6273892B2 JP 6273892 B2 JP6273892 B2 JP 6273892B2 JP 2014031530 A JP2014031530 A JP 2014031530A JP 2014031530 A JP2014031530 A JP 2014031530A JP 6273892 B2 JP6273892 B2 JP 6273892B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- vector data
- index
- data storage
- storage means
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
[第一の実施形態]
<システム構成>
図1は、第一の実施形態に係るデータ検索システムの一例の構成図である。図1のデータ検索システム1は、データ検索装置10と、端末装置20とがネットワークN1に有線や無線で接続されている。
第一の実施形態に係るデータ検索装置10及び端末装置20は、例えば図2に示すようなハードウェア構成のコンピュータ等により実現される。図2は、第一の実施形態に係るコンピュータの一例のハードウェア構成図である。
《データ検索装置》
データ検索装置10は、例えば図3に示すような機能ブロックにより表すことができる。図3は、第一の実施形態に係るデータ検索装置の一例のソフトウェア構成図である。
ベクトルデータ記憶部17に記憶されている多次元ベクトルデータ1000は、例えば図4に示すような構成を有している。図4は、多次元ベクトルデータの一例の構成図である。多次元ベクトルデータ1000は、識別子、データ値などを有している。識別子は、各多次元ベクトルデータを一意に識別する情報である。データ値は、多次元ベクトルデータのデータ情報である。本実施形態では、一例として、多次元ベクトルデータのデータ値は、10個の値の組(10次元)であるとするが、これに限られない。すなわち、多次元ベクトルデータの次元は11次元以上であってもよいし、10次元未満であってもよい。
追加データ記憶部18に記憶されている追加用ベクトルデータ2000は、例えば図5に示すような構成を有している。図5は、追加用ベクトルデータの一例の構成図である。追加用ベクトルデータ2000は、識別子、データ値などを有している。すなわち、追加用ベクトルデータ2000は、多次元ベクトルデータ1000と同様の構成を有している。ただし、追加用ベクトルデータ2000の識別子の値は、多次元ベクトルデータ1000の識別子の値と重複しない値である。
削除データ記憶部19に記憶されている削除データの識別子3000及び削除データの識別子4000は、例えば図6に示すような構成を有している。図6は、削除データの識別子の一例の構成図である。図6に示すように、削除データ記憶部19は、kd木索引(メイン)161の削除データの識別子(すなわち、ベクトルデータ記憶部17に記憶されているベクトルデータの識別子)とkd木索引(サブ)162の削除データの識別子(すなわち、追加データ記憶部18に記憶されているベクトルデータの識別子)を別に管理して記憶している。
kd木索引(メイン)161及びkd木索引(サブ)162は、例えば図7に示すような構成を有している。図7は、kd木索引の一例を説明するための図である。
次に、第一の実施形態に係るデータ検索システム1の処理の詳細について説明する。
まず、kd木索引(メイン)161を作成する処理について説明する。図8は、第一の実施形態に係るkd木索引作成処理の一例のフローチャートである。
次に、端末装置20などからデータの追加要求が行われ、多次元ベクトルデータがデータ検索装置10に追加される場合の処理について説明する。図9は、第一の実施形態に係るデータ追加処理の一例のフローチャートである。
次に、図9のステップS22の処理の詳細について説明する。図10は、第一の実施形態に係るkd木索引へのデータ挿入処理の一例のフローチャートである。
次に、端末装置20などからデータの削除要求が行われた場合の処理について説明する。図11は、第一の実施形態に係るデータ削除処理の一例のフローチャートである。
次に、端末装置20などからデータを指定して検索要求が行われた場合について、データ検索装置10でこの指定されたデータに最も近い値のデータを検索する処理について説明する。図12は、第一の実施形態に係るデータ検索処理の一例のフローチャートである。
次に、図12のステップS52及びステップS53における最近傍検索処理について説明する。図13は、第一の実施形態に係る最近傍検索処理の一例のフローチャートである。図13は、kd木索引を用いた一般的な最近傍検索処理に対して、ノードのデータが削除されたか否かを判定する処理を追加したものである。なお、図13において、端末装置20などから指定されたデータをクエリと表すこととする。また、図13において、kd木索引(メイン)161とkd木索引(サブ)162を区別せずに、単に、kd木索引と表すこととする。また、検索処理部11は、kd木索引のルートノードから最近傍検索処理を開始する。換言すると、検索処理部11は、最初に、ルートノードをカレントノードとして最近傍検索処理を開始する。なお、カレントノードとは、kd木索引のノードのうち、現在着目しているノードをいう。
次に、追加データ記憶部18や削除データ記憶部19の内容をベクトルデータ記憶部17に反映し、kd木索引(メイン)161を再作成するマージ処理について説明する。図14は、第一の実施形態に係るマージ処理の一例のフローチャートである。なお、マージ処理は、例えば追加データ記憶部18のデータ数が所定の閾値に達していた場合などに、追加処理部12などから起動される。マージ処理が起動される場合としては、他に例えば所定の時間(例えば端末装置20からのアクセスが少ない夜間など)に行うようにしてもよいし、所定の期間(例えば1週間など)が経過したら行うようにしてもよい。
[第二の実施形態]
次に、第二の実施形態に係るデータ検索システム1について説明する。第二の実施形態に係るデータ検索システム1のデータ検索装置10は、端末装置20などから追加されたデータが所定数を超えた場合、kd索引(サブ)1624を再作成する。
図15は、第二の実施形態に係るデータ追加処理の一例のフローチャートである。なお、データ追加処理以外の各種処理は、第一の実施形態における対応する各種処理と同様であるため説明を省略する。
[第三の実施形態]
次に、第三の実施形態に係るデータ検索システム1について説明する。第三の実施形態に係るデータ検索システム1のデータ検索装置10は、追加データ記憶部及び削除データ記憶部をそれぞれ2つ有している。これにより、例えばマージ処理中などにおいても端末装置20などからデータの追加・削除を行うことができる。
第三の実施形態に係るデータ検索装置10は、例えば図16に示すような機能ブロックにより表すことができる。図16は、第三の実施形態に係るデータ検索装置の一例のソフトウェア構成図である。
図17は、第三の実施形態に係るマージ処理の一例のフローチャートである。なお、特に言及したものを除き、マージ処理以外の各種処理は、第一の実施形態における対応する各種処理と同様であるため説明を省略する。
[第四の実施形態]
次に、第四の実施形態に係るデータ検索システム1について説明する。第四の実施形態に係るデータ検索システム1のデータ検索装置10は、kd木索引を記憶するダンプ記憶部を有している。
第四の実施形態に係るデータ検索装置10は、例えば図18に示すような機能ブロックにより表すことができる。図18は、第四の実施形態に係るデータ検索装置の一例のソフトウェア構成図である。第四の実施形態に係るデータ検索装置10は、第三の実施形態に係るデータ検索装置10が有する機能ブロックに加えて、ロード・アンロード部24及びダンプ記憶部25を有する。したがって、この2つ以外の各部については、説明を省略する。
以上の第一の実施形態に係るデータ検索装置10では、追加データ用の追加データ記憶部18と、削除データ用の削除データ記憶部19を有しており、また、追加データ記憶部18からkd木索引(サブ)162を作成している。これにより、データ検索装置10に対してデータの追加要求やデータの削除要求がある都度、kd木索引(メイン)161を再作成する必要がない。したがって、例えば端末装置20などからデータ検索装置10に対してデータの追加要求やデータの削除要求を行った場合、データの追加処理・削除処理のレスポンスタイムを短くすることができる。
10 データ検索装置
11 検索処理部
12 追加処理部
13 削除処理部
14 索引作成部
15 マージ部
16 索引記憶部
17 ベクトルデータ記憶部
18 追加データ記憶部
19 削除データ記憶部
20 端末装置
161 kd木索引(メイン)
162 kd木索引(サブ)
Claims (12)
- 指定されたベクトルデータと最も近い値のベクトルデータを複数のベクトルデータから検索するデータ検索装置において、
ベクトルデータと該ベクトルデータを一意に識別する識別子との組を記憶するベクトルデータ記憶手段と、
前記ベクトルデータ記憶手段に追加するベクトルデータを記憶する第1の追加データ記憶手段と、
前記ベクトルデータ記憶手段から削除するベクトルデータの識別子を記憶する第1の削除データ記憶手段と、
前記ベクトルデータ記憶手段に記憶されているベクトルデータから第1の索引を作成し、前記第1の追加データ記憶手段に記憶されているベクトルデータから第2の索引を作成する索引作成手段と、
前記第1の追加データ記憶手段に記憶されているベクトルデータのデータ数が所定の値以上になった場合、前記ベクトルデータ記憶手段、前記第1の追加データ記憶手段、及び前記第1の削除データ記憶手段を更新するマージ手段と、
前記第1の索引と前記第2の索引とから、前記指定されたベクトルデータと最も近い値のベクトルデータを検索する検索手段と、
を有し、
前記索引作成手段は、前記マージ手段により更新が行われた場合、前記ベクトルデータ記憶手段に記憶されているベクトルデータから前記第1の索引を再作成し、前記第2の索引を削除する、データ検索装置。 - 前記第1の追加データ記憶手段にベクトルデータを追加するデータ追加手段を有し、
前記索引作成手段は、
前記データ追加手段により前記第1の追加データ記憶手段にベクトルデータが追加された場合、前記第1の追加データ記憶手段に記憶されているベクトルデータから第2の索引を作成又は再作成する、請求項1記載のデータ検索装置。 - 前記索引作成手段は、
前記データ追加手段により前記第1の追加データ記憶手段にベクトルデータが所定のデータ数以上追加された場合、前記第1の追加データ記憶手段に記憶されているベクトルデータから第2の索引を再作成する、請求項2記載のデータ検索装置。 - 前記ベクトルデータ記憶手段に追加するベクトルデータを記憶する第2の追加データ記憶手段を有し、
前記データ追加手段は、前記マージ手段による更新中である場合、前記第2の追加データ記憶手段にベクトルデータを追加する、請求項2又は3記載のデータ検索装置。 - 前記第1の削除データ記憶手段に削除するベクトルデータの識別子を追加する削除データ追加手段を有し、
前記削除データ追加手段は、
追加された識別子に対応するベクトルデータが前記第1の追加データ記憶手段に記憶されているベクトルデータである場合、前記追加された識別子に対応するベクトルデータを前記第1の追加データ記憶手段から削除する、請求項1ないし4いずれか1項に記載のデータ検索装置。 - 前記ベクトルデータ記憶手段から削除するベクトルデータの識別子を記憶する第2の削除データ記憶手段を有し、
前記削除データ追加手段は、前記マージ手段による更新中である場合、前記第2の削除データ記憶手段に削除するベクトルデータの識別子を追加する、請求項5記載のデータ検索装置。 - 前記第1の索引及び前記第2の索引は、kd木構造であり、
前記検索手段は、
前記第1の索引に基づいて、前記ベクトルデータ記憶手段に記憶されているベクトルデータのうち、前記指定されたベクトルデータと最も距離が小さい第1のベクトルデータを特定し、
前記第2の索引に基づいて、前記第1の追加データ記憶手段に記憶されているベクトルデータのうち、前記指定されたベクトルデータと最も距離が小さい第2のベクトルデータを特定し、
前記第1のベクトルデータと前記指定されたベクトルデータとの第1の距離と、前記第2のベクトルデータと前記指定されたベクトルデータとの第2の距離とを比較することにより、前記指定されたベクトルデータと最も近い値のベクトルデータを検索する、請求項1ないし6のいずれか1項に記載のデータ検索装置。 - 前記検索手段は、
前記ベクトルデータ記憶手段に記憶されているベクトルデータのうち、該ベクトルデータの識別子が前記第1の削除データ記憶手段に記憶されている場合、前記ベクトルデータと前記指定されたベクトルデータとの距離を無限大とする、請求項7記載のデータ検索装置。 - 索引作成手段は、さらに、第2の追加データ記憶手段に記憶されているベクトルデータから第3の索引を作成し、
前記検索手段は、前記第1の索引と前記第2の索引と前記第3の索引とから、前記指定されたベクトルデータと最も近い値のベクトルデータを検索する、請求項8記載のデータ検索装置。 - 前記第1の索引を記憶する索引記憶手段と、
前記索引記憶手段から前記第1の索引を取得する索引取得手段を有し、
前記索引取得手段は、前記データ検索装置の起動時に、前記索引記憶手段から前記第1の索引を取得する、請求項1ないし9いずれか1項に記載のデータ検索装置。 - 指定されたベクトルデータと最も近い値のベクトルデータを複数のベクトルデータから検索するコンピュータを、
ベクトルデータと該ベクトルデータを一意に識別する識別子との組を記憶するベクトルデータ記憶手段に記憶されているベクトルデータから第1の索引を作成し、前記ベクトルデータ記憶手段に追加するベクトルデータを記憶する追加データ記憶手段に記憶されているベクトルデータから第2の索引を作成する索引作成手段、
前記追加データ記憶手段に記憶されているベクトルデータのデータ数が所定の値以上になった場合、前記ベクトルデータ記憶手段、前記追加データ記憶手段、及び前記ベクトルデータ記憶手段から削除するベクトルデータの識別子を記憶する削除データ記憶手段を更新するマージ手段、
前記第1の索引と前記第2の索引とから、前記指定されたベクトルデータと最も近い値のベクトルデータを検索する検索手段、
として機能させ、
前記索引作成手段は、前記マージ手段により更新が行われた場合、前記ベクトルデータ記憶手段に記憶されているベクトルデータから前記第1の索引を再作成し、前記第2の索引を削除する、プログラム。 - 1台以上の端末装置と、該端末装置から指定されたベクトルデータと最も近い値のベクトルデータを複数のベクトルデータから検索するデータ検索装置とを有するデータ検索システムにおいて、
ベクトルデータと該ベクトルデータを一意に識別する識別子との組を記憶するベクトルデータ記憶手段と、
前記ベクトルデータ記憶手段に追加するベクトルデータを記憶する追加データ記憶手段と、
前記ベクトルデータ記憶手段から削除するベクトルデータの識別子を記憶する削除データ記憶手段と、
前記ベクトルデータ記憶手段に記憶されているベクトルデータから第1の索引を作成し、前記追加データ記憶手段に記憶されているベクトルデータから第2の索引を作成する索引作成手段と、
前記追加データ記憶手段に記憶されているベクトルデータのデータ数が所定の値以上になった場合、前記ベクトルデータ記憶手段、前記追加データ記憶手段、及び前記削除データ記憶手段を更新するマージ手段と、
前記第1の索引と前記第2の索引とから、前記指定されたベクトルデータと最も近い値のベクトルデータを検索する検索手段と、
を有し、
前記索引作成手段は、前記マージ手段により更新が行われた場合、前記ベクトルデータ記憶手段に記憶されているベクトルデータから前記第1の索引を再作成し、前記第2の索引を削除する、データ検索システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014031530A JP6273892B2 (ja) | 2014-02-21 | 2014-02-21 | データ検索装置、プログラム、及びデータ検索システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014031530A JP6273892B2 (ja) | 2014-02-21 | 2014-02-21 | データ検索装置、プログラム、及びデータ検索システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015156179A JP2015156179A (ja) | 2015-08-27 |
JP6273892B2 true JP6273892B2 (ja) | 2018-02-07 |
Family
ID=54775443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014031530A Active JP6273892B2 (ja) | 2014-02-21 | 2014-02-21 | データ検索装置、プログラム、及びデータ検索システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6273892B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10176630B2 (en) * | 2016-12-06 | 2019-01-08 | Biosense Webster (Israel) Ltd. | Updating an electroanatomical map |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003330943A (ja) * | 2002-05-17 | 2003-11-21 | Fujitsu Ltd | 多次元インデクス生成装置、多次元インデクス生成方法、近似情報作成装置、近似情報作成方法、及び検索装置 |
JP4498409B2 (ja) * | 2007-12-28 | 2010-07-07 | 株式会社エスグランツ | データベースのインデックスキー更新方法及びプログラム |
JP5014399B2 (ja) * | 2009-10-20 | 2012-08-29 | ヤフー株式会社 | 検索データ管理装置 |
US20110153677A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Apparatus and method for managing index information of high-dimensional data |
WO2012070144A1 (ja) * | 2010-11-26 | 2012-05-31 | 株式会社日立製作所 | データベースの管理方法、データベース管理装置及び記憶媒体 |
JP5906810B2 (ja) * | 2012-02-29 | 2016-04-20 | 株式会社リコー | 全文検索装置、プログラム及び記録媒体 |
WO2013145129A1 (ja) * | 2012-03-27 | 2013-10-03 | 富士通株式会社 | データベース管理方法、プログラム、および情報処理装置 |
-
2014
- 2014-02-21 JP JP2014031530A patent/JP6273892B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015156179A (ja) | 2015-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101972645B1 (ko) | 클러스터링 저장 방법 및 장치 | |
US10606865B2 (en) | Database scale-out | |
US10783115B2 (en) | Dividing a dataset into sub-datasets having a subset of values of an attribute of the dataset | |
US20100169326A1 (en) | Method, apparatus and computer program product for providing analysis and visualization of content items association | |
CN109522271B (zh) | 一种b+树节点的批量插入和删除方法及装置 | |
TW200825800A (en) | Dynamic fragment mapping | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
WO2020057272A1 (zh) | 一种索引数据存储及检索方法、装置及存储介质 | |
CN105989015B (zh) | 一种数据库扩容方法和装置以及访问数据库的方法和装置 | |
CN110168532A (zh) | 数据更新方法和存储装置 | |
KR20140038441A (ko) | 압축 매치 열거 기법 | |
JP2017194753A (ja) | 符号化プログラム、符号化方法、符号化装置、検索プログラム、検索方法および検索装置 | |
CN113297432B (zh) | 用于分区拆分与合并的方法、处理器可读介质和系统 | |
US20190243811A1 (en) | Generation method, generation device, and computer-readable recording medium | |
JP6273892B2 (ja) | データ検索装置、プログラム、及びデータ検索システム | |
US7814079B2 (en) | Apparatus and method for managing file | |
US11200205B2 (en) | Displaying an alert and options when deleting a file that is associated with a sequence of files | |
KR102354343B1 (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
EP3995972A1 (en) | Metadata processing method and apparatus, and computer-readable storage medium | |
KR20220099745A (ko) | 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치 | |
JP2010191903A (ja) | 分散ファイルシステムのストライピング種別選択方法及びその分散ファイルシステム | |
US10372917B1 (en) | Uniquely-represented B-trees | |
JP2020161089A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
Pintér et al. | Comparison of Source Code Storage Methods | |
JP7130019B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171121 |
|
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: 20171212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171225 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6273892 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |