JPWO2013108333A1 - 検索装置、検索方法、及び、検索プログラム - Google Patents

検索装置、検索方法、及び、検索プログラム Download PDF

Info

Publication number
JPWO2013108333A1
JPWO2013108333A1 JP2013554099A JP2013554099A JPWO2013108333A1 JP WO2013108333 A1 JPWO2013108333 A1 JP WO2013108333A1 JP 2013554099 A JP2013554099 A JP 2013554099A JP 2013554099 A JP2013554099 A JP 2013554099A JP WO2013108333 A1 JPWO2013108333 A1 JP WO2013108333A1
Authority
JP
Japan
Prior art keywords
search
rank
previous
node
attention
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
JP2013554099A
Other languages
English (en)
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
Priority to JP2013554099A priority Critical patent/JPWO2013108333A1/ja
Publication of JPWO2013108333A1 publication Critical patent/JPWO2013108333A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (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

前回の検索条件と前方一致する検索条件に対して、探索木上の探索範囲を限定して検索を行う場合に、検索をより高速に行う。探索木記憶部210は、要素列である複数の検索対象を表す探索木を記憶する。前回検索条件記憶部240は、前回検索要素列を記憶する。前回探索経路記憶部250は、探索木において前回検索要素列を探索する場合に辿るノードの内、注目順位に対応する階層のノードを示す前回探索経路情報を記憶する。探索開始ノード判定部110は、入力された検索要素列と前回検索要素列とで、注目順位より前の要素列を一括して比較し、一致する場合、前回探索経路情報で示されるノードを探索開始ノードと決定する。検索部120は、探索木上の探索開始ノードから、入力された検索要素列の注目順位以降の要素について探索を行う。

Description

本発明は、検索装置、検索方法、及び、検索プログラムに関し、特に、木構造の探索により検索を行う検索装置、検索方法、及び、検索プログラムに関する。
検索対象である複数の要素列から、検索条件の要素列を、木構造を用いて検索する検索装置が知られている。ここで、要素列は、所定の順序で整列された複数の要素により構成される。要素は、例えば、文字データ等の小単位のデータである。
このような検索装置として、トライ木構造を利用した検索装置がある。図22は、トライ木構造の例を示す図である。
トライ木構造では、要素列の各順位(先頭からの順序、または、位置)が、木構造の階層に対応付けられる。また、トライ木構造は、階層毎に、当該階層に対応する順位の各要素について一致判定を行うためのノードを持つ。各ノードは、検索条件と比較を行う要素、及び、当該要素と一致した場合に、次に辿る子ノードへのリンクを持つ。さらに、トライ木構造は、検索対象を格納する葉ノードを持つ。
図22の木構造は、検索対象の要素列が、4つのアルファベット文字列「aa」、「ab」、「ba」、「bb」の場合の例である。ここで、1番目の階層には、順位「1」の要素について一致判定を行うためのノード識別子N1のノード、2番目の階層には、順位「2」の要素について一致判定を行うためのノード識別子N21、N22のノードが配置されている。また、ノード識別子N1のノードは、文字「a」に対してノード識別子N21のノードへのリンク、文字「b」に対してノード識別子N22のノードへのリンクを持つ。さらに、葉ノードとして、検索対象である4つのアルファベット文字列を格納する、ノード識別子N31、N32、N33、N34のノードが配置される。
トライ木構造を利用した検索装置では、検索結果を得るために、以下のような木構造の探索が行われる。まず、根ノードの要素に、検索条件の順位「1」(先頭)の要素と一致する要素があるかどうかが判定(一致判定)され、一致する要素が存在すれば、当該要素に対するリンクで示された子ノードへの移動が行われる。次に、子ノードにおいて、同様に、ノードの要素に、検索条件の次の順位の要素と一致する要素があるかどうかが判定され、一致する要素が存在すれば、当該要素に対するリンクで示された子ノードへの移動が行われる。このように、一致判定の結果に従って、次のノードに移動することを、ノードを辿ると定義する。一致する要素が無い場合、木構造の探索は終了する。以上の動作が、葉ノードに辿り着くまで繰り返され、葉ノードに格納されている検索対象が、検索結果として出力される。
例えば、図22において、検索条件として文字列「aa」が入力された場合、ノード識別子N1のノードにおいて、順位「1」の文字の一致判定が行われ、文字「a」との一致判定結果が得られる。次に、文字「a」に対応するリンクにより示されるノード識別子N21のノードにおいて、順位「2」の文字の一致判定が行われ、文字「a」との一致判定結果が得られる。文字「a」に対応するリンクにより示されるノード識別子N31のノードは葉ノードであるため、文字列「aa」が、検索結果として出力される。
トライ木構造を利用した検索装置では、検索を連続して行う場合に、連続する検索条件の要素列の先頭からある順位までの要素が一致(前方一致)する場合でも、検索を行うたびに、トライ木構造の根ノードからの探索を行う必要があるという問題があった。
このような連続した検索を高速化する技術の一例が、例えば、特許文献1に記載されている。特許文献1の検索装置は、前回の検索条件の要素列と、前回の検索における木構造の探索で辿ったノードを記憶する。新たに検索条件が入力されると、検索装置は、前回の検索条件の要素列と入力された検索条件の要素列を、先頭の順位から比較し、一致か不一致かを判定する。そして、検索装置は、前回の検索において辿ったノードの内、不一致と判定された順位の1つ上位の順位に対応するノード(探索開始ノード)から、入力された検索条件に対する探索を開始する。これにより、木構造における探索開始ノードまでの探索が省略され、探索範囲が当該探索開始ノード以下のノードに限定されるため、検索が高速化される。
特開平11−184857号公報
上述の特許文献1に記載された技術では、探索開始ノードを決定するために、要素列の先頭から順番に要素の比較を繰り返す必要があり、検索に時間がかかるという問題がある。
本発明の目的は、上述の課題を解決し、前回の検索条件と前方一致する検索条件の検索を探索木上の探索範囲を限定して行う場合に、検索をより高速化できる、検索装置、検索方法、及び、検索プログラムを提供することである。
本発明の一態様における検索装置は、要素列である複数の検索対象を表し、ルートからの各階層に要素列の先頭からの各順位を対応付けた探索木を記憶する探索木記憶手段と、前回の検索要素列を記憶する前回検索条件記憶手段と、前記探索木において前記前回の検索要素列を探索する場合に辿るノードの内、注目順位に対応する階層のノードを示す前回探索経路情報を記憶する前回探索経路情報記憶手段と、入力された検索要素列と前記前回の検索要素列との間で、前記注目順位より前の要素列を一括して比較し、一致する場合、前記前回探索経路情報で示されるノードを探索開始ノードと決定する探索開始ノード判定手段と、前記探索木上の前記探索開始ノードから、前記入力された検索要素列の前記注目順位以降の要素について探索を行うことにより、前記複数の検索対象から前記入力された検索要素列を検索する検索手段と、を含む。
本発明の一態様における検索方法は、要素列である複数の検索対象を表し、ルートからの各階層に要素列の先頭からの各順位を対応付けた探索木を記憶し、前回の検索要素列を記憶し、前記探索木において前記前回の検索要素列を探索する場合に辿るノードの内、注目順位に対応する階層のノードを示す前回探索経路情報を記憶し、入力された検索要素列と前記前回の検索要素列との間で、前記注目順位より前の要素列を一括して比較し、一致する場合、前記前回探索経路情報で示されるノードを探索開始ノードと決定し、前記探索木上の前記探索開始ノードから、前記入力された検索要素列の前記注目順位以降の要素について探索を行うことにより、前記複数の検索対象から前記入力された検索要素列を検索する。
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、コンピュータに、要素列である複数の検索対象を表し、ルートからの各階層に要素列の先頭からの各順位を対応付けた探索木を記憶し、前回の検索要素列を記憶し、前記探索木において前記前回の検索要素列を探索する場合に辿るノードの内、注目順位に対応する階層のノードを示す前回探索経路情報を記憶し、入力された検索要素列と前記前回の検索要素列との間で、前記注目順位より前の要素列を一括して比較し、一致する場合、前記前回探索経路情報で示されるノードを探索開始ノードと決定し、前記探索木上の前記探索開始ノードから、前記入力された検索要素列の前記注目順位以降の要素について探索を行うことにより、前記複数の検索対象から前記入力された検索要素列を検索する、処理を実行させる検索プログラムを格納する。
本発明の効果は、前回の検索条件と前方一致する検索条件の検索を探索木上の探索範囲を限定して行う場合に、検索をより高速化できることである。
本発明の第1の実施の形態の特徴的な構成を示すブロック図である。 本発明の第1の実施の形態における、検索装置100の構成を示すブロック図である。 本発明の第1の実施の形態における、検索処理を示すフローチャートである。 本発明の第1の実施の形態における、探索処理の詳細を示すフローチャートである。 本発明の第1の実施の形態における、探索木300の例を示す図である。 本発明の第1の実施の形態における、探索木情報310の例を示す図である。 本発明の第1の実施の形態における、注目順位情報320の例を示す図である。 本発明の第1の実施の形態における、検索毎の前回検索条件340、及び、前回探索経路情報350の例を示す図である。 本発明の第2の実施の形態における、検索装置100の処理を示すフローチャートである。 本発明の第2の実施の形態における、注目順位情報321の例を示す図である。 本発明の第2の実施の形態における、検索毎の前回検索条件340、及び、前回探索経路情報351の例を示す図である。 本発明の第3の実施の形態における、検索装置100の構成を示すブロック図である。 本発明の第3の実施の形態における、注目順位更新処理を示すフローチャートである。 本発明の第3の実施の形態における、要素変化数情報360の例を示す図である。 本発明の第4の実施の形態における、検索装置100の構成を示すブロック図である。 本発明の第4の実施の形態における、検索処理を示すフローチャートである。 本発明の第4の実施の形態における、探索木更新処理を示すフローチャートである。 本発明の第4の実施の形態における、再整列順位情報370の例を示す図である。 本発明の第4の実施の形態における、検索対象の再整列の例を示す図である。 本発明の第4の実施の形態における、探索木301の例を示す図である。 本発明の第4の実施の形態における、探索木情報311の例を示す図である。 トライ木構造の例を示す図である。
(第1の実施の形態)
次に、本発明の第1の実施の形態について説明する。
はじめに、本発明の第1の実施の形態の構成について説明する。図2は、本発明の第1の実施の形態における、検索装置100の構成を示すブロック図である。
図2を参照すると、本発明の第1の実施の形態の検索装置100は、探索開始ノード判定部110、検索部120、探索木記憶部210、注目順位記憶部220、前回検索条件記憶部240、及び、前回探索経路記憶部250を含む。
ここで、探索木記憶部210は、探索木300の木構造を示す探索木情報310を記憶する。
図5は、本発明の第1の実施の形態における、探索木300の例を示す図である。図5の探索木300は、検索対象が、アルファベット文字を要素とする、要素列長が3の6つの要素列「aaa」、「aab」、「aba」、「abb」、「baa」、及び、「bab」である場合の例である。ここで、要素列における各要素の先頭からの順序(位置)を順位と定義する。探索木300は、1番目の階層に、順位「1」の要素について一致判定を行うためのノード識別子N1のノード、2番目の階層に、順位「2」の要素について一致判定を行うためのノード識別子N21、N22のノード、及び、3番目の階層に、順位「3」の要素について一致判定を行うためのノード識別子N31、N32、N33を持つ。また、探索木300は、葉ノードとして、検索対象を格納する、ノード識別子N41、N42、N43、N44、N45、N46のノードを持つ。
図6は、本発明の第1の実施の形態における、探索木情報310の例を示す図である。図6の探索木情報310は、図5の探索木300に対応する。
探索木情報310は、「ノードID」、「順位」、「子ノードリンク情報」、及び、「検索対象」を含む。ここで、「ノードID」はノードの識別子を示す。「順位」は、当該ノードの探索木300上の階層に対応し、当該ノードで一致判定を行う要素の順位を示す。なお、順位「1」は、探索木300上の根ノードの階層に対応する。「子ノードリンク情報」は、「要素」及び「子ノードID」を含む。「要素」は、一致判定を行う要素の値を示す。「子ノードID」は、検索条件の要素列の「順位」で示される順位の要素の値と「要素」で示される値とが一致した場合の移動先である、子ノードの識別子を示す。なお、葉ノードは子ノードを持たないため、葉ノードには、「子ノードリンク情報」は設定されない。「検索対象」は、検索対象の要素列を示す。なお、葉ノード以外のノードには、「検索対象」は設定されない。探索木情報310は、予め、ユーザ等により、検索対象の要素列に基づいて生成され、探索木記憶部210に設定される。
注目順位記憶部220は、注目順位情報320を記憶する。図7は、本発明の第1の実施の形態における、注目順位情報320の例を示す図である。注目順位情報320は、注目順位を示す。探索開始ノードを決定する場合、入力された検索条件の要素列と前回検索条件340の要素列との間で、注目順位より前の要素列が比較される。注目順位情報320は、予め、ユーザ等によりに設定される。
前回検索条件記憶部240は、前回検索条件340を記憶する。前回探索経路記憶部250は、前回探索経路情報350を記憶する。図8は、本発明の第1の実施の形態における、検索毎の前回検索条件340、及び、前回探索経路情報350の例を示す図である。前回検索条件340は、前回の検索における検索条件の要素列を示す。また、前回探索経路情報350は、探索木300において、前回検索条件340を探索する時に辿るノードの内、注目順位に対応するノードのノード識別子を示す。
探索開始ノード判定部110は、入力された検索条件330と前回検索条件340との要素列を比較し、探索木300上での探索の始点である探索開始ノードを、前回探索経路情報350をもとに決定する。
検索部120は、探索木300上で、探索開始ノードから探索を行い、入力された検索条件330に対する検索結果380を取得する。また、検索部120は、前回検索条件340と前回探索経路情報350とを更新する。
なお、検索装置100はCPU(Central Processing Unit)とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、探索木記憶部210、注目順位記憶部220、前回検索条件記憶部240、及び、前回探索経路記憶部250は、それぞれ個別の記憶媒体でも、1つの記憶媒体によって構成されてもよい。
次に、本発明の第1の実施の形態における検索装置100の動作について説明する。
図3は、本発明の第1の実施の形態における、検索処理を示すフローチャートである。
はじめに、検索装置100は、ユーザから、検索条件330の入力を受け付ける(ステップS101)。
次に、検索装置100の探索開始ノード判定部110は、検索条件330と前回検索条件340との間で、注目順位情報320の注目順位より前の順位の各要素を比較し、注目順位より前の全順位の要素(注目順位より前の要素列)が一致するかどうかを判定する(ステップS102)。
ここで、探索開始ノード判定部110は、注目順位より前の要素列を、一括して比較し、上記判定を行う。この場合、例えば、探索開始ノード判定部110は、検索条件330と前回検索条件340との、注目順位より前の要素列を、所定のハッシュ関数によりハッシュ値に変換し、これらハッシュ値同士が一致するかどうかを判定する。なお、探索開始ノード判定部110は、注目順位より前の要素列を一括して比較し、上記判定ができれば、他の方法を用いて判定してもよい。
ステップS102において、一致すると判定された場合(ステップS102/Yes)、探索開始ノード判定部110は、注目順位を探索開始順位に設定する(ステップS103)。
次に、探索開始ノード判定部110は、前回探索経路情報350を基に、探索開始ノードを決定する。ここで、探索開始ノード判定部110は、前回探索経路情報350で示されるノード識別子を探索開始ノードに設定する(ステップS104)。なお、ステップS104において、前回探索経路情報350にノード識別子が設定されていない場合は、ステップS119で後述するように、前回検索条件340の検索において、注目順位より小さい(前の)順位までの探索で、検索結果380が「なし」であったことに相当するため、検索条件330に対しても、検索結果380に「なし」を設定し検索を終了する。
一方、ステップS102において、一致しないと判定された場合(ステップS102/No)、探索開始ノード判定部110は、順位「1」を探索開始順位に設定し(ステップS105)、根ノードの識別子を探索開始ノードに設定する(ステップS106)。なお、初期状態では、前回検索条件340、及び、前回探索経路情報350が設定されていないため、探索開始ノード判定部110は、根ノードの識別子を探索開始ノードに設定する。
次に、検索部120は、探索木情報310を参照し、探索木300上の探索開始ノードから、検索条件330の要素列の探索を行う(ステップS107)。
図4は、本発明の第1の実施の形態における、探索処理(ステップS107)の詳細を示すフローチャートである。
はじめに、検索部120は、探索ノードに探索開始ノードを設定する(ステップS111)。
次に、検索部120は、探索木情報310を参照し、探索ノードが葉ノードであるかどうかを判定する(ステップS112)。
ステップS112において、探索ノードが葉ノードであれば(ステップS112/Yes)、検索部120は、探索木情報310における、探索ノードに対する検索対象を検索結果380に設定し(ステップS118)、処理を終了する。
一方、ステップS112において、探索ノードが葉ノードでなければ(ステップS112/No)、検索部120は、探索木情報310における、探索ノードに対する順位を、比較順位に設定する。そして、検索部120は、比較順位が注目順位と一致するかどうかを判定する(ステップS113)。
ステップS113において、比較順位が注目順位と一致する場合(ステップS113/Yes)、検索部120は、前回探索経路情報350のノード識別子を、探索ノードのノード識別子で更新する(ステップS114)。
次に、検索部120は、探索木情報310における、探索ノードに対する要素の内、検索条件330の要素列における比較順位の要素と一致する要素が存在するかどうかを判定する(ステップS115)。
ステップS115において、一致する要素が存在する場合(ステップS115/Yes)、検索部120は、探索木情報310における、当該要素に対する子ノード識別子を探索ノードに設定する(ステップS116)。そして、検索部120は、ステップS112からS119までの処理を、検索結果380が得られるまで、再帰的に繰り返す(ステップS117)。
また、ステップS115において、一致する要素が存在しない場合(ステップS115/No)、検索部120は、検索結果380に「なし」を設定し(ステップS119)、処理を終了する。なお、ステップS119において、比較順位が注目順位より小さい場合(ステップS114における前回探索経路情報350の更新が行われていない場合)、検索部120は、前回探索経路情報350の設定値を削除(初期化)する。
次に、検索部120は、検索条件330で、前回検索条件340を更新する(ステップS108)。
最後に、検索装置100は、検索結果380を出力する(ステップS109)。
次に、初期状態からの連続する検索について、具体例を説明する。
ここで、図6の探索木情報310が設定されていると仮定する。また、注目順位情報320には、図7に示すように、注目順位「3」が設定されていると仮定する。さらに、初期状態では、図8の状態(a)に示すように、前回検索条件340、及び、前回探索経路情報350が設定されていないと仮定する。
1回目の検索の検索条件330として、要素列「aaa」が入力された場合、探索開始ノード判定部110は、根ノードのノード識別子「N1」を探索開始ノードに設定する。
検索部120は、探索開始ノードの識別子「N1」を探索ノード、順位「1」を比較順位に設定する。検索部120は、検索条件330の比較順位「1」の要素「a」と探索ノード「N1」の要素「a」が一致するため、当該要素に対する子ノード「N21」を探索ノードに設定する。
検索部120は、順位「2」を比較順位に設定する。検索部120は、検索条件330の比較順位「2」の要素「a」と探索ノード「N21」の要素と「a」が一致するため、当該要素に対する子ノード「N31」を探索ノードに設定する。
検索部120は、順位「3」を比較順位に設定する。比較順位「3」は注目順位と一致するため、検索部120は、前回探索経路情報350のノード識別子に、図8の状態(b)に示すように、探索ノードのノード識別子「N31」を設定する。検索部120は、検索条件330の比較順位「3」の要素「a」と探索ノード「N31」の要素「a」とが一致するため、当該要素に対する子ノード「N41」を探索ノードに設定する。
探索ノード「N41」は葉ノードであるため、検索部120は、探索ノード「N41」の検索対象「aaa」を検索結果380に設定する。そして、検索部120は、図8の状態(b)に示すように、前回検索条件340に検索条件330「aaa」を設定する。
次に、2回目の検索の検索条件330として、要素列「aab」が入力された場合、探索開始ノード判定部110は、検索条件330と図8の状態(b)の前回検索条件340との間で、注目順位「3」より前の要素列を一括して比較する。ここで、注目順位「3」より前の要素列「aa」が一致するため、探索開始ノード判定部110は、図8の状態(b)の前回探索経路情報350におけるノード識別子「N31」を探索開始ノードに設定する。
検索部120は、探索開始ノードから、探索ノード「N31」、「N41」の順に、探索を行い、検索対象「aab」を検索結果380に設定する。ここで、検索部120は、図8の状態(c)に示すように、前回検索条件340に検索条件330「aab」を設定し、前回探索経路情報350に、探索ノードのノード識別子「N31」を設定する。
以上により、本発明の第1の実施の形態の動作が完了する。
次に、本発明の第1の実施の形態の特徴的な構成を説明する。図1は、本発明の第1の実施の形態の特徴的な構成を示すブロック図である。
検索装置100は、探索開始ノード判定部110、検索部120、探索木記憶部210、前回検索条件記憶部240、及び、前回探索経路記憶部250を含む。
ここで、探索木記憶部210は、要素列である複数の検索対象を表し、ルートからの各階層に要素列の先頭からの各順位を対応付けた探索木300を記憶する。
前回検索条件記憶部240は、前回の検索要素列である前回検索条件340を記憶する。
前回探索経路記憶部250は、探索木300において前回検索条件340の要素列を探索する場合に辿るノードの内、注目順位に対応する階層のノードを示す前回探索経路情報350を記憶する。
探索開始ノード判定部110は、入力された検索条件330の要素列と前回検索条件340の要素列とで、注目順位より前の要素列を一括して比較し、一致する場合、前回探索経路情報350で示されるノードを探索開始ノードと決定する。
検索部120は、探索木300上の探索開始ノードから、入力された検索条件330の注目順位以降の要素について探索を行うことにより、複数の検索対象から入力された検索条件330の要素列を検索する。
本発明の第1の実施の形態によれば、前回の検索条件と前方一致する検索条件の検索を探索木上の探索範囲を限定して行う場合に、検索をより高速化できる。その理由は、探索開始ノード判定部110が、入力された検索条件330の要素列と前回検索条件340の要素列とで、注目順位より前の要素列を一括して比較し、一致する場合、前回探索経路情報350で示されるノードを探索開始ノードと決定するためである。これにより、連続する検索条件の要素列間で、特定の順位までの要素列が前方一致することが多い場合、当該順位を注目順位に設定することにより、探索開始ノードの決定が効率化され、検索がより高速化される。
また、本発明の第1の実施の形態によれば、探索経路に関して記憶が必要な情報量を削減できる。その理由は、上述のように、探索開始ノード判定部110が、前回検索条件340の要素列を探索する場合に辿るノードの内、注目順位に対応する階層のノードを探索開始ノードと決定するためである。これにより、前回検索条件340の要素列を探索する場合に辿る全ノードではなく、少なくとも、探索開始ノードの決定に必要な注目順位に対応する階層のノードの情報を前回探索経路情報350に記憶することで、探索開始ノードを決定できる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
本発明の第2の実施においては、前回探索経路情報351に含まれる複数の注目順位のノードから、探索開始ノードを決定する点において、本発明の第1の実施の形態と異なる。なお、本発明の第2の実施において、本発明の第1の実施の形態と同一の符号を有する構成要素は、特に説明のない限り、本発明の第1の実施の形態と同様とする。
本発明の第2の実施において、注目順位記憶部220は、注目順位情報321を記憶する。図10は、本発明の第2の実施の形態における、注目順位情報321の例を示す図である。注目順位情報321は、複数の注目順位を含む。
前回探索経路記憶部250は、前回探索経路情報351を記憶する。図11は、本発明の第2の実施の形態における、検索毎の前回検索条件340、及び、前回探索経路情報351の例を示す図である。前回探索経路情報351は、前回検索条件340の検索で辿った探索木300上のノードの内、複数の注目順位の各々に対応するノードのノード識別子を示す。
次に、本発明の第2の実施の形態における検索装置100の動作について説明する。
図9は、本発明の第2の実施の形態における、検索装置100の処理を示すフローチャートである。
はじめに、検索装置100の探索開始ノード判定部110は、ユーザから、検索条件330の入力を受け付ける(ステップS201)。
次に、検索装置100の探索開始ノード判定部110は、注目順位情報321に含まれる複数の注目順位の内の大きい(後方の)順位より順番に、検索条件330と前回検索条件340との、当該注目順位より前の順位の各要素を比較し、当該注目順位より前の要素列が一致するかどうかを判定する(ステップS202)。ここで、探索開始ノード判定部110は、複数の注目順位の各々について、当該注目順位より前の要素列を、一括して比較し、上記判定を行う。
なお、探索開始ノード判定部110は、注目順位情報321に含まれる複数の注目順位の内の小さい(前方の)順位より順番に上記判定を行う等、他の順番で上記判定を行ってもよい。
ステップS202において、いずれかの注目順位について、一致すると判定された場合(ステップS202/Yes)、探索開始ノード判定部110は、当該注目順位を探索開始順位に設定する(ステップS203)。
次に、探索開始ノード判定部110は、前回探索経路情報351を基に、探索開始ノードを決定する。ここで、探索開始ノード判定部110は、前回探索経路情報351における、探索開始順位に対応するノード識別子を探索開始ノードに設定する(ステップS204)。なお、ステップS204において、探索開始順位に対応するノード識別子が設定されていない場合は、ステップS119で後述するように、前回検索条件340の検索において、探索開始順位より小さい(前の)順位までの探索で、検索結果380が「なし」であったことに相当するため、検索条件330に対しても、検索結果380に「なし」を設定し検索を終了する。
一方、ステップS202において、全ての注目順位について、一致しないと判定された場合(ステップS202/No)、探索開始ノード判定部110は、順位「1」を探索開始順位に設定する(ステップS205)。そして、探索開始ノード判定部110は、根ノードを探索開始ノードと決定する(ステップS206)。
次に、検索部120は、探索木情報310を参照し、探索木300上の探索開始ノードから、検索条件330の要素列の探索を行う(ステップS207)。
本発明の第2の実施の形態における探索処理は、前回探索経路情報351の更新(ステップS113、S114、及び、S119)を除いて、本発明の第1の実施の形態(図4)と同様となる。
本発明の第2の実施の形態の探索処理においては、ステップS113において、検索部120は、比較順位が注目順位情報321に含まれる複数の注目順位のいずれかと一致するかどうかを判定する。比較順位が複数の注目順位のいずれかと一致する場合、ステップS114において、検索部120は、前回探索経路情報351における比較順位に対応するノード識別子を、探索ノードのノード識別子で更新する。
また、ステップS119において、検索部120は、前回探索経路情報350の注目順位の内、比較順位より大きい(ステップS114における更新が行われていない)注目順位に対する設定値を削除(初期化)する。
次に、検索部120は、検索条件330で、前回検索条件340を更新する(ステップS208)。
最後に、検索部120は、検索結果380を出力する(ステップS209)。
次に、初期状態からの連続する検索について、具体例を説明する。
ここでは、図6の探索木情報310が設定されていると仮定する。また、注目順位情報321には、図10に示すように、注目順位「2」「3」が設定されていると仮定する。さらに、初期状態では、図11の状態(a)に示すように、前回検索条件340、及び、前回探索経路情報351が設定されていないと仮定する。
1回目の検索の検索条件330として、要素列「aaa」が入力された場合、探索開始ノード判定部110は、根ノードのノード識別子「N1」を探索開始ノードに設定する。検索部120は、探索ノード「N1」、「N21」、「N31」、「N41」の順に、探索を行い、検索対象「aaa」を検索結果380に設定する。ここで、検索部120は、図10の状態(b)に示すように、検索条件330「aaa」を前回検索条件340に設定し、前回探索経路情報351の順位「2」「3」に対して、ノード識別子「N21」「N31」を設定する。
次に、2回目の検索の検索条件330として、要素列「abb」が入力された場合、探索開始ノード判定部110は、検索条件330と図11の状態(b)の前回検索条件340との間で、注目順位「3」より前、及び、注目順位「2」より前の要素列を、それぞれ一括して比較する。ここで、注目順位「2」より前の要素列「a」が一致するため、探索開始ノード判定部110は、図11の状態(b)の前回探索経路情報351における、順位「2」に対するノード識別子「N21」を探索開始ノードに設定する。
検索部120は、探索開始ノードから、探索ノード「N21」、「N32」、「N44」の順に、探索を行い、検索対象「abb」を検索結果380に設定する。そして、検索部120は、図11の状態(c)に示すように、検索条件330「abb」を前回検索条件340に設定し、前回探索経路情報351の順位「2」「3」に対して、ノード識別子「N21」「N32」を設定する。
次に、3回目の検索の検索条件330として、要素列「aba」が入力された場合、探索開始ノード判定部110は、検索条件330と図11の状態(c)の前回検索条件340との間で、注目順位「3」より前、及び、注目順位「2」より前の要素列を、それぞれ一括して比較する。ここで、注目順位「3」より前の要素列「ab」が一致するため、探索開始ノード判定部110は、図11の状態(c)の前回探索経路情報351における、順位「3」に対するノード識別子「N32」を探索開始ノードに設定する。
検索部120は、探索開始ノードから、探索ノード「N32」、「N43」の順に、探索を行い、検索対象「aba」を検索結果380に設定する。そして、検索部120は、図11の状態(d)に示すように、検索条件330「aba」を前回検索条件340に設定し、前回探索経路情報351の順位「3」に対して、ノード識別子「N32」を設定する。
以上により、本発明の第2の実施の形態の動作が完了する。
本発明の第2の実施の形態によれば、連続する検索条件の要素列間で、特定の複数の順位までの要素列が前方一致することが多い場合、第1の実施の形態に比べて、検索をさらに高速化できる。その理由は、探索開始ノード判定部110が、入力された検索条件330の要素列と前回検索条件340の要素列とで、複数の注目順位の各々より前の要素列を一括して比較し、複数の注目順位のいずれかより前の要素列が一致する場合、前回探索経路情報350で示される当該注目順位に対応するノードを探索開始ノードと決定するためである。これにより、前方一致する順位が小さい(前方の)場合、すなわち、探索範囲の限定の効果が小さいがその機会が多い場合と、前方一致する順位が大きい(後方の)場合、すなわち、探索範囲の限定の効果が大きいがその機会が少ない場合とが、混在する場合でも、どちらの場合についても探索開始ノードの決定が効率化され、検索がさらに高速化される。
(第3の実施の形態)
次に、本発明の第3の実施の形態について説明する。
本発明の第3の実施においては、連続する検索条件の間で、各順位における要素が不一致となった回数に応じて、注目順位を更新する点において、本発明の第1の実施の形態と異なる。なお、本発明の第3の実施において、本発明の第1の実施の形態と同一の符号を有する構成要素は、特に説明のない限り、本発明の第1の実施の形態と同様とする。
はじめに、本発明の第3の実施の形態の構成について説明する。図12は、本発明の第3の実施の形態における、検索装置100の構成を示すブロック図である。
図12を参照すると、本発明の第3の実施の形態の検索装置100は、第1の実施の形態の検索装置100の構成要素に加えて、要素変化数更新部130、注目順位更新部140、及び、要素変化数記憶部260を含む。
ここで、要素変化数記憶部260は、要素変化数情報360を記憶する。図14は、本発明の第3の実施の形態における、要素変化数情報360の例を示す図である。要素変化数情報360は、順位毎に、連続する検索条件間で、当該順位の要素が不一致となった回数を示す「変化数」を含む。
要素変化数更新部130は、入力された検索条件330と前回の検索条件とをもとに、要素変化数情報360を更新する。
注目順位更新部140は、要素変化数情報360をもとに、注目順位情報320を更新する。
次に、本発明の第3の実施の形態における検索装置100の動作について説明する。
本発明の第3の実施の形態における検索処理は、本発明の第1の実施の形態(図3、図4)と同様となる。
次に、本発明の第3の実施の形態における、注目順位更新処理について説明する。
ここでは、図14の要素変化数情報360が設定されていると仮定する。
図13は、本発明の第3の実施の形態における、注目順位更新処理を示すフローチャートである。注目順位更新処理は、検索処理(ステップS101からS109)に続いて実行される。
はじめに、検索装置100の要素変化数更新部130は、ステップS101で入力された検索条件330と図示しない記憶部に記憶された前回の検索条件とを比較し、検索条件330と前回の検索条件との間で、要素が不一致となる順位を検出する(ステップS321)。なお、要素変化数更新部130は、ステップS208で更新される前の前回検索条件340を取得し、入力された検索条件330と比較してもよい。
例えば、前回の検索条件が「aaa」であり、入力された検索条件330が「abb」である場合、要素変化数更新部130は、順位「2」「3」を検出する。
要素変化数更新部130は、要素変化数情報360における、ステップS321で検出された順位に対する変化数を更新する(ステップS322)。
例えば、要素変化数更新部130は、図14の要素変化数情報360における、順位「2」「3」に対する変化数に1を加算し、それぞれ「91」「11」に更新する。
次に、注目順位更新部140は、要素変化数情報360をもとに、注目順位情報320の注目順位を更新する(ステップS323)。ここで、注目順位更新部140は、要素変化数情報360において、変化数が他の順位に比べて大きい順位を、注目順位情報320の注目順位に設定する。
例えば、注目順位更新部140は、変化数が最大の順位「2」を注目順位に設定する。
ステップS323において注目順位が変更された場合(ステップS324/Yes)、注目順位更新部140は、前回検索条件340の設定値を削除(初期化)する(ステップS325)。また、注目順位更新部140は、前回探索経路情報350の設定値を削除(初期化)する(ステップS326)。これにより、注目順位が変更された後は、根ノードからの検索が行われる。
以降、次の検索から、更新された注目順位で、検索処理(ステップS101からS109)が実行される。
なお、本発明の第3の実施の形態においては、注目順位情報320の更新(ステップS323からS326)を検索処理のたびに実行するが、注目順位情報320の更新を、所定の検索回数等、検索回数に関する所定条件を満たした場合や、ユーザ等による指示に応答して実行してもよい。
また、要素変化数情報360における変化数の初期化を、検索回数に関する所定条件を満たした場合や、ユーザ等による指示に応答して実行してもよい。
また、本発明の第3の実施の形態における注目順位の更新を、本発明の第2の実施の形態に適用してもよい。この場合、変化数が他の順位に比べて大きい所定数の順位を、注目順位として設定してもよい。
以上により、本発明の第3の実施の形態の動作が完了する。
本発明の第3の実施の形態によれば、要素列が前方一致することが多い順位が予め特定できない場合でも、検索をより高速化できる。その理由は、要素変化数更新部130が、入力された検索条件330と前回の検索条件との間で各順位の要素を比較し、注目順位更新部140が、他の順位に比べて要素が不一致となった回数が多い順位を、注目順位に設定するためである。
(第4の実施の形態)
次に、本発明の第4の実施の形態について説明する。
本発明の第4の実施の形態においては、もとの検索対象の要素列を再整列順位で再整列した(並び変えた)検索対象に関する探索木301を用いて、検索処理を行う点において、本発明の第1の実施の形態と異なる。
なお、本発明の第4の実施において、本発明の第1の実施の形態と同一の符号を有する構成要素は、特に説明のない限り、本発明の第1の実施の形態と同様とする。
はじめに、本発明の第4の実施の形態の構成について説明する。図15は、本発明の第4の実施の形態における、検索装置100の構成を示すブロック図である。
図15を参照すると、本発明の第4の実施の形態の検索装置100は、第1の実施の形態の検索装置100の構成要素に加えて、要素変化数更新部130、探索木更新部150、検索条件再整列部160、検索結果再整列部170、要素変化数記憶部260、及び、再整列順位記憶部270を含む。ここで、要素変化数更新部130、及び、要素変化数記憶部260は、本発明の第3の実施の形態と同一である。
再整列順位記憶部270は、再整列順位情報370を記憶する。図18は、本発明の第4の実施の形態における、再整列順位情報370の例を示す図である。再整列順位情報370は、順位毎に、当該順位に対応する再整列後の順位を示す「再整列順位」を含む。
探索木記憶部210は、再整列順位で再整列された検索対象(再整列検索対象)に関する探索木301の探索木情報311を記憶する。図20は、本発明の第4の実施の形態における、探索木301の例を示す図である。図20の探索木301は、図5の探索木300における検索対象を、図18の再整列順位情報370の再整列順位で再整列した場合の例である。図21は、本発明の第4の実施の形態における、探索木情報311の例を示す図である。図21の探索木情報311は、図20の探索木301に対応する。
なお、初期状態では、再整列順位情報370の再整列順位は、もとの順位と同じであり、探索木情報311には、再整列されていない検索対象に関する探索木の情報が設定されていると仮定する。
探索木更新部150は、要素変化数情報360をもとに、再整列順位情報370、及び、探索木情報311を更新する。
検索条件再整列部160は、入力された検索条件330の要素列を、再整列順位で再整列して、検索条件331に変換する。
探索開始ノード判定部110は、検索条件331と前回検索条件340との要素列を比較し、探索木301上での探索の始点である探索開始ノードを、前回探索経路情報350をもとに決定する。
検索部120は、探索木301上で、探索開始ノードから探索を行い、検索条件331に対する検索結果381を取得する。また、検索部120は、前回検索条件340と前回探索経路情報350とを更新する。
なお、注目順位情報320の注目順位は、再整列順位を用いて設定される。また、前回検索条件340には、再整列された検索条件331が設定される。
検索結果再整列部170は、探索木301上での検索結果381の要素列を、もとの順位で再整列して、検索結果380に変換する。
次に、本発明の第4の実施の形態における検索装置100の動作について説明する。
はじめに、本発明の第4の実施の形態における、検索処理について説明する。
図16は、本発明の第4の実施の形態における、検索処理を示すフローチャートである。
ここでは、探索木更新部150により、図21の探索木情報311、及び、図18の再整列順位情報370が設定されていると仮定する。
はじめに、検索装置100は、ユーザから、検索条件330の入力を受け付ける(ステップS401)。
次に、検索装置100の検索条件再整列部160は、検索条件330の要素列を再整列順位で再整列して、検索条件331に変換する(ステップS402)。
例えば、検索条件330として、要素列「abb」が入力された場合、検索条件再整列部160は、検索条件330「abb」を図18の再整列順位情報370における再整列順位で再整列し、検索条件331「bab」に変換する。
次に、探索開始ノード判定部110と検索部120は、本発明の第1の実施の形態におけるステップS102からS108と同様に、探索開始ノードを決定し、探索木301上の探索開始ノードから探索を行う。検索部120は、検索条件331に対する検索結果381を取得する(ステップS403)。
例えば、検索部120は、図21の探索木情報311を用いて探索を行い、検索条件331「bab」に対する検索対象「bab」を検索結果381に設定する。
次に、検索結果再整列部170は、検索結果381の要素列を、もとの順序で再整列して、検索結果381に変換する。(ステップS404)。
例えば、検索結果再整列部170は、検索結果381「bab」を、もとの順位で再整列した検索結果380「abb」を取得する。
最後に、検索装置100は、検索結果380を出力する(ステップS405)。
次に、本発明の第4の実施の形態における、探索木更新処理について説明する。
図17は、本発明の第4の実施の形態における、探索木更新処理を示すフローチャートである。探索木更新処理は、検索処理(ステップS401からS405)に続いて実行される。
はじめに、検索装置100の要素変化数更新部130は、本発明の第3の実施の形態と同様に、ステップS401で入力された検索条件330と前回の検索条件とを比較し、要素が不一致となる順位を検出する(ステップS421)。そして、要素変化数更新部130は、要素変化数情報360における、ステップS421で検出された順位に対する変化数を更新する(ステップS422)。
探索木更新部150は、要素変化数情報360をもとに、再整列順位情報370の再整列順位を更新する(ステップS423)。ここで、探索木更新部150は、要素変化数情報360における各順位に対する変化数の昇順に順番を付与し、各順位に付与した順番を、再整列順位情報370における、当該順位に対する再整列順位に設定する。
例えば、探索木更新部150は、図14の要素変化数情報360に対して、図18の再整列順位情報370を設定する。
ステップS423において再整列順位が変更された場合(ステップS424/Yes)、探索木更新部150は、再整列順位をもとに、探索木情報311を更新する(ステップS425)。
ここで、探索木更新部150は、図示しない記憶部に記憶されている、もとの検索対象の各々の要素列を再整列順位で整列し、再整列検索対象を取得する。そして、探索木更新部150は、再整列検索対象について探索木情報311を設定する。
図19は、本発明の第4の実施の形態における、検索対象の再整列の例を示す図である。例えば、探索木更新部150は、図18の再整列順位情報370に従って、図19に示すように、もとの検索対象から再整列検索対象を取得する。さらに、探索木更新部150は、図19の再整列検索対象に対して、図21の探索木情報311を生成する。
次に、探索木更新部150は、前回検索条件340の設定値を削除(初期化)する(ステップS426)。また、探索木更新部150は、前回探索経路情報350の設定値を削除(初期化)する(ステップS427)。これにより、再整列順位の変更に伴い探索木301が変更された後は、根ノードからの検索が行われる。
以降、次の検索から、更新された探索木301を用いて、検索処理(ステップS401からS405)が実行される。
なお、本発明の第4の実施の形態においては、再整列順位情報370の更新以降の処理(ステップS423からS427)を検索処理のたびに実行するが、再整列順位情報370の更新を、所定の検索回数等、検索回数に関する所定条件を満たした場合や、ユーザ等による指示に応答して実行してもよい。
また、要素変化数情報360における変化数の初期化を、検索回数関する所定条件を満たした場合や、ユーザ等による指示に応答して実行してもよい。
また、本発明の第4の実施の形態における探索木301の更新を、本発明の第2の実施の形態に適用してもよい。
以上により、本発明の第4の実施の形態の動作が完了する。
本発明の第4の実施の形態によれば、第1の実施の形態に比べて、検索をさらに高速化できる。その理由は、探索木更新部150が、入力された検索条件330と前回の検索条件との間で各順位の要素を比較し、各順位に要素が不一致となった回数の順番を示す再整列順位を付与し、検索対象の要素列の各順位を当該再整列順位に従って並び変え、当該並び変えられた検索対象に対して探索木を生成するためである。これにより、連続する検索条件の要素列間で、注目順位までの要素列が前方一致する機会が増えるため、検索がさらに高速化される。また、注目順位をより大きく(後方に)設定することにより、探索範囲をさらに限定できるため、検索がさらに高速化される。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
例えば、検索対象の要素列が、任意の要素を示すワイルドカード要素を含み、探索木300上のノードにおける子ノードリンク情報が、ワイルドカード要素を含んでいてもよい。この場合、ワイルドカード要素に対する子ノードへのリンクは必ず探索されるため、複数の経路で探索が行われる。そして、前回探索経路情報350には、複数の経路の各々における注目順位に対応するノードが設定される。入力された検索条件330と前回検索条件340とで、注目順位までの要素列が一致した場合、前回探索経路情報350の各ノードを探索開始ノードとして、探索が行われる。
この出願は、2012年1月18日に出願された日本出願特願2012−007857を基礎とする優先権を主張し、その開示の全てをここに取り込む。
100 検索装置
110 探索開始ノード判定部
120 検索部
130 要素変化数更新部
140 注目順位更新部
150 探索木更新部
160 検索条件再整列部
170 検索結果再整列部
210 探索木記憶部
220 注目順位記憶部
240 前回検索条件記憶部
250 前回探索経路記憶部
260 要素変化数記憶部
270 再整列順位記憶部
300 探索木
301 探索木
310 探索木情報
311 探索木情報
320 注目順位情報
321 注目順位情報
330 検索条件
331 検索条件
340 前回検索条件
350 前回探索経路情報
351 前回探索経路情報
360 要素変化数情報
370 再整列順位情報
380 検索結果
381 検索結果

Claims (10)

  1. 要素列である複数の検索対象を表し、ルートからの各階層に要素列の先頭からの各順位を対応付けた探索木を記憶する探索木記憶手段と、
    前回の検索要素列を記憶する前回検索条件記憶手段と、
    前記探索木において前記前回の検索要素列を探索する場合に辿るノードの内、注目順位に対応する階層のノードを示す前回探索経路情報を記憶する前回探索経路情報記憶手段と、
    入力された検索要素列と前記前回の検索要素列との間で、前記注目順位より前の要素列を一括して比較し、一致する場合、前記前回探索経路情報で示されるノードを探索開始ノードと決定する探索開始ノード判定手段と、
    前記探索木上の前記探索開始ノードから、前記入力された検索要素列の前記注目順位以降の要素について探索を行うことにより、前記複数の検索対象から前記入力された検索要素列を検索する検索手段と、を含む検索装置。
  2. 前記前回探索経路情報は、前記探索木において前記前回の検索要素列を探索する場合に辿るノードの内、複数の前記注目順位の各々に対応する階層のノードを示し、
    前記探索開始ノード判定手段は、入力された検索要素列と前記前回の検索要素列との間で、前記複数の注目順位のいずれかより前の要素列が一致する場合、前記前回探索経路情報で示される当該注目順位に対応するノードを、前記探索開始ノードと決定する、請求項1に記載の検索装置。
  3. さらに、前記入力された検索要素列と前記前回の検索要素列との間で各順位の要素を比較し、他の順位に比べて要素が不一致となった回数が多い順位を、前記注目順位に設定する注目順位更新手段を含む、請求項1または2に記載の検索装置。
  4. さらに、前記入力された検索要素列と前記前回の検索要素列との間で各順位の要素を比較し、各順位に要素が不一致となった回数の順番を示す再整列順位を付与し、前記複数の検索対象の要素列の各順位を当該再整列順位に従って並び変え、当該並び変えられた前記複数の検索対象に対して前記探索木を生成する探索木更新手段を含み、
    前記検索手段は、前記再整列順位に従って並び変えられた前記入力された検索要素列を、前記生成された探索木上で検索する、請求項1または2に記載の検索装置。
  5. 要素列である複数の検索対象を表し、ルートからの各階層に要素列の先頭からの各順位を対応付けた探索木を記憶し、
    前回の検索要素列を記憶し、
    前記探索木において前記前回の検索要素列を探索する場合に辿るノードの内、注目順位に対応する階層のノードを示す前回探索経路情報を記憶し、
    入力された検索要素列と前記前回の検索要素列との間で、前記注目順位より前の要素列を一括して比較し、一致する場合、前記前回探索経路情報で示されるノードを探索開始ノードと決定し、
    前記探索木上の前記探索開始ノードから、前記入力された検索要素列の前記注目順位以降の要素について探索を行うことにより、前記複数の検索対象から前記入力された検索要素列を検索する、検索方法。
  6. 前記前回探索経路情報は、前記探索木において前記前回の検索要素列を探索する場合に辿るノードの内、複数の前記注目順位の各々に対応する階層のノードを示し、
    前記探索開始ノードを決定する場合、入力された検索要素列と前記前回の検索要素列との間で、前記複数の注目順位のいずれかより前の要素列が一致する場合、前記前回探索経路情報で示される当該注目順位に対応するノードを、前記探索開始ノードと決定する、請求項5に記載の検索方法。
  7. さらに、前記入力された検索要素列と前記前回の検索要素列との間で各順位の要素を比較し、他の順位に比べて要素が不一致となった回数が多い順位を、前記注目順位に設定する、請求項5または6に記載の検索方法。
  8. コンピュータに、
    要素列である複数の検索対象を表し、ルートからの各階層に要素列の先頭からの各順位を対応付けた探索木を記憶し、
    前回の検索要素列を記憶し、
    前記探索木において前記前回の検索要素列を探索する場合に辿るノードの内、注目順位に対応する階層のノードを示す前回探索経路情報を記憶し、
    入力された検索要素列と前記前回の検索要素列との間で、前記注目順位より前の要素列を一括して比較し、一致する場合、前記前回探索経路情報で示されるノードを探索開始ノードと決定し、
    前記探索木上の前記探索開始ノードから、前記入力された検索要素列の前記注目順位以降の要素について探索を行うことにより、前記複数の検索対象から前記入力された検索要素列を検索する、処理を実行させる検索プログラムを格納する、
    コンピュータが読み取り可能な記録媒体。
  9. 前記前回探索経路情報は、前記探索木において前記前回の検索要素列を探索する場合に辿るノードの内、複数の前記注目順位の各々に対応する階層のノードを示し、
    前記探索開始ノードを決定する場合、入力された検索要素列と前記前回の検索要素列との間で、前記複数の注目順位のいずれかより前の要素列が一致する場合、前記前回探索経路情報で示される当該注目順位に対応するノードを、前記探索開始ノードと決定する処理を実行させる前記検索プログラムを格納する、請求項8に記載のコンピュータが読み取り可能な記録媒体。
  10. さらに、前記入力された検索要素列と前記前回の検索要素列との間で各順位の要素を比較し、他の順位に比べて要素が不一致となった回数が多い順位を、前記注目順位に設定する処理を実行させる前記検索プログラムを格納する、請求項8または9に記載のコンピュータが読み取り可能な記録媒体。
JP2013554099A 2012-01-18 2012-12-12 検索装置、検索方法、及び、検索プログラム Pending JPWO2013108333A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013554099A JPWO2013108333A1 (ja) 2012-01-18 2012-12-12 検索装置、検索方法、及び、検索プログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012007857 2012-01-18
JP2012007857 2012-01-18
JP2013554099A JPWO2013108333A1 (ja) 2012-01-18 2012-12-12 検索装置、検索方法、及び、検索プログラム

Publications (1)

Publication Number Publication Date
JPWO2013108333A1 true JPWO2013108333A1 (ja) 2015-05-11

Family

ID=48798791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013554099A Pending JPWO2013108333A1 (ja) 2012-01-18 2012-12-12 検索装置、検索方法、及び、検索プログラム

Country Status (2)

Country Link
JP (1) JPWO2013108333A1 (ja)
WO (1) WO2013108333A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015757A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 情報処理装置、及び、検索方法
JP6016215B2 (ja) 2013-12-20 2016-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation トライ木構造を有するレコード群を高い効率でマージソートする方法、装置及びコンピュータプログラム
JP6281287B2 (ja) * 2014-01-08 2018-02-21 日本電気株式会社 情報処理装置、検索方法、及び、プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184857A (ja) * 1997-12-25 1999-07-09 Nec Corp 木構造情報検索装置及び検索方法並びに検索方法を実行させるためのプログラムを記録した記録媒体
JP3344394B2 (ja) * 1999-12-24 2002-11-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 配列の変換方法、構造解析方法、装置及び記録媒体
CN101802822B (zh) * 2007-09-14 2012-10-24 新叶股份有限公司 比特序列检索装置、检索方法以及程序

Also Published As

Publication number Publication date
WO2013108333A1 (ja) 2013-07-25

Similar Documents

Publication Publication Date Title
TW201841123A (zh) 用於維護操作之合併樹修改
TW201837720A (zh) 用於多串流儲存裝置之串流選擇
WO2015010509A1 (zh) 一种基于一维线性空间实现Trie树的词典检索方法
WO2013108333A1 (ja) 検索装置、検索方法、及び、検索プログラム
US9674083B2 (en) Path calculation order deciding method, program and calculating apparatus
KR20140038441A (ko) 압축 매치 열거 기법
JP4491480B2 (ja) インデクス構築方法、文書検索装置及びインデクス構築プログラム
JP5964781B2 (ja) 検索装置、検索方法および検索プログラム
JP6705764B2 (ja) 生成装置、生成方法、及び生成プログラム
JP2020086662A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP6072922B2 (ja) 文字列検索装置、文字列検索方法および文字列検索プログラム
JP2002163272A (ja) 特徴ベクトル空間のインデクシング方法及び検索方法
CN106302178B (zh) 一种路由查询方法及装置
Wu et al. Multi-objective flexible job shop scheduling problem based on Monte-Carlo tree search
JP6959164B2 (ja) 生成装置、生成方法、及び生成プログラム
JP2015176407A (ja) 検索装置、検索方法、検索用プログラムおよび検索用データ構造
JP6869588B1 (ja) 情報処理装置、方法及びプログラム
JP6005583B2 (ja) 検索装置、検索方法および検索プログラム
JP2018195156A (ja) 生成装置、生成方法、及び生成プログラム
JP2020187644A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP6512050B2 (ja) 探索方法、探索プログラム及び探索装置
JP5628365B2 (ja) 検索装置
JP2008234204A (ja) 文書検索装置、文書検索方法および文書検索プログラム
JP2014126881A (ja) 単一パス集約による木構造の再構成装置及び方法及びプログラム
JP7130019B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム