JP2012141760A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2012141760A5 JP2012141760A5 JP2010293635A JP2010293635A JP2012141760A5 JP 2012141760 A5 JP2012141760 A5 JP 2012141760A5 JP 2010293635 A JP2010293635 A JP 2010293635A JP 2010293635 A JP2010293635 A JP 2010293635A JP 2012141760 A5 JP2012141760 A5 JP 2012141760A5
- Authority
- JP
- Japan
- Prior art keywords
- search
- encoded
- bit
- key
- node
- 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
Description
本発明によれば、カップルドノードツリーの構造を、検索対象コード列を後続するコードの有無を示す識別ビットとコードに対応するビット列の組み合わせで符号化したインデックスキーにより決定されるものとし、検索キーを検索対象コード列と同様に符号化した符号化検索キーにより検索するとともに、検索の過程でたどった経路をスタックに記憶している。そして、コード列からなる検索キーによる最長一致検索を、符号化検索キーによる検索結果のコード列とスタックに記憶した検索経路の情報によりアクセスする検索対象コード列を探索することで実現することができる。
前記符号化ビット列の2ビット目が“1”であるときのリンク先であるノード211cには弁別ビット位置231cとして“5”が格納されている。これは、符号化ビット列の2ビット目が“1”であるコード列「BEAB*」と「BAB*」の符号化ビット列の3番目以降のビット列をみていくと、3ビット目と4ビット目は同じであるが、5ビット目が異なる値となっていることによる。そして、5ビット目が“0”であるときのリンク先であるノード210fにはコード列「BAB*」が格納されている領域を指す参照ポインタ280fが格納されており、5ビット目が“1”であるときのリンク先であるノード211fにはコード列「BEAB*」が格納されている領域を指す参照ポインタ281fが格納されている。コード識別ブランチノードであるノード211cにおける分岐は、その下位の検索対象コード列中のコード列には、2番目のコード位置に位置するコードが「E」であるものと「A」であるものが存在することを反映している。
このようなカップルドノードツリーを用いた基本的な検索処理について、図5を参照して説明する。この図5に例示する基本的な検索処理は、後に図12、図13A〜図13Cを参照して説明する挿入処理、及び図14A〜図14Bを参照して説明する削除処理の中で実行されるものである。そして、図5に例示する処理フローは、先に述べた特許文献4において例示された検索処理の処理フローを変形したものである。なお、処理を実行するときに、配列番号などの各種変数を一時的に記憶する領域を設けて対応する情報を格納して処理を進めていくことが行われるが、それら変数を格納する領域をその変数名で呼ぶことがある。例えば、「配列番号に検索開始ノードの配列番号を設定する。」といったときは、配列番号を格納する領域に検索開始ノードの配列番号を設定する、あるいは、配列番号という名称の変数に検索開始ノードの配列番号を設定することを意味する。
次に、図8A及び図8Bを参照して、本発明の一実施形態における初期検索について説明する。
図8Aは、符号化検索キーによる初期検索の流れを概念的に示す図である。図8Aには、符号化検索キー270と図3に示すカップルドノードツリー200の一部と探索経路スタック310が記載されている。
符号化検索キー270には、検索キー「ACE*」を符号化した符号化検索キー(ACE*)である符号化ビット列
“1001101111010”(以下、符号化検索キー70ということもある。)が格納されている。
カップルドノードツリー200のノード211cより下位の部分は省略され、符号化検索キー70でルートノード210aから初期検索を行ったときの探索経路が太線の枠と矢印で示されている。
図8Aは、符号化検索キーによる初期検索の流れを概念的に示す図である。図8Aには、符号化検索キー270と図3に示すカップルドノードツリー200の一部と探索経路スタック310が記載されている。
符号化検索キー270には、検索キー「ACE*」を符号化した符号化検索キー(ACE*)である符号化ビット列
“1001101111010”(以下、符号化検索キー70ということもある。)が格納されている。
カップルドノードツリー200のノード211cより下位の部分は省略され、符号化検索キー70でルートノード210aから初期検索を行ったときの探索経路が太線の枠と矢印で示されている。
図9Aに示すように、符号化検索キー270には、図8Aに示す符号化検索キーと同一のビット列である、検索キー「ACE*」を符号化した符号化検索キー70が格納されている。探索経路スタック310には、図8Aと同一のコード区切ブランチノードの配列番号とコード列連結側ノードの配列番号が格納されている。しかし、太線の矢印で示すスタックポインタは、初期検索終了時の位置から1つ戻ったノード210cに係る配列番号を指している。
図9Cに示すように、まずステップS910において、インデックスキーの符号化ビット長を比較ビット長に設定する。図9Aに示す例では、ステップS910の処理においては、比較イット長にインデックスキー(AB*)の符号化ビット長である8が設定される。
そして、ステップS911で、符号化検索キーとインデックスキーのビット値が、前記比較ビット長の範囲において等しいか否かを判定する。これは、検索キーと検索結果コード列が検索結果コード列の長さの範囲で一致するか否かを判定することに相当する。この判定の結果、符号化検索キーとインデックスキーが比較ビット長の範囲、すなわちインデックスキーの符号化ビット長の範囲で一致している場合(前方一致)は、ステップS911aに進み、そのインデックスキーに符号化されたコード列を検索結果コード列に設定して処理を終了する。この検索結果コード列が検索キーに最長一致するコード列である。
そして、ステップS911で、符号化検索キーとインデックスキーのビット値が、前記比較ビット長の範囲において等しいか否かを判定する。これは、検索キーと検索結果コード列が検索結果コード列の長さの範囲で一致するか否かを判定することに相当する。この判定の結果、符号化検索キーとインデックスキーが比較ビット長の範囲、すなわちインデックスキーの符号化ビット長の範囲で一致している場合(前方一致)は、ステップS911aに進み、そのインデックスキーに符号化されたコード列を検索結果コード列に設定して処理を終了する。この検索結果コード列が検索キーに最長一致するコード列である。
図9Aの例示では、先のステップS906の処理により探索経路スタック310のスタックポインタは配列番号221bを指しているので、ステップS914ではブランチノード210cが読み出され、ステップS915では弁別ビット位置“4”が取り出される。取り出した弁別ビット位置“4”は、ステップS912aで設定した差分ビット位置“7”よりも上位にあるので、ステップS916の判定結果は「はい」となり、ステップS916aに進む。
図11Bは、初期検索で得られたインデックスキーの符号化ビット長が符号化検索キーの符号化ビット長よりも短い場合の最長一致検索の例を概念的に説明する図である。
先に述べたように、符号化検索キー51bは、検索キー「ACEABC*」を符号化した(ACEABC*)である。ビット表現では、“1001101111011001101010110”となり、その符号化ビット長52bは24ビットとなる。
先に述べたように、符号化検索キー51bは、検索キー「ACEABC*」を符号化した(ACEABC*)である。ビット表現では、“1001101111011001101010110”となり、その符号化ビット長52bは24ビットとなる。
初期検索部510は、検索結果コード列取得手段511と探索経路記憶手段512を備えている。最長一致検索部520は、前方一致判定手段521、第1の最長一致キー取得手段522及び第2の最長一致キー手段523を備えている。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010293635A JP5473893B2 (ja) | 2010-12-28 | 2010-12-28 | コード列検索装置、検索方法及びプログラム |
PCT/JP2011/079375 WO2012090763A1 (ja) | 2010-12-28 | 2011-12-19 | コード列検索装置、検索方法及びプログラム |
US13/926,545 US20130297641A1 (en) | 2010-12-28 | 2013-06-25 | Code string search apparatus, search method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010293635A JP5473893B2 (ja) | 2010-12-28 | 2010-12-28 | コード列検索装置、検索方法及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012141760A JP2012141760A (ja) | 2012-07-26 |
JP2012141760A5 true JP2012141760A5 (ja) | 2013-12-19 |
JP5473893B2 JP5473893B2 (ja) | 2014-04-16 |
Family
ID=46382874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010293635A Expired - Fee Related JP5473893B2 (ja) | 2010-12-28 | 2010-12-28 | コード列検索装置、検索方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130297641A1 (ja) |
JP (1) | JP5473893B2 (ja) |
WO (1) | WO2012090763A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8654966B2 (en) * | 2007-01-24 | 2014-02-18 | Audiocodes Ltd. | Method for dial plan parsing and a system incorporating the same |
JP6003995B2 (ja) * | 2012-09-21 | 2016-10-05 | 富士通株式会社 | 圧縮プログラム、圧縮方法及び圧縮装置 |
US9680749B2 (en) * | 2015-02-27 | 2017-06-13 | Arista Networks, Inc. | System and method of using an exact match table and longest prefix match table as a combined longest prefix match |
US10516613B1 (en) | 2015-10-14 | 2019-12-24 | Innovium, Inc. | Network device storage of incremental prefix trees |
US10528488B1 (en) * | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US10230639B1 (en) * | 2017-08-08 | 2019-03-12 | Innovium, Inc. | Enhanced prefix matching |
US10528556B1 (en) * | 2017-12-31 | 2020-01-07 | Allscripts Software, Llc | Database methodology for searching encrypted data records |
US11140078B1 (en) | 2018-10-18 | 2021-10-05 | Innovium, Inc. | Multi-stage prefix matching enhancements |
US11106657B2 (en) * | 2018-11-20 | 2021-08-31 | International Business Machines Corporation | Optimizing hash storage and memory during caching |
CN110222143B (zh) * | 2019-05-31 | 2022-11-04 | 北京小米移动软件有限公司 | 字符串匹配方法,装置,存储介质及电子设备 |
CN110909212B (zh) * | 2019-10-11 | 2024-04-09 | 中国平安财产保险股份有限公司 | 一种银行标识代码的匹配方法和设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11136287A (ja) * | 1997-10-25 | 1999-05-21 | Masaya Yoneda | 検索装置およびそれを用いたデータ転送システム |
US6993025B1 (en) * | 1999-12-30 | 2006-01-31 | Nortel Networks Limited | Method and apparatus for encoding a plurality of pre-defined codes into a search key and for locating a longest matching pre-defined code |
JP3691018B2 (ja) * | 2002-01-31 | 2005-08-31 | 日本電信電話株式会社 | 最長一致検索回路および方法およびプログラムおよび記録媒体 |
JP3660311B2 (ja) * | 2002-02-07 | 2005-06-15 | 日本電信電話株式会社 | テーブル検索装置および方法およびプログラムおよび記録媒体 |
US7079056B2 (en) * | 2003-01-15 | 2006-07-18 | Delphi Technologies, Inc. | Method of encoding and storing in a machine control computer a compressed data lookup table |
JP4514771B2 (ja) * | 2007-05-18 | 2010-07-28 | 株式会社エスグランツ | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム |
JP4514768B2 (ja) * | 2007-04-19 | 2010-07-28 | 株式会社エスグランツ | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム |
JP4527753B2 (ja) * | 2007-07-03 | 2010-08-18 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
US9009655B2 (en) * | 2008-09-28 | 2015-04-14 | KOUSOKUYA, Inc. | Code string search apparatus, search method, and program |
-
2010
- 2010-12-28 JP JP2010293635A patent/JP5473893B2/ja not_active Expired - Fee Related
-
2011
- 2011-12-19 WO PCT/JP2011/079375 patent/WO2012090763A1/ja active Application Filing
-
2013
- 2013-06-25 US US13/926,545 patent/US20130297641A1/en not_active Abandoned
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012141760A5 (ja) | ||
JP4271214B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
US7904429B2 (en) | System and method for searching strings of records | |
JP4805315B2 (ja) | データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法 | |
US8095526B2 (en) | Efficient retrieval of variable-length character string data | |
KR101127267B1 (ko) | 유사 스트링 정합을 위한 방법 및 시스템 | |
US20160275205A1 (en) | Regular expression matching | |
JP2009015530A5 (ja) | ||
US20130297641A1 (en) | Code string search apparatus, search method, and program | |
CN103995816B (zh) | 信息处理设备和信息处理方法 | |
JP2009512099A (ja) | トライでの再始動可能なハッシュの方法及び装置 | |
US20110295869A1 (en) | Efficient string matching state machine | |
JP6130074B2 (ja) | 差分データ作成システム及び差分データ作成方法 | |
US20120239664A1 (en) | Bit string search apparatus, search method, and program | |
US8166043B2 (en) | Bit strings search apparatus, search method, and program | |
US20110191357A1 (en) | Map data, storage medium and navigation apparatus | |
JP5628365B2 (ja) | 検索装置 | |
JP5041003B2 (ja) | 検索装置および検索方法 | |
US20100287193A1 (en) | Bit string search apparatus, search method, and program | |
WO2011099104A1 (ja) | ファイル名管理方法及びファイル名管理装置 | |
JP4956503B2 (ja) | グラフ統合装置及びそのプログラム | |
CN118245640A (zh) | 基于区块链的多模态数据可验证查询方法及系统 | |
JP2011018296A (ja) | カップルドノードツリーのインデックスキー挿入/削除方法 | |
JP4957656B2 (ja) | 情報処理装置及び情報処理プログラム | |
JP2886868B2 (ja) | 文字認識の後処理方法 |