JP2017068758A - 検索制御プログラム、検索制御方法および検索サーバ装置 - Google Patents

検索制御プログラム、検索制御方法および検索サーバ装置 Download PDF

Info

Publication number
JP2017068758A
JP2017068758A JP2015196176A JP2015196176A JP2017068758A JP 2017068758 A JP2017068758 A JP 2017068758A JP 2015196176 A JP2015196176 A JP 2015196176A JP 2015196176 A JP2015196176 A JP 2015196176A JP 2017068758 A JP2017068758 A JP 2017068758A
Authority
JP
Japan
Prior art keywords
search
identification information
path
logical
storage unit
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
Application number
JP2015196176A
Other languages
English (en)
Other versions
JP6631139B2 (ja
Inventor
泰亘 森山
Yasunobu Moriyama
泰亘 森山
真彦 永田
Masahiko Nagata
真彦 永田
樹一 山田
Kiichi Yamada
樹一 山田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015196176A priority Critical patent/JP6631139B2/ja
Priority to US15/267,276 priority patent/US10223405B2/en
Publication of JP2017068758A publication Critical patent/JP2017068758A/ja
Application granted granted Critical
Publication of JP6631139B2 publication Critical patent/JP6631139B2/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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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
    • 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing

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)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】同時処理を行う複数の検索条件中で同一の条件式を統合する。【解決手段】検索制御プログラムは、コンピュータに、複数の検索条件それぞれについて、検索条件に含まれるパスについては、一致するパスが記憶部に既に記憶されているか否かに応じて、該パスと新たな識別情報とを関連付けた新しいエントリを生成するか否か制御し、前記検索条件に含まれる、値と演算子との組については、前記値と演算子と参照先のパスに対応する識別情報との組が、前記記憶部に既に記憶されているか否かに応じて、前記組と新たな識別情報とを関連付けた新しいエントリを生成するか否か制御し、前記複数の検索条件それぞれに含まれる条件式の評価に用いる論理式を、前記記憶部に記憶されたエントリに対応する識別情報を用いて生成する。【選択図】図1

Description

本発明は、検索制御プログラム、検索制御方法および検索サーバ装置に関する。
従来の検索システムにおいては、複数のクライアントが接続され、入力される検索要求が多数の条件式から構成される長い検索式を多く含み、またそうした検索式が常時多重に実行されるような大規模検索システムが存在する。こうしたシステムでは、検索対象データに対し検索要求に対応する処理を行なっている間、システムは他の処理を行なうことができない。そのため、クライアントから検索要求を入力しても、検索システムが検索を実行中の場合は、当該処理が終了するまで入力した検索要求の処理が待たされる場合があった。
一方、検索システムに対し異なるクライアントから入力され、検索システムに同時処理される検索式は、同一の条件式が含まれることが多い。しかし、従来の検索システムは、このように同じ検索要求が複数入力された場合、同じ検索処理を反復するという無駄な処理を行なっているので、重複した条件式を含む条件式の総数に比例して検索時間が掛かるので処理が遅くなる。ここで、条件式が重複するのは異なる検索式に同一の条件式が存在するような場合だけでなく、同一の検索式中に同一の条件式が複数存在するような場合も含んでいる。
式(1−1)〜式(1−3)は、複数の検索式の例を示したものである。ここでA, B, C1, C2, C3, D1, D2, D3, E1, E2, E3は、それぞれ条件式を表わしている。
検索式1=(A and B and C1) OR (A and B and C2) OR (A and B and C3) (1−1)
検索式2=(A and B and D1) OR (A and B and D2) OR (A and B and D3) (1−2)
検索式3=(A and B and E1) OR (A and B and E2) OR (A and B and E3) (1−3)
式(1−1)〜式(1−3)には、同じ条件式A, Bが存在していると同時に、式(1−1)中にも条件式A, Bは、3回ずつ出現している。
こうした条件式が重複する問題に対し、入力された複数の検索式をまとめて処理する、相乗り検索方式が提案されている。相乗り検索とは検索式の多重処理性能を高めるMISD(Multiple Instruction stream, Single Data stream)アーキテクチャの一つで、一定時間内に受け付けた複数の検索式をマージして検索することで、マージされた複数の検索処理におけるデータ照合時間が1となるので、処理効率を高めることができる。
特開2002−222194号公報
従来の検索システムでは、類似したデータセットの中から特定のレコードを抽出する場合、その抽出条件が複雑に記述されるため、検索条件が非常に複雑化することが多い。上記相乗り検索方式による検索システムは、一定時間内に受け付けた複数の検索式に含まれる同一の条件式のデータ照合をマージして検索することで複数の検索処理におけるデータ照合時間を1とすることができ、処理効率を高めている。
しかしながら、相乗り検索方式による検索システムでは、検索式をマージしても各検索式の構成要素である条件式の総数は変わらないため、条件式の評価時間はマージ前後で同じである。すなわち、同一の条件式に対し、データ照合時間は効率化されるが、条件式の評価時間は効率化できない場合がある。
一つの側面では、同一の条件式を統合することで、条件式の評価時間を短縮することができる検索制御プログラム、検索制御方法および検索サーバ装置を提供することを目的とする。
第1の案では、検索制御プログラムは、コンピュータに、複数の検索条件それぞれについて、検索条件に含まれるパスについては、一致するパスが記憶部に既に記憶されているか否かに応じて、該パスと新たな識別情報とを関連付けた新しいエントリを生成するか否か制御し、前記検索条件に含まれる、値と演算子との組については、前記値と演算子と参照先のパスに対応する識別情報との組が、前記記憶部に既に記憶されているか否かに応じて、前記組と新たな識別情報とを関連付けた新しいエントリを生成するか否か制御し、前記複数の検索条件それぞれに含まれる条件式の評価に用いる論理式を、前記記憶部に記憶されたエントリに対応する識別情報を用いて生成する。
一つの側面では、同一の条件式を統合することで、条件式の評価時間を短縮することができるという効果を奏する。
図1は、本発明による検索システムの構成図を示す図である。 図2は、検索サーバの処理の全体の流れを示すフローチャートである。 図3は、検索条件の統合処理を示すフローチャートである。 図4は、検索処理のフローチャートである。 図5Aは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Bは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Cは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Dは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Eは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Fは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Gは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Hは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Iは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Jは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Kは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図5Lは、実施例によるキーワード変数テーブルと論理テーブルへの登録例を示す図である。 図6は、従来技術によるキーワード変数テーブルと論理テーブルへの登録例でを示す図ある。 図7は、実施例による検索、従来の検索による多重検索の処理時間を示すグラフである。 図8は、検索制御プログラムを実行するコンピュータの構成の一例を示す図である。
以下に、本発明に係る検索制御プログラム、検索制御方法および検索サーバ装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[装置構成]
本実施例に係る検索サーバ20について説明する。検索サーバ20は、複数の検索要求に対し、検索結果をそれぞれ出力する装置である。検索サーバ20は、例えば、パーソナルコンピュータやサーバコンピュータなどのコンピュータである。検索サーバ20は、複数の検索要求に含まれる同一の条件式をマージしてから検索することで、処理効率を高めている。
図1は、実施例1に係る検索サーバ20の機能的な構成の一例を示す図である。図1に示すように、検索サーバ20は、検索要求受付部21と、検索結果送信部22と、制御部23と、記憶部24とを有する。なお、検索サーバ20は、上記の機器以外の他の機器を有してもよい。
検索要求受付部21は、検索要求の入力を受け付ける。図1では、複数のクライアント10a〜10cから不図示のネットワークを介して複数の検索要求をそれぞれ受信している。入力された検索要求は、不図示のバッファなどに一旦格納されたのちに、制御部23に送られる。検索要求は、例えば、式(1−1)〜式(1−3)に示したような検索式を含んでいるが、検索式以外にも検索要求元の端末の識別情報や、検索要求を発信したユーザの識別情報や、検索要求が入力された日時情報などの関連情報を含めることができる。また、図1ではクライアントから検索要求が入力される構成を示したが、これに限定されるものではなく、キーボード、マウス、マイクなど各種入力装置を検索要求受付部21に接続しても良い。
検索結果送信部22は、上記検索要求に対する検索結果を制御部23から得て、検索要求元に送信する。図1では、検索要求を発信したクライアントを分別して、検索要求のあったクライアントに検索結果を送信しているが、これに限定されるものではなく、検索結果を管理者やデータベースなど指定されたユーザや装置にも送信してもよい。
制御部23は、検索サーバ20を制御するデバイスである。制御部23としては、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路を採用できる。制御部23は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部23は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部23は、判定部30と、生成部31と、検索部32とを有する。
判定部30は、各種の判定を行う。例えば、判定部30は、検索要求受付部21に入力された検索要求に含まれる検索式を解析し、含まれている条件式および論理式に関する情報が記憶部24に格納されているかを判定する。生成部31は記憶部24に登録されている情報に基づいて、入力された検索要求に含まれる検索式を評価するための論理式を生成する。さらに、検索部32は生成部31が生成した論理式に基づいて検索要求に含まれる検索式を評価して、検索結果送信部22に評価した結果を出力する。
記憶部24は、各種のデータを記憶する記憶デバイスである。例えば、記憶部24は、ハードディスク、SSD(Solid State Drive)、光ディスクなどの記憶装置である。なお、記憶部24は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)などのデータを書き換え可能な半導体メモリであってもよい。
記憶部24は、制御部23で実行されるOS(Operating System)や各種プログラムを記憶する。例えば、記憶部24は、後述する各種の処理を実行するプログラムを含む各種のプログラムを記憶する。さらに、記憶部24は、制御部23で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部24は、キーワード変数テーブル40と、論理テーブル41とを記憶する。
キーワード変数テーブル40は、検索サーバ20に入力された検索要求に含まれる条件式を構成するデータを記憶したテーブルである。論理テーブル41は、入力された検索要求に含まれる検索式および条件式に対応する論理式を示すデータを記憶したテーブルである。例えば、式(1−1)では、条件式A, B, C1, C2, C3自体が論理式である。さらに、3つの条件式の論理積である(A and B and C1), (A and B and C2), (A and B and C3)も、それぞれ論理式であり、式(1−1)の右辺全体も論理式であり、それぞれの論理式が論理テーブル41に登録されることになる。
キーワード変数テーブル40または論理テーブル41へデータを登録する場合は、予め判定部30が同じデータがそれぞれのテーブルに既に格納されていないかを判定する。判定部30が、格納されていないと判定した場合にキーワード変数テーブル40または論理テーブル41へそのデータを登録し、格納されていると判定された場合は登録を行わない。したがって、キーワード変数テーブル40および論理テーブル41は重複したデータを有さないことになる。
[処理の流れ]
実施例1に係る検索サーバ20の動作について説明する。図2は、本実施例に関わる検索サーバ20による処理の全体の流れを示すフローチャートである。まず、検索サーバ20はクライアント10a〜10cから入力された検索式を含む検索要求を検索要求受付部21で受信する(S10)。受信した検索式はバッファに格納され(S11)、その時点で制御部23は、検索部32が検索処理を行っているかを判定する(S12)。
検索を行っている最中の場合は(S12肯定)は、S10に戻り、検索を行っていない場合は(S12否定)、バッファに格納された検索式に対し判定部30で検索条件の統合処理を行う(S13)。統合処理の終了後、生成部31は記憶部24に登録されている情報に基づいて、入力された検索要求に含まれる検索式を評価するための論理式を生成し、検索部32は生成した論理式に基づいて検索要求に含まれる検索式を評価する(S14)。検索式を評価した結果は、検索結果送信部22が検索要求元のクライアント10a〜10cに送信して(S15)、処理を終了する。なお、検索式を格納するバッファはS13の統合処理の終了後、次の検索式を受信するまでの間に記憶を消去される。(また、キーワード変数テーブル40および論理テーブル41は、S14の検索処理の終了後、次の検索式を受信するまでの間に内容を消去される。)
図3は、本実施例に関わる検索サーバ20による処理のうち、図2のS13に示した検索条件の統合処理の流れを示すフローチャートである。まず、バッファに格納された検索式から統合処理をまだ適用していない検索式を1つ選択する(S20)。以下、本実施例では、XML文書等の構造を持つデータを対象に、インデックス技術を用いたデータの検索を行うことを想定し、検索式の例として以下では、式(2−1)、式(2−2)を用いて説明を行う。
Q1:/root/A/A001=1 AND /root/B/B001=”book” AND /root/C/C001=1 (2−1)
Q2:/root/A/A001=1 AND /root/B/B001=”book” OR /root/C/C001=3 (2−2)
ここで、式(2−1)の検索式Q1中で、「/root/A/A001=1」、「/root/B/B001=”book”」、「/root/C/C001=1」が、式(2−2)の検索式Q2中で、「/root/A/A001=1」、「/root/B/B001=”book”」、「/root/C/C001=3」がそれぞれ条件式を表わしている。
図3に戻り、今S20でQ1が選択されたとする。次に、判定部30は選択された検索式から、未処理の条件式を選択する(S21)。インデックス技術を用いたデータの検索では条件式は、左辺と右辺を比較演算子で結合した構成をとっている。いまS21で、「/root/A/A001=1」が選択されたとすると、「/root/A/A001」が左辺、「1」が右辺、「=」が比較演算子ということになる。特にXML文書等の構造を持つデータを対象に検索を行う場合には、条件式の左辺はパス、右辺が値を表わす。そして、左辺のパスが指し示すデータの照合をまず行う。そして、右辺の値を照合し、左辺と右辺の照合された結果が比較演算子の示す関係性を満たしているかを評価する。
S21で選択した条件式に対し、判定部30は構文解析などを行って、左辺(パス)を取得する(S22)。判定部30は、取得した左辺(パス)がキーワード変数テーブル40に既に格納されていないかを判定し、格納されていないと判定した場合にキーワード変数テーブル40に左辺(パス)を識別情報と関連付けて登録する(S23)。ここで識別情報は、キーワード変数テーブル40に登録されたデータ毎に一意的に付与される情報である。
続けて判定部30は条件式から比較演算子を取得し(S24)、さらに右辺(値)を取得する(S25)。判定部30は、取得したパスと取得した比較演算子が同一の取得した右辺(値)がキーワード変数テーブル40に既に格納されていないかを判定し、格納されていないと判定した場合にキーワード変数テーブル40に右辺(値)を識別情報と関連付けた新しいエントリを生成し登録する(S26)。
さらに判定部30は選択した条件式と同一の論理式が論理テーブル41に既に格納されていないかを、条件式の左辺および右辺に対応する識別情報に基づいて判定し、格納されていないと判定した場合に論理テーブル41に条件式を対応する識別情報の組み合わせと関連付けた新しいエントリを生成し登録して条件式の処理を終了する(S27)。
次に、選択された検索式に含まれるすべての条件式が処理されたかを判定し(S28)、すべての条件式が処理されていないと判定された場合は(S28否定)、S21に戻って新たな条件式を選択された検索式から選ぶ。すべての条件式が処理されていると判定された場合は(S28肯定)、S29に進んでバッファに格納された検索式がすべて処理されたかを判定し、すべての検索式が処理されていないと判定された場合は(S29否定)、S20に戻ってバッファに格納された検索式から未選択の新たな検索式を選択する。すべての検索式が処理されていると判定された場合は(S29肯定)、処理を終了する。
検索条件の統合処理によりキーワード変数テーブル40に登録されたキーワードは、パスのA論理式の集合(カラマ)とキーワードのA論理式の集合(シグマなど)に分類されるが、検索は、パスのA論理式の集合から照合を行うパス解析を実施した後に、該当するパスが照合された場合にキーワードのA論理式情報を用いて照合・評価を実施される。
図4は、本実施例に関わる検索サーバ20による処理のうち、図2のS14に示した検索処理の流れを示すフローチャートである。まず、制御部23は検索対象とするレコードを選択する(S30)。なお、本実施例では、構造を持つデータを対象にデータの検索を行うことを想定しているが、データの格納場所は特に示していない。検索対象とするデータを図1の記憶部24に格納させても良いが、検索サーバ20とネットワーク接続した外部記憶装置に格納させても良く、データの格納場所は、これに限定されるものではない。
図4に戻り、S30で検索対象レコードを選択した後に、生成部31がキーワード変数テーブル40および論理テーブル41に基づき条件式に相当する論理式を生成する(以下ではA論理式と呼ぶ)。検索部32は、生成したA論理式に基づき、レコードに対しデータ照合を行い目的のパスを探索してタグ照合を行う(S31)。ここで評価対象となるA論理式の右辺の「値」が数値であるか否かを判定し(S32)、数値である場合は(S32肯定)、数値データを取得し(S33)、条件式の比較演算子に基づく大小比較を行って評価し(S34)、選択したレコードの検索を終える(S36)。
一方、評価対象となるA論理式の右辺の「値」が数値でない場合は(S32否定)、「値は」文字列であり、オートマトンにより照合して(S35)、選択したレコードの検索を終える(S36)。なお、オートマトンはAC法(Aho-Corasick algorithm)やBM法(Boyer-Moore String Search Algorithm)などの文字列照合アルゴリズムに基づいて構築できる。
S36で選択したレコードの検索を終えた後、生成部31は論理テーブル41に基づき検索式に相当する論理式を生成し(以下ではZ論理式と呼ぶ)、検索部32は、選択したレコードを生成したA論理式で評価した結果に基づき、検索式に対応する生成したZ論理式を評価することによって、検索要求を評価する(S37)。そして、すべてのレコードが検索されたかを判定し(S38)、すべて検索されていないと判定された場合は(S38否定)、S30に戻って、検索されていないレコードを選択する。すべて検索されたと判定された場合は(S38肯定)、検索処理を終了する。
図5A〜図5Kは、本実施例に関わる検索サーバ20による処理のうち、図3に示した検索条件の統合処理を、式(2−1)、式(2−2)の示すQ1、Q2を、キーワード変数テーブル40および論理テーブル41に登録する場合を例に、図3のフローチャートに対応付けて説明する図である。それぞれのテーブルでは処理の参照あるいは追加した部分がハッチングで示されている。
まず、図5Aでは、まず検索式Q1を選択し(S20)、Q1から一番左の条件式「/root/A/A001=1」が選択され(S21)、選択した条件式のパス「/root/A/A001」が取得される(S22)。最初、キーワード変数テーブル40は空なので、取得されたパスはキーワード変数テーブル40に格納されていないと判定され、キーワード変数テーブル40にパス「/root/A/A001」が、論理番号A1と関連付けて登録される(S23)。ここで、図5の論理番号は、キーワード変数テーブル40に登録されたデータ毎に一意的に付与される識別情報である。以下では、キーワード変数テーブル40に登録される「パス」および「値」を「キーワード」と総称する。
次に図5Bでは、条件式「/root/A/A001=1」から比較演算子「=」を取得し(S24)、さらに値「1」を取得する(S25)。取得した「1」と比較演算子「=」の組合せでA1をパスとする登録はキーワード変数テーブル40に格納されていないと判定され、キーワード変数テーブル40に値「1」を比較演算子「=」およびパスの論理番号A1と共に、論理番号A2と関連付けて登録される(S26)。
次に図5Cでは、条件式「/root/A/A001=1」の右辺、左辺に対応する論理番号の組(A1.A2)が論理テーブル41に既に格納されていないかを判定し、格納されていないと判定した場合に論理テーブル41に論理番号の組(A1.A2)が論理式番号Z1と関連付けて登録される(S27)。ここで、図5の論理式番号は、論理テーブル41に登録されたデータ毎に一意的に付与される識別情報である。
Q1の条件式はまだ全部処理されていないので(S28否定)、S21で、次に「/root/B/B001=”book”」が選択される。そして、「/root/A/A001=1」と同様の手順で、キーワード変数テーブル40にパス「/root/B/B001」が、論理番号A3と関連付けて登録される(S23)。また、キーワード変数テーブル40に値「”book”」を比較演算子「=」およびパスの論理番号A3と共に、論理番号A4と関連付けて登録され(S26)、論理テーブル41に論理番号の組(A3.A4)が論理式番号Z2と関連付けて登録される(S27)。ここで、論理式テーブルの論理式番号Z2に対応して登録されたA3.A4の組のうちA4がカッコつきになっているのは、A4のキーワードが引用符を含むことを示すものである。
Q1の条件式はまだ全部処理されていないので(S28否定)、S21で、次に「/root/C/C001=1」が選択される。そして、「/root/A/A001=1」と同様の手順で、キーワード変数テーブル40にパス「/root/C/C001」が、論理番号A5と関連付けて登録される(S23)。また、キーワード変数テーブル40に値「1」を比較演算子「=」およびパスの論理番号A5と共に、論理番号A6と関連付けて登録され(S26)、論理テーブル41に論理番号の組(A5.A6)が論理式番号Z3と関連付けて登録される(S27)。以上の処理で、キーワード変数テーブル40および論理テーブル41の登録内容は図5Dに示すようになる。
以上で、Q1の条件式は全部処理され(S28肯定)、Q1全体が論理式として登録される。Q1の論理式は、条件式に関連付けられた論理式番号Z1とZ2とZ3との論理積で表されるが、その内容の論理式は論理テーブル41に格納されていないと判定されるので、図5Eのように論理式番号の組(Z1.Z2.Z3)が論理式番号Z4と関連付けて登録される。ここで、論理式テーブルの論理式Z1.Z2.Z3での論理式間のピリオドは論理演算子ANDを示している。
次に、S20で、未処理の検索式としてQ2が選択され、図5Fでは、Q2から一番左の条件式「/root/A/A001=1」が選択され(S21)、選択した条件式のパス「/root/A/A001」が取得される(S22)。取得されたパスはキーワード変数テーブル40に既に格納されていると判定され、キーワード変数テーブル40に登録されない。
そして、図5Gでは、Q2の条件式「/root/A/A001=1」から比較演算子「=」を取得し(S24)、さらに値「1」を取得する(S25)。取得した「1」と比較演算子「=」の組合せでA1をパスとする登録はキーワード変数テーブル40に格納されていると判定されるので、キーワード変数テーブル40に値「1」は登録されない。
さらに、図5Hでは、Q2の条件式「/root/A/A001=1」の右辺、左辺に対応する論理番号の組(A1.A2)が論理テーブル41に既に格納されていると判定されるので、論理テーブル41に登録は行われない。
同様に、図5Iでは、Q2の条件式「/root/B/B001=”book”」のパス、値が取得されるがキーワード変数テーブル40に格納されていると判定されるので登録は行われない。
さて、図5Jでは、Q2の条件式「/root/C/C001=3」のパス、値が取得される。パス「/root/C/C001」はキーワード変数テーブル40に格納されていると判定されるので登録は行われない。しかし、取得した値「3」と比較演算子「=」の組合せでA5をパスとする登録はキーワード変数テーブル40に格納されていないと判定されるので、キーワード変数テーブル40に値「3」を比較演算子「=」およびパスの論理番号A5と共に、論理番号A7と関連付けて登録される(S26)。
そして、図5Kでは、Q2の条件式「/root/C/C001=3」の右辺、左辺に対応する論理番号の組(A5.A7)は、論理テーブル41に格納されていないと判定されるので、論理テーブル41に論理番号の組(A5.A7)が論理式番号Z5と関連付けて登録される(S27)。
以上で、Q2の条件式は全部処理され(S28肯定)、Q2全体の論理式は、条件式に関連付けられた論理式番号Z1とZ2とZ5による論理式で表されるが、その内容の論理式は論理テーブル41に格納されていないと判定されるので、図5Lのように論理式番号の組(Z1.Z2,Z5)が論理式番号Z6と関連付けて登録される。以上の処理ですべての検索式Q1、Q2の処理が終了する(S29肯定)。なお、Z5に対し、論理式テーブル41の論理式Z2とZ5との間は、両者の論理関係が論理演算子ORであることを示す、カンマになっている。
図6は従来技術による、キーワード変数テーブル50と論理テーブル51への登録例である。具体的には、本願に対する先行技術として挙げた相乗り検索方式による検索システムがQ1、Q2に対して登録したキーワード変数テーブル50、論理テーブル51を示している。相乗り検索方式では、同一のパスはマージされており、キーワードが同一のパスの登録は、A1、A3、A5で重複した登録は無い。しかし、例えばA2とA7、A4とA8は「値」、比較演算子、「パス」が同一である重複した登録になっている。さらに、A2とA7が同一であればZ1とZ5も同一と、A4とA8が同一であれば、Z2とZ6も同一であるので重複した登録になっている。
すなわち、図6のキーワード変数テーブル50では、パスのA論理式の集合(カラマ)の重複は抑えられているので、検索の際には、パスのA論理式の集合から照合を行うパス解析の処理は軽減する。しかし、キーワードのA論理式の集合(シグマなど)には重複があるので、キーワードのA論理式情報を用いて照合・評価が重複して実施されることになる。
しかし、図6の従来技術によるキーワード変数テーブル50へのキーワードの登録が論理番号A1〜A9の9つであるのに対し、図5Kのキーワード変数テーブル40へのキーワードの登録は論理番号A1〜A7の7つに抑えられる。また、図6の従来技術による論理テーブル51への論理式の登録が論理式番号Z1〜Z8の8つであるのに対し、図5Kの論理テーブル41の論理式の登録は論理番号Z1〜Z6の6つに抑えられる。したがって、キーワードのA論理式の集合には重複がなくなるので、キーワードのA論理式情報を用いた照合・評価が効率的に実施されることになる。
また、従来技術である相乗り検索方式では条件式の左辺であるパスのA論理式に対して、例えば論理番号A1のパス「/root/A/A001」に対して、「root」を1、「A」を2、「A001」を3のように要素名をIDとして管理し、パスを「1- 2- 3」のように、パスをIDの階層構造で表現して、パスの階層構造として同一かどうかの比較をおこなっていた。
これに対し、本実施例では条件式の右辺であるキーワードのA論理式を、以下のように要素を結合してから、それをキーとしてハッシュして容易に比較できる。例えばA2の場合には、値「1」とそのパス「A1」と比較演算子「=」とを結合したものをキーとしてハッシュ変換した結果同士を比較することにより、キーワードのA論理式を重複なしに登録して、キーワードのA論理式情報を用いた照合・評価が効率的に実施されることになる。
図7は、さまざまな多重度を有する複数の検索式を自動生成し、従来の検索方式と、本実施例の方法で複数の検索式を一括して処理した場合の処理時間を計測した結果を示すものである。図7の例では、縦軸に検索処理時間が示され、横軸に複数の検索式の多重度が示されている。ここで、多重度とは検索式に含まれるすべてのキーワードについて検索式中に出現する回数を平均したものである。
図7の例では、白抜き四角(original)のプロットが従来の検索方式を、黒四角(prototype)のプロットが本実施例の検索方式を示している。さらに、それぞれの検索方式のプロットに対し多項式近似した線が書き加えられている。図7から、シミュレーション上では本実施例の検索方式は従来の検索方式に比べ1.3倍の高速化が実現されていることがわかる。
[効果]
上述してきたように、本実施例に係る検索サーバ20は、従来のキーワード変数テーブルと異なり、検索式を解析する過程で、条件式の右辺の「値」に対して、左辺の「パス」と両者の比較演算子の関係から同一判定を行うことで、同一検索式内に同一の条件式が複数存在するような場合、キーワード変数テーブルに重複した登録を行わないようにして、検索式から作成されるキーワード変数テーブルサイズを削減することができる。キーワード変数テーブルを小さくすることで、テーブルの評価コストを下げ、検索アプリケーション応答時間を短縮することができる。
また、本実施例に係る検索サーバ20は、従来のキーワード変数テーブルと異なり、検索式を解析する過程で、条件式の右辺の「値」に対して、左辺の「パス」と両者の比較演算子の関係から同一判定を行うことで、同時処理する複数の検索式間で同一の条件式が複数存在するような場合でも、キーワード変数テーブルに重複した登録を行わないようにして、検索式から作成されるキーワード変数テーブルサイズを削減することができる。キーワード変数テーブルを小さくすることで、テーブルの評価コストを下げ、検索アプリケーション応答時間を短縮することができる。
さらに、本実施例に係る検索サーバ20は、検索式を解析する過程で、条件式の右辺の「値」に対して、左辺の「パス」と両者の比較演算子の関係から同一判定を行うと共に、条件式の左辺の「パス」に対して同一判定を行うので、複数の検索式内に同一の条件式が複数存在するような場合、キーワード変数テーブルに重複した登録を行わないようにして、検索式から作成されるキーワード変数テーブルサイズを削減することができる。キーワード変数テーブルを小さくすることで、テーブルの評価コストを下げ、検索アプリケーション応答時間を短縮することができる。
さらに、本実施例に係る検索サーバ20は、検索式を解析する過程で、条件式の右辺の「値」に対して、左辺の「パス」と両者の比較演算子の関係から同一判定を行ってから識別情報と関連付けて登録すると共に、条件式の左辺の「パス」に対して同一判定を行ってから識別情報と関連付けて登録することができる。条件式の左辺と右辺の識別情報の組合せに基づいて論理式テーブルに登録することができるので、同一の識別情報の組合せによる重複した登録を行わないようにして、検索式に同一の条件式が複数存在するような場合、検索式から作成される論理式テーブルサイズを削減することができる。論理式テーブルを小さくすることで、テーブルの評価コストを下げ、検索アプリケーション応答時間を短縮することができる。
本実施例に係る検索サーバ20は、検索式の多重度が高くなればなるほど、条件式の重複が起こる確率が高くなるため、検索アプリケーション応答時間の短縮幅も大きくなり、より効率的な検索ができる。
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、検索要求受付部21、検索結果送信部22、制御部23および記憶部24の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[検索制御プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図8は、検索制御プログラムを実行するコンピュータの構成の一例を示す図である。
図8に示すように、コンピュータ100は、CPU(Central Processing Unit)110、HDD(Hard Disk Drive)120、RAM(Random Access Memory)140を有する。これら100〜140の各部は、バス200を介して接続される。
HDD120には上記の検索要求受付部21、検索結果送信部22、制御部23および記憶部24と同様の機能を発揮する検索制御プログラムが予め記憶される。なお、検索制御プログラムについては、適宜分離しても良い。
また、HDD120は、各種情報を記憶する。例えば、HDD120は、検索に用いるデータとしてキーワード変数テーブル40、論理式テーブル41とを記憶する。
そして、CPU110が、検索制御プログラム120aをHDD120から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、検索制御プログラムは、検索要求受付部21、検索結果送信部22、制御部23および記憶部24と同様の動作を実行する。
なお、上記した検索制御プログラム120aは、必ずしも最初からHDD120に記憶させることを要しない。
例えば、コンピュータ100に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ100がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ100がこれらからプログラムを読み出して実行するようにしてもよい。
10a〜10c クライアント
20 検索サーバ
21 検索要求受付部
22 検索結果送信部
23 制御部
24 記憶部
30 判定部
31 生成部
32 検索部
40 キーワード変数テーブル
41 論理テーブル

Claims (5)

  1. コンピュータに、
    複数の検索条件それぞれについて、検索条件に含まれるパスについては、一致するパスが記憶部に既に記憶されているか否かに応じて、該パスと新たな識別情報とを関連付けた新しいエントリを生成するか否か制御し、
    前記検索条件に含まれる、値と演算子との組については、前記値と演算子と参照先のパスに対応する識別情報との組が、前記記憶部に既に記憶されているか否かに応じて、前記組と新たな識別情報とを関連付けた新しいエントリを生成するか否か制御し、
    前記複数の検索条件それぞれに含まれる条件式の評価に用いる論理式を、前記記憶部に記憶されたエントリに対応する識別情報を用いて生成する、
    処理を実行させることを特徴とする検索制御プログラム。
  2. 前記一致するパスが記憶部に既に記憶されている場合には、前記パスと新たな識別情報と関連付けた新しいエントリを生成せず、
    前記値と演算子と参照先のパスに対応する識別情報との組が前記記憶部に既に記憶されている場合は、前記組と新たな識別情報とを関連付けた新しいエントリを生成しない、
    ことを特徴とする請求項1に記載の検索制御プログラム。
  3. 前記複数の検索条件それぞれについて、前記エントリに対応する識別情報の組が、前記論理式の識別情報と関連付けられて前記記憶部に記憶されているかを判定し、
    判定の結果、前記エントリに対応する識別情報の組合せが前記論理式の識別情報と関連付けられて前記記憶部に記憶されていない場合、記憶されていない前記組を新たな論理式の識別情報と関連付けて前記記憶部に記憶し、
    前記複数の検索条件それぞれの評価に用いる論理式を、前記記憶部に記憶された論理式の識別情報を用いて生成する、
    ことを特徴とする請求項1又は2に記載の検索制御プログラム。
  4. コンピュータが、
    複数の検索条件それぞれについて、検索条件に含まれるパスについては、一致するパスが記憶部に既に記憶されているか否かに応じて、該パスと新たな識別情報とを関連付けた新しいエントリを生成するか否か制御し、
    前記検索条件に含まれる、値と演算子との組については、前記値と演算子と参照先のパスに対応する識別情報との組が、前記記憶部に既に記憶されているか否かに応じて、前記組と新たな識別情報とを関連付けた新しいエントリを生成するか否か制御し、
    前記複数の検索条件それぞれに含まれる条件式の評価に用いる論理式を、前記記憶部に記憶されたエントリに対応する識別情報を用いて生成する、
    ことを特徴とする検索制御方法。
  5. 検索条件に含まれる情報を記憶する記憶部と、
    複数の検索条件それぞれについて、検索条件に含まれるパスについては、一致するパスが記憶部に既に記憶されているか否かに応じて、該パスと新たな識別情報とを関連付けた新しいエントリを生成するか否か制御し、前記検索条件に含まれる、値と演算子との組については、前記値と演算子と参照先のパスに対応する識別情報との組が、前記記憶部に既に記憶されているか否かに応じて、前記組と新たな識別情報とを関連付けた新しいエントリを生成するか否か制御する判定部と、
    前記複数の検索条件それぞれに含まれる条件式の評価に用いる論理式を、前記記憶部に記憶されたエントリに対応する識別情報を用いて生成する生成部とを備えた、
    ことを特徴とする検索サーバ装置。
JP2015196176A 2015-10-01 2015-10-01 検索制御プログラム、検索制御方法および検索サーバ装置 Active JP6631139B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015196176A JP6631139B2 (ja) 2015-10-01 2015-10-01 検索制御プログラム、検索制御方法および検索サーバ装置
US15/267,276 US10223405B2 (en) 2015-10-01 2016-09-16 Retrieval control method and retrieval server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015196176A JP6631139B2 (ja) 2015-10-01 2015-10-01 検索制御プログラム、検索制御方法および検索サーバ装置

Publications (2)

Publication Number Publication Date
JP2017068758A true JP2017068758A (ja) 2017-04-06
JP6631139B2 JP6631139B2 (ja) 2020-01-15

Family

ID=58447937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015196176A Active JP6631139B2 (ja) 2015-10-01 2015-10-01 検索制御プログラム、検索制御方法および検索サーバ装置

Country Status (2)

Country Link
US (1) US10223405B2 (ja)
JP (1) JP6631139B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0561919A (ja) 1991-04-25 1993-03-12 Hitachi Ltd 多重データ検索方法および装置
JP4155382B2 (ja) 2001-01-25 2008-09-24 富士通株式会社 パターン検索方法、パターン検索装置、パターン検索プログラムを記録したコンピュータ読み取り可能な記録媒体、パターン検索システムおよびパターン検索プログラム
JP2008090404A (ja) * 2006-09-29 2008-04-17 Just Syst Corp 文書検索装置、文書検索方法および文書検索プログラム
JP2011008811A (ja) 2010-08-16 2011-01-13 Fujitsu Ltd プログラム、及びデータ抽出方法
JP5678691B2 (ja) 2011-01-28 2015-03-04 富士通株式会社 検索制御装置、検索制御プログラムおよび検索制御方法

Also Published As

Publication number Publication date
JP6631139B2 (ja) 2020-01-15
US20170097954A1 (en) 2017-04-06
US10223405B2 (en) 2019-03-05

Similar Documents

Publication Publication Date Title
US11544623B2 (en) Consistent filtering of machine learning data
US20220335338A1 (en) Feature processing tradeoff management
US20220391763A1 (en) Machine learning service
US11182691B1 (en) Category-based sampling of machine learning data
US10339465B2 (en) Optimized decision tree based models
US8972336B2 (en) System and method for mapping source columns to target columns
US9558187B2 (en) Enhanced document input parsing
US11170306B2 (en) Rich entities for knowledge bases
US20130332490A1 (en) Method, Controller, Program and Data Storage System for Performing Reconciliation Processing
CA2957674C (en) Testing insecure computing environments using random data sets generated from characterizations of real data sets
US10936308B2 (en) Multi-tenant collaborative learning
US11567735B1 (en) Systems and methods for integration of multiple programming languages within a pipelined search query
US11636025B2 (en) Intelligent generation of automated user interface testing methods
CN113282630A (zh) 基于接口切换的数据查询方法及装置
US20120124060A1 (en) Method and system of identifying adjacency data, method and system of generating a dataset for mapping adjacency data, and an adjacency data set
US9619458B2 (en) System and method for phrase matching with arbitrary text
US8468116B2 (en) Rule creation method and rule creating apparatus
US11847121B2 (en) Compound predicate query statement transformation
JP6631139B2 (ja) 検索制御プログラム、検索制御方法および検索サーバ装置
Hońko Upgrading a granular computing based data mining framework to a relational case
Hao et al. An Association‐Oriented Partitioning Approach for Streaming Graph Query
US11741312B2 (en) Systems and methods for unsupervised paraphrase mining
Guo et al. Graph hashing and factorization for fast graph stream classification
Van Leeuwen Improving data quality in schema-driven synthetic graph generation
Lee et al. Large-scale digital forensic investigation for Windows registry on Apache Spark

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191125

R150 Certificate of patent or registration of utility model

Ref document number: 6631139

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150