JP4575064B2 - 情報検索装置 - Google Patents
情報検索装置 Download PDFInfo
- Publication number
- JP4575064B2 JP4575064B2 JP2004221035A JP2004221035A JP4575064B2 JP 4575064 B2 JP4575064 B2 JP 4575064B2 JP 2004221035 A JP2004221035 A JP 2004221035A JP 2004221035 A JP2004221035 A JP 2004221035A JP 4575064 B2 JP4575064 B2 JP 4575064B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- expression
- processor
- resource
- search condition
- 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段階として、SQLのようなデータ照会言語から、先ずリソース全体の消費量の最適化を考えて、例えば左に深く分岐した、つまり検索処理回数が多い、照会ツリーを一旦生成する。その後に第2段階として、応答時間の短縮を考えて、左に深い照会ツリーを平衡の取れたツリーに変換する。このとき上記文献では、第2段階の平衡の取れたツリーへの変換方式として、ボトムアップ・アプローチや、トップダウン・アプローチという方式が示されている。
また更に、そのままでは検索不可能な条件を検索可能とした上で、その可能な検索処理を高速化する装置、方法を得ることを目的とする。
上記所望の情報検索を記述する検索式を読込み、この読込んだ検索式を所定の簡易形式に分割する検索式分割部と、
上記検索式分割部が分割した簡易形式検索式による検索時の必要リソースがシステムで持つリソース上限値内であるかを評価する検索式評価部と、
上記検索式分割部が出力する検索命令リストに従って上記所望の情報検索を行う検索処理部と、を備えて、
上記検索式分割部は、上記検索式評価部がリソース上限値内であると評価する簡易形式に分割して、上記検索処理部は、この簡易形式に基づいて情報検索を行うようにした。
従来方式では検索実行が不可能となる場合でも、検索の実行を可能とする装置、方法を図に基づいて説明する。
なお、本実施の形態における装置が検索の対象とするデータベースは、マルチメディアデータを蓄積した個別DBを複数照合する複合DBである。マルチメディアデータとは、文書データや、画像データ、音声データ、映像データ、その他バイナリデータなどの、電子化されたデータのことである。また複合DBは、個別DBと同じ装置上に構成されていてもよいし、ネットワークで接続された異なる個別DB装置を集合した形態であってもよい。
検索処理部105は、更に以下の要素で構成される。即ち、検索式や検索命令リストに従って検索処理を制御する検索制御部107と、複合DBに関連付けられている1種類以上の個別DB111に対して検索を実行する検索実行部109、検索実行部109で得られた検索結果を中間結果として管理する中間結果管理部110、中間結果間の集計(論理演算)処理を実行する中間結果集計部108、である。
なお、検索実行部109は、個別DBに対する検索機能を内包していてもよいし、別の装置上にある個別DBの検索機能を呼び出して検索結果を得るものであってもよい。
またこれらの検索式評価部等の各部は、その機能を実現するソフトウェアのプログラムで記述されており、図示はされていないが、プロセッサ(CPU)とメモリがあって、これら各部の記述されたプログラムを実行して、検索式評価等の各機能を得ている。
その他に検索が出来なくなるファクターとして、情報検索装置で設定される検索式の長さが長過ぎる場合や、演算子の数が多過ぎるなど、情報検索装置の諸元も考えられる。また更に、個別DBが全文検索を実行する場合の、検索キーワード数や、ユニークな文字数が多過ぎる場合もある。
具体的には例えば、個別のDBが文書検索用のDBであった場合は、検索時にディスク装置からメモリ上に読み込まれる索引のサイズを、検索キーワードの文字数から計算しても良い。多くの文書検索では、文書中に出現するキーワードや文字の出現位置の情報を、索引としてDBに保持している。キーワードの文書中での出現頻度によって、該当する出現位置情報のサイズは変化するが、検索式中の検索キーワードの出現位置情報の合計サイズを調べることで、それがメモリの容量を超えるか否かを評価することができる。そのために、出現位置情報のサイズの情報を、出現位置情報とは別に記録しておいてもよいし、直接出現位置情報の記録されたファイルのサイズを調べても良い。また、キーワードや文字の出現頻度と、検索式中の検索キーワード数やキーワードの文字数をパラメータにして、索引サイズ等の必要となるメモリサイズを計算する計算式を予め定義しておいても良い。例えば単純に、(比例定数K×キーワードの出現頻度)を1検索キーワードの出現位置情報のサイズとして、その総和をとる等の計算式が考えられる。いずれの場合も、キーワードの出現頻度や、出現位置情報のサイズは、文書をDBに登録する時点で取得することができる。
また、検索時にリソースを大量に消費する個別のDB111と、そうでない個別のDBが共存している場合は、DB毎の重みを設定してもよい。
また、リソースが検索実行部の諸元であった場合、例えば受理できる検索式の長さの上限が設定されている場合は、文字数やバイト数をカウントするだけでよい。すなわち個別のDBの検索実行部109が1回に受理できる検索式の長さの上限がNバイトと定められている場合、strlen()のような文字列の長さを取得する関数で、検索式101の長さを取得することで、上限Nバイトを超えているか否かを容易に判定することができる。
このように、評価するための上限情報と方式を検索式評価部103が保持しており、その情報を元にリソース消費量を評価する。
この図により本実施の形態における情報検索装置の動作を説明する。情報検索装置は、ステップS201(以後ステップの記述を省略する)で検索式入力部102により入力された所望の情報検索を記述した所定検索式を読み込むと、S202でこれをその所定形式での最簡易形式に分解して、S203で検索式評価部103により、この簡易形式による検索式で検索した時に情報検索装置が使用するリソースの消費量を評価する。この検索式の評価により、検索時のリソース消費量が、情報検索装置で利用可能なリソースの上限値(以降、リソース上限値と呼ぶ)の範囲であった場合(No)は、S204に進む。そして検索式分割部104は簡易形式を合成して、上位の簡易形式とする。そしてS203の評価をして、以後この評価がリソース上限値を超えるまでS204のループを繰返す。
ところがS202の検索式による評価で、検索時のリソース消費量が情報検索装置で利用可能なリソースの上限値を超えていた場合(Yes)は、S205で検索式分割部104により、先のS203でリソース上限値を超える直前の検索式について、検索時のリソース消費量がリソース上限値の範囲内に収まるよう、複数の部分検索式に分割する等、検索式を再構成する。S203’においてこの部分検索式でよいことを確認すると、S206でこの部分検索式を検索命令リストとして出力する。そして検索処理部105により、この検索命令リストに従った検索処理が実行される。最後にこの検索処理によって得られた検索結果を、検索結果出力部106からユーザに対して出力して終了する。
単純に行うにはこのように、分割は論理演算の各論理毎に分割すればよい。
また検索結果や中間結果とは、検索式で与えられた検索条件に適合したレコード情報の集合である。レコード情報には、DB中のレコードの識別子や、検索条件に適合したレコードを評価したスコア、DBのカラムに格納されているデータなどを含んでよい。
例えば部分検索式を含む検索命令リストが入力されると、検索制御部107はS301で、検索命令リストから検索の実行命令を1つ、例えば検索(A AND B)を取得する。続いてS302で、取得した命令が部分検索式を実行する内容であれば(検索)に移り、検索実行部109に対して部分検索式による検索の実行命令を発行する。検索実行部109はS303で、後の実施の形態で述べるように、必要に応じて部分検索式から検索を実行するための検索プランを生成する。S304では、複合DBに関連づけられている個別のDB111に対して検索を実行し、検索結果を取得する。取得した検索結果はS305で、検索の中間結果として中間結果管理部110に格納する。
S302で、取得した命令が中間結果の集計の実行であった場合は(集計)に移り、S306で中間結果管理部110から複数の中間結果を取得する。S307で中間結果の集計処理を行い、S308で次の部分検索式に移り、S304またはS306の処理を繰り返す。こうして得られた中間結果を、S309で、最終検索式に基づいて中間結果を集計する。中間結果の集計は、S306で逐次実行してもよい。そして、検索結果出力部106に対して出力する。
また検索実行部109では、S303の検索プラン生成処理ステップで、部分検索式による検索時間や、検索時のメモリ使用量が最小になるよう、部分検索式の最適化を行ってもよい。
検索実行や、中間結果集計の処理では、それ以前の処理の結果によっては、実行する必要がないものもある。そのような場合、実行する必要がない検索命令をスキップしてもよい。例えば、次の検索式が与えられ、それ以降の(01),(02),(04)の3つの部分木に分割されたとする。
「((A AND B) OR (C AND D)) AND (E OR F)」
(01)検索(A AND B)
(02)検索(C AND D)
(03)集計OR(検索1、2の中間結果を集計)
(04)検索(E OR F)
(05)集計AND(検索4、集計3の中間結果を集計)
このとき、例えば、集計(03)の実行結果が偽であった(中間結果が何も無い)場合、検索(04)を実行しなくてよい。
またユーザが入力する検索式は、ユーザが直接キーボードなどの入力装置で入力してもよいし、検索式を記述したファイルを入力し、これを検索式入力部102が読取るようにしてもよい。
入力された検索式101や、検索式入力部102から検索処理部105に伝達する検索式、部分検索式、検索命令リストは、メモリ上の情報としてプロセッサが図示しないバスを通じて伝達してよいし、一時ファイルを介して一括伝達してもよい。また、グラフィカルユーザインターフェースを通してユーザが入力した検索条件を、情報検索装置の入力の形式に変換する処理を含んでもよい。
中間結果管理部110では、メモリ上で中間結果を管理してもよいし、中間結果をディスク装置など外部記憶装置上に一時ファイルとして記憶し、後で利用してもよい。検索実行部109や検索処理部105が出力する検索結果も、メモリ上の情報として伝達してもよいし、ファイルを介して伝達してもよい。
検索結果出力部106は、結果を画面などの出力装置に出力してもよいし、ファイルに出力してもよい。また、検索結果を編集・加工・利用する別の装置にメモリ上の情報として出力してもよい。
先の実施の形態における情報検索装置では、検索式を分割して、検索の処理を分割する装置を説明した。こうすると、検索式の分割数が多いと、検索の初期化処理や中間結果管理部へのデータの入出力処理等により、検索時間が増大することが予想される。言い換えれば、検索式の分割数が少ないほど、全体の検索処理の効率は良くなる。ここでは情報検索装置が、検索式分割部により検索処理を向上する分割を行う方式を説明する。
一般に論理式は、木構造の論理に展開可能である。そこで本実施の形態における検索式の分割方式は、検索式を木構造の論理式とみなして、2分木と呼ばれる木構造に展開する。2分木とは、リーフを除く全てのノードにおける子の数が2以下である木構造である。検索式を2分木に展開したとき、その木のリーフは、1つの検索実行部の検索処理に対応し、内部ノードは中間結果集計部の集計処理に対応する。この2分木の高さをDとする。
図において、検索式分割部104bは、検索式が入力されると、ステップS501で検索式を2分木に展開する。S502では高さiが1の部分木を構築する。次にS503で、前のステップで構築した部分木に対して、検索式評価部103により検索時のリソース消費量を評価する。S503で部分木による検索時リソース消費量がリソース上限を超えていない場合(No)は、次のS504で高さi+1の部分木を構築する。そしてS503で上限値になるまで木を高くして行く。
そしてS503で部分木による検索時リソース消費量がリソース上限を超える場合(Yes)はS505で、S503で調べてYesになる直前の最も高さが高い部分木による部分検索式を分割して新しい部分検索式を持つ部分木によってもリソースの上限値を超えないかをS503’で確認して、S506で部分検索式と、中間結果集計処理(ルート)を検索命令リストとして出力する。即ちS503とS504の処理を、高さi=1(すなわちリーフのみの部分木)から、最大Dまで繰り返す。そしてS501で展開した2分木の分割が完了したら、S506で検索命令リストを出力して終了する。
1)検索式601が入力されると、S501で検索式601は2分木602に展開される。ここで、AないしDはリーフで、複合DBに関連づけられた個別のDBに対する検索条件でもある。内部ノードEないしGは、中間結果の集計処理である。この例では中間結果の集計は、ANDまたはORの論理演算としている。ところで例としてリソース上限値を100、AないしD単体の検索時のリソース消費量を30とする。説明を判りやすくするため、中間結果の集計処理はリソースを消費しないものとする。また部分木による検索時のリソース消費量は、リーフ単体での検索時のリソース消費量の和とする。なお、木602の高さは3である。
2)S502で、高さ1の部分木、即ち木A、木B、木C、木Dを構築する。
4)S504で、高さ2の部分木を構築する。即ち木ABE,木CDEを構築する。
5)S503で、S502で構築した部分木の、検索時のリソース消費量を評価する。評価の結果はいずれも60であり、リソース上限の範囲内である。
6)S504で、高さ3の部分木を構築する。即ち木ABCDEFGを構築する。
7)S503で、S502で構築した部分木の、検索時のリソース消費量を評価する。評価の結果は120であり、リソース上限(100)を超えている。
8)S505で、木ABCDEFG中の、2つの高さ2の部分木に対応した検索式を構築する。これは明らかに評価が60であり、リソース範囲内である。S506でこの高さ2の部分木に対応した検索式の情報と、リーフGの情報を、検索命令リストとして出力する。すなわち、部分検索式(A AND B)、部分検索式(C AND D)、中間結果集計処理ORを、検索命令リスト(図4の検索命令リスト402)とする。
先の実施の形態と同様目的で、他の動作を行う情報検索装置を説明する。
本実施の形態における情報検索装置の動作を図7のフロー図により説明する。図において、情報検索装置の検索式分割部104cは、検索式が入力されるとステップS701で、検索式を2分木に展開し、さらに2分木の内部ノードを走査して、同じラベルを持つ親子関係にあるノードを結合する。S701の処理により、2分木では内部ノードの子の数が必ず2以下であったものが、内部ノードが2以上の子を持つことになる。この木の高さをDとする。S702以降では、実施の形態2に示した処理の流れと同様に、ボトムアップに部分木を構築する。S702で、高さ1の部分木を構築する。次にS703で、S702で構築した部分木に対して検索式評価部103により検索時のリソース消費量を評価する。S703で部分木による検索時リソース消費量がリソース上限を超えていない場合(No)は、S704で高さi+1の部分木を構築する。このS703とS704を最大Dの高さまで繰返す。
そしてS703で部分木による検索時リソース消費量がリソース上限を超える場合(Yes)は、S705でその直前の部分木による分割を再検討して、各々の部分木による分割が検索時のリソース消費量がリソース上限の範囲で最大となり、つまり分割数が最小となる部分木を構築する。これをS706で、集計処理論理と、分割された高さiの部分木に対応する部分検索式の情報として検索命令リストを出力し、分割を終了する。
いま、検索式801が入力されたとする。このとき、先の実施の形態2に示した、検索式を2分木802に展開してから分割する方式では、2分木802は、部分木ABG、部分木CDH、部分木EFIの3つの部分木に分割される。検索命令リストは以下の5つの処理からなる。
(1)検索(A OR B)(Gをルートとする部分木の処理)
(2)検索(C OR D)(Hをルートとする部分木の処理)
(3)中間結果集計OR (内部ノードJの処理)
(4)検索(E OR F)(Iをルートとする部分木の処理)
(5)中間結果集計OR(内部ノードKの処理)
11)検索式801が入力されると、S701で検索式801を2分木802に展開する。ここで、AないしEはリーフで、複合DBに関連づけられた個別のDBに対する検索条件である。内部ノードGないしKは、中間結果の集計処理である。実施の形態2と同様に、この例では中間結果の集計は、ANDまたはORの論理演算としている。リソース上限値を100とし、AないしEの検索処理のリソース消費量は、図8に示す通りであるとする。更に、木802で同じラベルを持ち、親子関係にある内部ノードGないしKを結合して、木803が得られる。
12)S702で、高さ1の部分木を構築する。すなわち木A〜木Fである。
13)S703で、S702で構築した部分木の、検索時のリソース消費量を評価する。評価の結果、リソース消費量は30または40で、いずれもリソース上限(100)の範囲内である。
15)S703で、S704で構築した部分木の、検索時のリソース消費量を評価する。評価の結果は200であり、リソース上限を超えている。
16)S705で、この場合に木ABCDEFGは高さ2であり、高さ1にすることは意味がないので、木ABCDEFGを2つ以上の各種の部分木に分割する。ここで例えば、木803のリーフを左から順に選んで部分木に分割した場合、リーフABを含む部分木、リーフCDEを含む部分木、リーフKを含む3つの部分木803に分割できる。または木804のようにリーフの組合せを変えると、最終的に木805のように、部分木ACDGと部分木BEFHの2の部分木と、ルートに分割できる。
17)木803の分割が完了したので、S706で検索命令リストを出力して終了する。
このときの、検索命令リストは以下の3つの処理からなる。
(11)検索(A OR C OR D)(Gをルートとする部分木の処理)
(12)検索(B OR E OR F)(Hをルートとする部分木の処理)
(13)中間結果集計OR(内部ノードKの処理)
特別な形式の検索式について説明する。本実施の形態においては、情報検索装置の検索式分割部104dは、検索式をDNF(Disjunctive Normal Form)形式の木構造に変形する。DNFは、積和標準形とも呼ばれる論理式の形式の一つで、論理変数を論理演算子ANDで結合した項を、論理演算子ORで結合した形の論理式であり、高さ3の木として表現できる。なお任意の論理式をDNF形式に変形可能である。
S903で部分木による検索時リソース消費量がリソース上限を超える場合(Yes)は、S905で高さiの部分木を、各々の部分木を検索時にリソース消費量がリソース上限の範囲で最大となるよう、すなわち分割数が最小となるよう、2つ以上の高さiの部分木に分割する。こうしてS503ないしS505を高さi=1からこの場合は最大3まで繰返して、ルート(中間結果集計処理)の情報と、分割された高さiの部分木に対応する、部分検索式の情報を、S906で検索命令リストとして作成し、出力する。
このように、図7,図9に示す検索式の論理木の変換を行うことで、最適解が見つけやすくなる。
いま、検索式1001が入力されたとする。このとき、先の実施の形態に示した方式では、検索式を2分木に展開後、更に同じラベルを持つ親子関係にあるノードを結合した木1002に変形する。ここで、AないしEはリーフである。内部ノードJないしNは、中間結果の集計処理である。実施の形態2と同様に、この例では中間結果の集計はANDまたはORの論理演算としている。リソース上限値を100、AないしHの検索処理のリソース消費量は、図8の通りであるとする。またこの例での、中間結果集計処理のリソース消費量を以下のように定める。
AND処理・・・子のリソース消費量の最も大きいものと等しい
OR処理・・・子のリソース消費量の総和と等しい
先の実施の形態における方式では、木1002は、部分木ABCDL、部分木EFJ、部分木GIK、部分木Hの4つの部分木に分割される。このときの検索命令リストは以下の7つの処理からなる。
(21)検索(A AND B AND C AND D)
(22)検索(E OR F)
(23)検索(G OR I)
(24)検索(H)
(25)中間結果集計OR(内部ノードKの処理)
(26)中間結果集計AND(内部ノードMの処理)
(27)中間結果集計OR(内部ノードNの処理)
21)検索式1001が入力されると、S901で検索式1001をDNF形式の木1003に変形する。
22)S902で、高さ1の部分木を構築する。すなわち木Aないし木Hである。
23)S903で、S902で構築した部分木の、検索時のリソース消費量を評価する。評価の結果、いずれもリソース上限(100)の範囲内である。
24)S904で、高さ2の部分木を構築する。すなわち木ABCDL、木EIL、木EGL、木EHL、木FGL、木FHL、木FILである。
25)S903で、S904で構築した部分木の、検索時のリソース消費量を評価する。評価の結果は、木ABCDL、木EIL、木FILが50、木EGL、木FGLが40、木EHL、木FHLが20であり、いずれもリソース上限の範囲内である。
26)再びS904で、高さ3の木を構築する。すなわち、木AないしNである。
27)再びS903で、S904で構築した高さ3の木の、検索時のリソース消費量を評価する。評価の結果、リソース消費量は270であり、リソース上限値を超えている。
28)S905で、木AないしNを2つ以上の部分木に分割する。木1004に示したように、部分木1005、部分木1006、部分木1007の、3つの部分木に分割できる。
29)S903’で、これらの個別の部分木を評価すると、部分木1005と部分木1006でも100となり、リソース上限内である。従って木1003の分割が完了したので、S906で検索命令リストを出力して終了する。
(31)検索((A AND B AND C AND D)OR(E AND I))
(32)検索((E AND G)OR(E AND H)OR(F AND G))
(33)検索((F AND H)OR(F AND I))
(34)中間結果集計OR(ルートノードの処理)
こうして実施の形態3と同様に、S905における部分木の分割処理のような、部分木の検索時のリソース消費量をリソース上限の範囲内で最大とするノードの組合せ最適化問題は、近似解を多項式時間で得るアルゴリズムが考案されており、高速に処理することが可能である。
この検索式分割部104eによる情報検索は、検索式をCNF形式の木に変形後、リーフからボトムアップに部分木を構築し、リソース消費量がリソース上限値を超えたところで、部分木を分割するように構成する。
従って検索式の分割処理において、部分検索式による検索時のリソース消費量を上限値内で最大にでき、検索式の分割数を少なくできる。
先の各実施の形態では、情報検索装置は内部的に部分木を構築し、リソース上限値内で最大リソース消費となる検索式を生成して、検索を実行した。本実施の形態では、情報検索装置が分割した検索式を画面やログファイルに出力する構成とした。
図12は、本実施の形態における情報検索装置の構成例を示す図である。この構成は、先の各実施の形態における情報検索装置に、検索式分割部から出力された部分検索式を画面などの出力装置やログファイル1208などに出力する検索式出力部1205を追加した構成になっている。その他の検索式入力部1202、検索式評価部1203、検索式分割部1204、検索処理部1206、検索結果出力部1207は、先の実施の形態のそれらと同じ要素である。
なお、検索式出力部1205が画面などの出力装置やログファイル1208に出力する情報は、検索式分割部1204から出力された部分検索式や検索命令リスト、検索式を分割したか否かのフラグ情報、検索式の分割方法が複数ある場合はその分割方法などの情報でもよい。また、検索式入力部1202に入力された検索式をそのまま出力してもよい。
図に基づいて動作を説明する。S1301において検索式入力部1202で検索式の入力を受け付けると、S1302において検索式評価部1203で入力された検索式による検索時のリソースの消費量を評価する。検索式の評価により、検索時のリソース消費量がリソース上限値内であった場合(No)は、図示では詳細を示していないが、先の各実施の形態で説明したように、部分木の高さを順次高くして部分検索式を作成して、リソース上限内の最高高さの部分木でS1304に進む。即ちS1302の検索式の評価で、検索時のリソース消費量が利用可能な上限値を超える場合(Yes)に、S1303で検索式分割部1204によりリソース消費量が上限値内となるように複数の部分検索式に分割する。
そしてS1304では、検索式を分割した部分検索式や検索命令リストを、画面やログファイル等1208に出力する。S1205では、入力された検索式や、S1303で分割された部分検索式と検索命令リストに従って、検索処理部1206により検索処理が実行される。最後にS1306で、S1305の検索処理によって得られた検索結果を検索結果出力部1207からユーザに対して出力して終了する。
なおS1304の部分検索式の出力処理は、S1303後に実行される動作とすれば、どの段階で実行するようにしてもかまわない。
このようにしても情報検索方法として同じ優れた効果が得られる。
以下、図14を元に一般的な検索式分割処理の流れを示す。検索式を論理木に展開後の処理の流れは、図7のS702と同等である。
31)検索式1401が入力されると、検索式1401を論理木1402に展開する。この例では中間結果の集計は、ANDまたはORの論理演算としている。リソース上限値を100とし、AないしNの検索処理のリソース消費量は、図14に示す通りであるとする。また、部分木のリソース消費量は、単純のため、その部分木の根のリソース消費量の総和とする。
32)高さ1の部分木を構築する。すなわち、部分木A〜Nである。この部分木の検索時のリソース消費量を評価すると、全て100未満であり、リソース上限の範囲内である。
33)高さ2の部分木を構築する。すなわち部分木1406,1407,1408である。これらの部分木の検索時のリソース消費量を評価すると、全て100未満であるので、リソース上限の範囲内である。
34)高さ3の部分木を構築する。すなわち部分木1409,1410である。
これらの部分木の検索時リソース消費量を評価すると、部分木1409のリソース消費量は30であり、リソース上限の範囲内である。一方、部分木1410のリソース消費量は170であり、リソース上限を超えて得いる。
35)部分木1410の検索時のリソース消費量が、リソース上限を超えているため、部分木を分割する。最適な分割の例として部分木1412と1413のように分割される。分割後は、分割された部分木の検索式と、高さ3の部分木の根のラベルの情報が、検索命令リストに出力される。このとき検索命令リストは以下のようになる。
(41)検索(部分木1412)
(42)検索(部分木1413)
(43)中間結果集計AND(部分木1412,1413の実行結果の集計)
36)高さ4の部分木を構築する。すなわち部分木1411である。部分木1411の検索時のリソース消費量を評価すると60であり、リソース上限の範囲内である。
37)高さ5の部分木を構築する。すなわちノードTを根とする木1405であるが、既にノードSを根とする部分木は分割済みであり、木1405の検索時のリソース消費量が、リソース上限を超えることは明らかである。このような場合は、単に部分木1411の検索命令、ノードSを根とする部分木の検索命令、根Tのラベルの情報を検索命令リストに出力する。すなわち、検索命令リストは以下のようになる。
(51)検索(部分木1411)
(52)検索(部分木1412)
(53)検索(部分木1413)
(54)中間結果集計AND(部分木1412,1413の実行結果の集計)
(55)中間結果集計OR(1の検索および4の集計の実行結果の集計)
Claims (2)
- データベースを検索する検索条件式Aと検索条件式Bと検索条件式A及びBを結合する第1の論理演算子とを含む第1の部分式と、データベースを検索する検索条件式Cと検索条件式Dと検索条件式C及びDを結合する第2の論理演算子とを含む第2の部分式と、上記第1の部分式と第2の部分式とを結合する第3の論理演算子とを有する検索式をプロセッサにより入力する検索式入力部と、
上記検索式入力部により入力された検索式が有する第1の部分式に含まれた検索条件式Aを一方の子ノードとして有し、第1の部分式に含まれた検索条件式Bを他方の子ノードとして有し、第1の部分式に含まれた第1の論理演算子を親ノードとして有する2分木情報Xをプロセッサにより生成し、上記入力された検索式が有する第2の部分式に含まれた検索条件式Cを一方の子ノードとして有し、第2の部分式に含まれた検索条件式Dを他方の子ノードとして有し、第2の部分式に含まれた第2の論理演算子を親ノードとして有する2分木情報Yをプロセッサにより生成し、生成した2分木情報Xを一方の子ノードとして有し、生成した2分木情報Yを他方の子ノードとして有し、上記検索式が有する第3の論理演算子を親ノードとして有する2分木情報Zをプロセッサにより生成し、生成した2分木情報Zをプロセッサにより出力する検索式分割部と、
検索条件式A,B,C,Dそれぞれに対して、当該検索条件式A,B,C,Dを個別に実行してデータベースの検索を行う際に使用する所定のリソースのリソース消費量a,b,c,dをあらかじめ記憶するリソース情報保持部を有する検索式評価部であって、
上記検索式分割部により出力された2分木情報Zを入力し、
(1)入力した2分木情報Zから検索条件式Aと検索条件式Bと検索条件式Cと検索条件式Dとを取得し、取得した検索条件式A及びB及びC及びDに対する上記所定のリソースのリソース消費量a及びb及びc及びdを上記リソース情報保持部からプロセッサにより取得し、取得した検索条件式A,B,C,Dに対するリソース消費量a,b,c,dのうちいずれかのリソース消費量があらかじめ記憶したリソース上限値を超えるか否かをプロセッサにより判定し、
(2)上記リソース消費量a,b,c,dのいずれのリソース消費量もあらかじめ記憶したリソース上限値を超えないことを判定した場合、入力した2分木情報Zから2分木情報Xと2分木情報Yとをプロセッサにより取得し、上記2分木情報Xが子ノードとして有する検索条件式A及びBに対して取得したリソース消費量a及びbから、検索条件式A及びBを実行して各実行結果を第1の論理演算子に基づいて演算する場合のリソース消費量Bをプロセッサにより算出し、上記2分木情報Yが子ノードとして有する検索条件式C及びDに対して取得したリソース消費量c及びdから、検索条件式C及びDを実行して各実行結果を第2の論理演算子に基づいて演算する場合のリソース消費量Cをプロセッサにより算出し、算出したリソース消費量B及びリソース消費量Cのうちいずれかのリソース消費量があらかじめ記憶したリソース上限値を超えるか否かをプロセッサにより判定し、
上記リソース消費量B及びリソース消費量Cのうちいずれかのリソース消費量があらかじめ記憶したリソース上限値を超えることを判定した場合、
(2−1)上記2分木情報Xが子ノードとして有する検索条件式Aから上記検索条件式Aの実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、上記2分木情報Xが子ノードとして有する検索条件式Bから上記検索条件式Bの実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、上記検索条件式Aから生成した検索命令を実行した結果と上記検索条件式Bから生成した検索命令を実行した結果とを上記2分木情報Xが親ノードとして有する第1の論理演算子により演算させて上記第1の部分式の実行結果を求める中間結果集計命令をプロセッサにより生成し、生成した中間結果集計命令をプロセッサによりメモリに記憶し、
(2−2)上記2分木情報Yが子ノードとして有する検索条件式Cから上記検索条件式Cの実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、上記2分木情報Yが子ノードとして有する検索条件式Dから上記検索条件式Dの実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、上記検索条件式Cから生成した検索命令を実行した結果と上記検索条件式Dから生成した検索命令を実行した結果とを上記2分木情報Yが親ノードとして有する第2の論理演算子により演算させて上記第2の部分式の実行結果を求める中間結果集計命令をプロセッサにより生成し、生成した中間結果集計命令をプロセッサによりメモリに記憶し、
(2−3)上記2分木情報Zが親ノードとして有する第3の論理演算子により上記第1の部分式の実行結果と上記第2の部分式の実行結果とを演算させる中間結果集計命令をプロセッサにより生成し、生成した中間結果集計命令をメモリに記憶し、
(3)リソース消費量B及びリソース消費量Cがあらかじめ記憶したリソース上限値を超えないことを判定した場合、取得した検索条件式A,B,C,Dに対するリソース消費量a,b,c,dから、上記検索条件式A及びB及びC及びDを実行して各実行結果を第1と第2と第3との論理演算子に基づいて演算する場合のリソース消費量Aをプロセッサにより算出し、算出したリソース消費量Aがあらかじめ記憶したリソース上限値を超えるか否かをプロセッサにより判定し、
(3−1)上記リソース消費量Aがあらかじめ記憶したリソース上限値を超えないことを判定した場合、上記検索式から上記検索式の実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、
(3−2)上記リソース消費量Aがあらかじめ記憶したリソース上限値を超えることを判定した場合、
(3−2−1)上記2分木情報Xが子ノードとして有する検索条件式A及びBに対して取得したリソース消費量a及びbから、検索条件式A及びBを実行して各実行結果を第1の論理演算子に基づいて演算する場合のリソース消費量Bをプロセッサにより算出し、算出したリソース消費量Bがあらかじめ記憶したリソース上限値を超えるか否かをプロセッサにより判定し、
上記リソース消費量Bがあらかじめ記憶したリソース上限値を超えないことを判定した場合、上記第1の部分式から上記第1の部分式の実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、
上記リソース消費量Bがあらかじめ記憶したリソース上限値を超えることを判定した場合、上記2分木情報Xが子ノードとして有する検索条件式Aから上記検索条件式Aの実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、上記2分木情報Xが子ノードとして有する検索条件式Bから上記検索条件式Bの実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、上記検索条件式Aから生成した検索命令を実行した結果と上記検索条件式Bから生成した検索命令を実行した結果とを上記2分木情報Xが親ノードとして有する第1の論理演算子により演算させて上記第1の部分式の実行結果を求める中間結果集計命令をプロセッサにより生成し、生成した中間結果集計命令をプロセッサによりメモリに記憶し、
(3−2−2)上記2分木情報Yが子ノードとして有する検索条件式C及びDに対して取得したリソース消費量c及びdから、検索条件式C及びDを実行して各実行結果を第2の論理演算子に基づいて演算する場合のリソース消費量Cをプロセッサにより算出し、算出したリソース消費量Cがあらかじめ記憶したリソース上限値を超えるか否かをプロセッサにより判定し、
上記リソース消費量Cがあらかじめ記憶したリソース上限値を超えないことを判定した場合、上記第2の部分式から上記第2の部分式の実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、
上記リソース消費量Cがあらかじめ記憶したリソース上限値を超えることを判定した場合、上記2分木情報Yが子ノードとして有する検索条件式Cから上記検索条件式Cの実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、上記2分木情報Yが子ノードとして有する検索条件式Dから上記検索条件式Dの実行結果を求める検索命令をプロセッサにより生成し、生成した検索命令をプロセッサによりメモリに記憶し、上記検索条件式Cから生成した検索命令を実行した結果と上記検索条件式Dから生成した検索命令を実行した結果とを上記2分木情報Yが親ノードとして有する第2の論理演算子により演算させて上記第2の部分式の実行結果を求める中間結果集計命令をプロセッサにより生成し、生成した中間結果集計命令をプロセッサによりメモリに記憶し、
(3−2−3)上記2分木情報Zが親ノードとして有する第3の論理演算子により上記第1の部分式の実行結果と上記第2の部分式の実行結果とを演算させる中間結果集計命令をプロセッサにより生成し、生成した中間結果集計命令をメモリに記憶する検索式評価部と、
上記検索命令と上記中間結果集計命令とをそれぞれ実行した実行結果を記憶する中間結果管理部と、
上記検索式評価部がメモリに記憶した検索命令と中間結果集計命令とを上記メモリに記憶した順に順次プロセッサにより入力して実行し、実行結果を上記中間結果管理部にプロセッサにより記憶する検索処理部であって、検索命令を実行する際に上記所定のリソースを使用してデータベースを検索し、中間結果集計命令を実行する際に上記中間結果管理部に記憶された実行結果をプロセッサにより取得し取得した実行結果を用いて当該中間結果集計命令を実行する検索処理部と
を備えたことを特徴とする情報検索装置。 - 上記検索式入力部は、上記検索式として、上記第1及び第2及び第3の論理演算子の各論理演算子が論理積と論理和とのいずれかである論理演算子を有する検索式を入力し、
上記検索式評価部は、
上記第1の論理演算子が論理積である場合、上記所定のリソースのリソース消費量a及びbのいずれが大きいかをプロセッサにより判定し、大きいと判定したリソース消費量を上記リソース消費量Bとし、
上記第1の論理演算子が論理和である場合、上記所定のリソースのリソース消費量a及びbをプロセッサにより加算し、加算結果を上記リソース消費量Bとし、
上記第2の論理演算子が論理積である場合、上記所定のリソースのリソース消費量c及びdのいずれが大きいかをプロセッサにより判定し、大きいと判定したリソース消費量を上記リソース消費量Cとし、
上記第2の論理演算子が論理和である場合、上記所定のリソースのリソース消費量c及びdをプロセッサにより加算し、加算結果を上記リソース消費量Cとし、
上記第3の論理演算子が論理積である場合、上記リソース消費量B及びCのうちいずれが大きいかをプロセッサにより判定し、大きいと判定したリソース消費量を上記リソース消費量Aとし、
上記第3の論理演算子が論理和である場合、上記リソース消費量B及びCをプロセッサにより加算し、加算結果を上記リソース消費量Aとする
ことを特徴とする請求項1記載の情報検索装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004221035A JP4575064B2 (ja) | 2004-07-29 | 2004-07-29 | 情報検索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004221035A JP4575064B2 (ja) | 2004-07-29 | 2004-07-29 | 情報検索装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006040081A JP2006040081A (ja) | 2006-02-09 |
JP4575064B2 true JP4575064B2 (ja) | 2010-11-04 |
Family
ID=35904989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004221035A Active JP4575064B2 (ja) | 2004-07-29 | 2004-07-29 | 情報検索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4575064B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5223380B2 (ja) * | 2008-03-03 | 2013-06-26 | 富士通株式会社 | 評価方法および検索装置 |
JP5425028B2 (ja) * | 2010-09-13 | 2014-02-26 | 株式会社野村総合研究所 | データ検索システム及びプログラム |
JP5340376B2 (ja) * | 2011-12-28 | 2013-11-13 | 楽天株式会社 | 検索装置、検索方法、検索プログラム及び記録媒体 |
JP5800720B2 (ja) * | 2012-01-24 | 2015-10-28 | 三菱電機株式会社 | 情報処理装置及び情報処理方法及びプログラム |
WO2014092105A1 (ja) | 2012-12-12 | 2014-06-19 | 日本電気株式会社 | データベース検索装置、データベース検索方法及びプログラム |
JP6401617B2 (ja) * | 2015-01-07 | 2018-10-10 | Kddi株式会社 | データ処理装置、データ処理方法及び大規模データ処理プログラム |
JP6866632B2 (ja) | 2016-12-22 | 2021-04-28 | 日本電気株式会社 | データ検索方法、データ検索装置およびデータ検索プログラム |
JP7326387B2 (ja) * | 2021-07-16 | 2023-08-15 | ヤフー株式会社 | 情報処理システム及び情報処理方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004063928A1 (ja) * | 2003-01-14 | 2004-07-29 | Accelia, Inc. | データベース負荷軽減システムおよび負荷軽減プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272806A (ja) * | 1995-04-03 | 1996-10-18 | Nippon Steel Corp | データベース検索システム |
-
2004
- 2004-07-29 JP JP2004221035A patent/JP4575064B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004063928A1 (ja) * | 2003-01-14 | 2004-07-29 | Accelia, Inc. | データベース負荷軽減システムおよび負荷軽減プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2006040081A (ja) | 2006-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106484875B (zh) | 基于molap的数据处理方法及装置 | |
US9336184B2 (en) | Representation of an interactive document as a graph of entities | |
JP4953468B2 (ja) | オントロジーデータのインポート/エクスポートのための方法および装置 | |
JP5939588B2 (ja) | 関連ノードを探索する方法、並びに、そのコンピュータ、及びコンピュータ・プログラム | |
KR20080024712A (ko) | 사용자의 검색 히스토리를 이용한 모바일 정보 검색 방법,분류 방법 및 정보 검색 시스템 | |
JP6434162B2 (ja) | データ管理システム、データ管理方法およびプログラム | |
JP2019082931A (ja) | 検索装置、類似度算出方法、およびプログラム | |
CN109783638B (zh) | 一种基于半监督学习的用户评论聚类方法 | |
JP4575064B2 (ja) | 情報検索装置 | |
CN101408909B (zh) | 一种产品多专业一体化实现方法 | |
JP7456137B2 (ja) | 情報処理装置及びプログラム | |
US20170300461A1 (en) | Representation of an Interactive Document as a Graph of Entities | |
KR101039414B1 (ko) | 객체 간의 관계를 설정하고 이에 대한 정보를 제공하기 위한 방법, 서버 및 컴퓨터 판독 가능한 기록 매체 | |
CN103324641A (zh) | 信息记录推荐方法和装置 | |
JP3163141B2 (ja) | リレーショナルデータベース処理装置および処理方法 | |
WO2023103914A1 (zh) | 文本情感分析方法、装置及计算机可读存储介质 | |
KR102646588B1 (ko) | 맞춤형 지식 그래프 생성을 위한 시스템 및 방법 | |
JP5555238B2 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
JP2000090093A (ja) | 全文検索方法及び全文検索システム並びに全文検索プログラムを記録した記録媒体 | |
Truica et al. | Building an inverted index at the dbms layer for fast full text search | |
JP5954742B2 (ja) | 文書を検索する装置及び方法 | |
JP5695586B2 (ja) | Xml文書検索装置及びプログラム | |
JP2003091535A (ja) | データ管理方法及びプログラム並びに装置 | |
JP5867208B2 (ja) | データモデル変換プログラム、データモデル変換方法およびデータモデル変換装置 | |
JPWO2016013209A1 (ja) | 文集合抽出システム、方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100305 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100330 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100622 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100712 |
|
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: 20100817 |
|
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: 20100819 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4575064 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130827 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |