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

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

Info

Publication number
JP6801195B2
JP6801195B2 JP2016044186A JP2016044186A JP6801195B2 JP 6801195 B2 JP6801195 B2 JP 6801195B2 JP 2016044186 A JP2016044186 A JP 2016044186A JP 2016044186 A JP2016044186 A JP 2016044186A JP 6801195 B2 JP6801195 B2 JP 6801195B2
Authority
JP
Japan
Prior art keywords
attribute
attribute value
information
search
value
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
Application number
JP2016044186A
Other languages
English (en)
Other versions
JP2017162061A (ja
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.)
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 JP2016044186A priority Critical patent/JP6801195B2/ja
Priority to US15/381,949 priority patent/US20170262512A1/en
Publication of JP2017162061A publication Critical patent/JP2017162061A/ja
Application granted granted Critical
Publication of JP6801195B2 publication Critical patent/JP6801195B2/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/24Querying
    • G06F16/248Presentation of query results
    • 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
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データの検索技術に関する。
マテリアライズドビューは、DBMS(DataBase Management System)における通常のビューとは異なり実体を有する永続的なビューであるため、参照が終了しても消滅しない。従って、特定のビューを頻繁に参照するような場合、マテリアライズドビューを利用することで、参照の度に実行していた演算を省略して処理を高速化することができる。
特開2013−117873号公報
但し、元のテーブルとマテリアライズドビューとが必ずしもリアルタイムで同期されるわけではないので、最新ではないデータが参照される可能性がある。また、データを更新する場合には、元のテーブルの更新とマテリアライズドビューの再生成との両方が行われるため処理が遅延することがある。
また、或る対象に関する複数の属性値を格納した複数のテーブルからマテリアライズドビューを生成する場合、マテリアライズドビューのレコード数が膨大になり、現実的にはマテリアライズドビューを生成することができないことがある。たとえマテリアライズドビューを生成することができたとしても、レコード数が膨大である場合には実時間で処理を行うことはできない。
本発明の目的は、1つの側面では、検索の高速化と検索に使用するデータの少量化とを両立するための技術を提供することである。
本発明に係る検索処理方法は、検索条件を受け付け、第1属性の一意な属性値と、第1属性以外の1または複数の属性の属性値を含む属性値群とを関連付ける第1情報に基づき、第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた属性値群が検索条件を満たすかを判定し、少なくとも、検索条件を満たすと判定された属性値群に関連付けられた第1属性の一意な属性値を出力する処理を含む。
1つの側面では、検索の高速化と検索に使用するデータの少量化とを両立できるようになる。
図1は、本実施の形態のシステム概要を示す図である。 図2は、本実施の形態において検索対象となるデータの一例を示す図である。 図3は、検索対象となるデータの管理の方法について説明するための図である。 図4は、管理データ格納部に格納されるデータの一例を示す図である。 図5は、管理データによって表されるツリーの構造を示す図である。 図6は、データ格納部に格納されるデータの一例を示す図である。 図7は、追加要求を受信した場合に実行する処理の処理フローを示す図である。 図8は、追加要求、更新要求及び削除要求に含まれる命令データの一例を示す図である。 図9は、検索要求を受信した場合に実行する処理の処理フローを示す図である。 図10は、検索要求の一例を示す図である。 図11は、判定結果を管理するためのデータの一例を示す図である。 図12は、検索の際に結合演算を実行する方法について説明するための図である。 図13は、検索の際に結合演算を実行する方法について説明するための図である。 図14は、本実施の形態の検索方法について説明するための図である。 図15は、マテリアライズドビューを利用して検索を実行する方法について説明するための図である。 図16は、マテリアライズドビューを利用して検索を実行する方法について説明するための図である。 図17は、マテリアライズドビューを利用して検索を実行する方法について説明するための図である。 図18は、本実施の形態の方法によって生成されるツリー構造の一例を示す図である。 図19は、マテリアライズドビューを利用して検索を実行する方法と、本実施の形態の方法との比較するための図である。 図20は、コンピュータの機能ブロック図である。
図1に、本実施の形態のシステムの概要を示す。本実施の形態の主要な処理を実行する情報処理装置1は、例えばLAN(Local Area Network)であるネットワーク5に接続される。ネットワーク5には、ユーザによって操作されるユーザ端末3が接続される。
情報処理装置1は、第1受付部101と、取得部102と、アセット更新部103と、第1応答部104と、第2受付部105と、解析部106と、アセット検索部107と、第2応答部108と、管理データ格納部109と、データ格納部110とを含む。
第1受付部101は、レコードを追加することについての追加要求、レコードを更新することについての更新要求およびレコードを削除することについての削除要求をユーザ端末3から受信し、取得部102に出力する。取得部102は、ユーザ端末3から受信した要求から、キー情報を含む命令データを取得し、アセット更新部103に出力する。アセット更新部103は、取得部102から受け取った命令データに従い、管理データ格納部109に格納されたデータおよびデータ格納部110に格納されたデータの少なくともいずれかを更新する。アセット更新部103は、更新が完了したことを第1応答部104に通知する。第1応答部104は、更新が完了したことを示すデータをユーザ端末3に送信する。
第2受付部105は、レコードを検索することについての検索要求をユーザ端末3から受信し、解析部106に出力する。解析部106は、ユーザ端末3から受信した検索要求を解析し、検索要求に含まれる検索条件および論理演算子等をアセット検索部107に出力する。アセット検索部107は、解析部106から受け取ったデータと管理データ格納部109に格納されたデータとに基づき、データ格納部110からレコードセットを取得する。アセット検索部107は、取得したレコードセットを第2応答部108に出力する。第2応答部108は、受け取ったレコードセットを含むデータをユーザ端末3に送信する。
本実施の形態においては、複数の属性の属性値によって表される対象についてのデータを検索対象とする。本実施の形態において検索対象となるデータは、例えば、図2に示すような従業員情報である。従業員情報は、一意な(すなわち、重複がない)従業員コードに関連付けられた、勤務地等の情報を含む基本的な情報(以下、基本データと呼ぶ)、旅費に関する情報(以下、旅費データと呼ぶ)、教育に関する情報(以下、教育データと呼ぶ)および給与に関する情報(以下、給与データと呼ぶ)などを含む。このような情報はその種類によって更新されるタイミングが異なり、また、レコードの数も異なる。例えば、給与データは月に1回レコードが追加されるが、教育データ(例えば英語のスコア等)は不定期にレコードが更新又は追加される。また、例えば、旅費データおよび給与データのレコード数は勤務の期間が長くなるに従って増加するが、生年月日に関するレコードの数は1であり不変である。
図3を用いて、検索対象となるデータの管理方法について説明する。図3において、ハッチが付された矩形はレコードを表し、楕円の図形はレコードのレコードID(IDentifier)を表す。基本データのレコード、旅費データのレコードおよび教育データのレコードは、データ格納部110に受信順に格納され、各レコードにはレコードIDが割り振られる。管理データ格納部109において、基本データのレコードのレコードID、旅費データのレコードのレコードIDおよび教育データのレコードのレコードIDは、従業員コードによって束ねられる。
図4に、管理データ格納部109に格納される管理データの一例を示す。図4(a)は、管理データによって表されるツリーの根がポイントする従業員の従業員コードを示す図である。図4(b)、図4(c)および図4(d)は、各従業員コードがポイントするレコードのレコードIDを示す図である。よって、管理データによって表されるツリーの構造は、図5に示された構造である。図5に示すように、根には従業員コードが接続され、従業員コードにはその従業員コードが付与された従業員のレコードのレコードIDが接続される。以下では、1つの従業員コードと1又は複数のレコードIDとによって形成されるツリーのことをノードと呼ぶ。よって、図5の例では3つのノードが存在する。
図6に、データ格納部110に格納されるデータの一例を示す。図6の例では、レコードIDと、レコードとが格納される。レコードは受信順に格納される。
次に、図7乃至図11を用いて、情報処理装置1の動作を説明する。はじめに、図7及び図8を用いて、情報処理装置1が追加要求を受信した場合に実行する処理について説明する。
まず、情報処理装置1の第1受付部101は、ユーザ端末3から追加要求を受信し(図7:ステップS1)、追加要求を取得部102に出力する。そして、取得部102は、追加要求から命令データを取得し(ステップS3)、取得した命令データをアセット更新部103に出力する。図8(a)に、追加要求に含まれる命令データの一例を示す。この命令データによってデータ格納部110に「new_data」が追加される。
なお、図8(b)は更新要求に含まれる命令データの一例を示す図であり、この命令データによって「recordID」が付与されたレコードが「update_data」に更新される。図8(c)は削除要求に含まれる命令データの一例を示す図であり、この命令データによって「recordID」が割り振られたレコードが削除される。
アセット更新部103は、取得した命令データに含まれるキー情報(本実施の形態においては従業員コード。図8においては「node_tree」)が管理データ格納部109に格納されているか判定する(ステップS5)。
命令データに含まれるキー情報が管理データ格納部109に有る場合(ステップS5:Yesルート)、ステップS9の処理に移行する。一方、命令データに含まれるキー情報が管理データ格納部109に格納されていない場合(ステップS5:Noルート)、アセット更新部103は、命令データに含まれるキー情報を管理データ格納部109に格納する(ステップS7)。
アセット更新部103は、新規に割り振られたレコードID(具体的には、最後に割り振られたレコードIDの次レコードID)を、ステップS7において格納されたキー情報がポイントするレコードのIDとして管理データ格納部109に格納する(ステップS9)。
アセット更新部103は、命令データに含まれるレコード(図8においては「new_data」)を、新規に割り振られたレコードIDに関連付けてデータ格納部110に格納する(ステップS11)。そして処理は終了する。
そして、アセット更新部103は、更新が完了したことを第1応答部104に通知する。第1応答部104は、更新が完了したことを示すデータを、要求元の端末であるユーザ端末3に送信する。
以上のような処理を実行すれば、マテリアライズドビューのような2次情報と比較してサイズが小さいデータを生成できるようになる。また、本実施の形態のような管理データ格納部109及びデータ格納部110を利用すれば、実際に検索対象となるデータをリアルタイムで更新できるようになり、また、更新処理を原因とする処理遅延が生じない。
次に、図9乃至図11を用いて、情報処理装置1が検索要求を受信した場合に実行する処理について説明する。
まず、情報処理装置1の第2受付部105は、ユーザ端末3から検索要求を受信し(図9:ステップS21)、受信した検索要求を解析部106に出力する。そして、解析部106は、第2受付部105から受け取った検索要求に含まれる検索式を解析し(ステップS23)、検索式から検索条件および論理演算子等を取得する。解析部106は、取得した検索条件および論理演算子等をアセット検索部107に出力する。
図10に、検索要求の一例を示す。図10(a)に示された検索要求は、勤務地が神戸であるレコードのレコードID及び出張先が新横浜であるレコードのレコードIDに関連付けられたノードを検索し、該当するノードのノードセット(キー情報および各レコード)を返信するための検索要求である。図10(b)に示された検索要求は、勤務地が神戸であるレコードのレコードID及び出張先が新横浜であるレコードのレコードIDに関連付けられたノードを検索し、該当するノードの「/基本データ/所属」に相当するレコード及びそのレコードIDを返信するための検索要求である。
なお、図10(c)は、本実施の形態の方法を使用しない場合における一般的な検索要求の一例を示す図であり、この検索要求によりレコード単位で検索が行われ、該当するレコードのレコードIDが返信される。すなわち、本実施の形態のようにノード単位で検索が行われるわけではない。
アセット検索部107は、管理データ格納部109において登録されているノードのうち未処理のノードを1つ特定する(ステップS25)。
アセット検索部107は、管理データ格納部109から、ステップS25において特定したノードの従業員コードに関連付けられたレコードIDのうち未処理のレコードIDを1つ特定する(ステップS27)。
アセット検索部107は、ステップS27において特定したレコードIDに関連付けられたレコードをデータ格納部110から特定し、特定したレコードが各検索条件を満たすか判定する(ステップS29)。例えば、特定したレコードが図6に示したレコードID「r0004」のレコードであり、且つ、検索式に含まれる検索条件が「/基本データ/勤務地=”神戸”」及び「/旅費データ/出張先=”新横浜”」である場合、検索条件「/旅費データ/出張先=”新横浜”」が満たされると判定される。判定結果は、メモリに格納された、図11に示すようなデータによって管理される。図11において、満たされると判定された検索条件については「T」が格納される。満たされないと判定された検索条件については何も格納されない。本データは1つのノードについての処理が開始した時点で生成され、そのノードについての処理が終了した時点で削除される。
アセット検索部107は、ステップS25において特定したノードの従業員コードに関連付けられたレコードIDのうち未処理のレコードIDが有るか判定する(ステップS31)。未処理のレコードIDが有る場合(ステップS31:Yesルート)、ステップS27の処理に戻る。
一方、未処理のレコードIDが無い場合(ステップS31:Noルート)、アセット検索部107は、各検索条件の判定結果に基づき、検索式の論理演算の評価を実行する(ステップS33)。例えば、或るノードについて図11に示した判定結果が得られ、且つ、検索式が図10(a)に示した検索式(/基本データ/勤務地=”神戸” and /旅費データ/出張先=”新横浜”)である場合、2つ目の検索条件は満たされるが1つ目の検索条件が満たされないので、論理演算の評価は「偽」である。
アセット検索部107は、ステップS33の評価が「真」であるか判定する(ステップS35)。ステップS33の評価が「真」ではない場合(ステップS35:Noルート)、ステップS39の処理に移行する。
一方、ステップS33の評価が「真」である場合(ステップS35:Yesルート)、アセット検索部107は、ステップS25において特定されたノードのレコードセット(すなわち、このノードについての全レコードおよび従業員コード)を第2応答部108に出力する。そして、第2応答部108は、アセット検索部107から受け取ったレコードセットを、要求元の端末であるユーザ端末3に送信する(ステップS37)。なお、ステップS37においてはレコードセットを送信しているが、検索式の内容によっては、レコードセットの一部だけ送信する場合もある。
アセット検索部107は、未処理のノードが有るか判定する(ステップS39)。未処理のノードが有る場合(ステップS39:Yesルート)、ステップS25の処理に戻る。一方、未処理のノードが無い場合(ステップS39:Noルート)、処理は終了する。
以下では、本実施の形態の検索方法と他の検索方法とを具体例を用いて比較する。
図12及び図13を用いて、検索の際に結合演算を実行する方法について説明する。図12においては、従業員と勤務地との関係は1対1であるが、従業員と出張先との関係は1対k(kは自然数)である。基本データのテーブルからは「基本データ.勤務地 = ”沼津”」を満たすレコード及び「基本データ.勤務地 = ”神戸”」を満たすレコードが抽出される。一方、旅費データのテーブルからは「旅費データ.出張先 = ”蒲田”」を満たすレコード及び「旅費データ.出張先 = ”新横浜”」を満たすレコードが抽出される。ここでは、例えば図13に示すようなSQL(Structured Query Language)に従って各テーブルから検索条件を満たすレコードが抽出される。そして、レコード間の関係演算(ここでは、結合演算)を実行することで結果が導出される。ここでは、従業員「Z」が最終的な結果である。
検索の際に結合演算を実行する方法においては、各テーブルから抽出される中間結果のレコード数が膨大になることがあり、それが原因となり関係演算の対象となるレコードの数が膨大になることがある。また、演算時の実行計画が予め作成されていなければならない。
一方、本実施の形態においては、図14に示すように、ノード毎に判定が行われる。図14においては、まず従業員「X」のノードについて判定が行われ、次に従業員「Y」のノードについて判定が行われ、最後に従業員「Z」のノードについて判定が行われる。そして、最終的な結果は従業員「Z」である。
このように、本実施の形態においては、結合演算を実行する際に生じるような膨大な量の中間結果を生じさせることがなく、異種のレコードに対して仮想的に結合演算を行い、1つのデータであるとみなして判定することができる。これにより、高速な検索を実行することが可能である。
図15乃至図17を用いて、マテリアライズドビューを利用して検索を実行する方法について説明する。例えば図15に示すような、企業で働く従業員の情報が蓄積された複数のテーブルがあるとする。図15(a)には従業員コードに関連付けて名前が格納される従業員マスタが示されており、図15(b)には従業員コードに関連付けて勤務地と期間とが格納される基本データテーブルが示されており、図15(c)には従業員コードに関連付けて英語のスコアが格納される教育データテーブルが示されている。
ここで、Pは従業員数を表し、mは1名あたりの基本データの属性値数の平均を表し、nは1名あたりの教育データの属性の属性値数の平均を表す。
図15に示した3つのテーブルを、例えば図16(a)に示すようなコードによって処理すれば、マテリアライズドビューを生成することができる。図17に、生成されるマテリアライズドビューの一例を示す。図17の例においては、名前と、勤務地と、英語スコアとがマテリアライズドビューに含まれる。例えば図16(b)に示すようなコードによって、マテリアライズドビューに対する問い合わせが行われる。図16(b)のコードによれば、ドイツでの勤務経験を有し且つ英語スコアが900以上である従業員が探索される。
このとき、マテリアライズドビューのレコード数はP*m*nで表される。そして、名前のデータサイズがSαであるとし、勤務地のデータサイズがSβであるとし、英語スコアのデータサイズがSγであるとすると、マテリアライズドビューのデータサイズは(P*m*n)*(Sα+Sβ+Sγ)で表される。
一方、図15に示した3つのテーブルに対して本実施の形態の方法を適用する場合、従業員コードをキー情報とすると、図18に示すようなツリー構造が生成される。すなわち、3つのテーブルの間の結合関係はノードによって表され、属性が異なる複数の属性値が同じノードにて管理される。
このとき、ノードの数はPで表され、各ノードの配下にある属性値の数は(1+m+n)で表される。そして、各ノードの従業員コードのデータサイズがSδであるとし、ノードの配下にある属性値のデータサイズがSεであるとすると、本実施の形態において検索の対象となるデータのサイズはP*Sδ+P*(m+n)*Sεで表される。
図19は、マテリアライズドビューを利用して検索を実行する方法と、本実施の形態の方法との比較するための図である。例えば従業員数が20000であり、m=10且つn=50である場合、マテリアライズドビューを利用するとP*m*n=20000*10*50=10000000のレコードが検索の対象になる。一方、本実施の形態の方法であれば、P*(1+m+n)=20000*(1+10+50)=1220000であるので、マテリアライズドビューを利用する場合と比較すると約1/8である。このように、マテリアライズドビューを利用する場合、レコード数およびデータサイズが幾何級数的に増加する。従って、従業員の数が多くなると現実的にはマテリアライズドビューを生成することができない。また、たとえマテリアライズドビューを生成することができたとしても実時間で処理を行うことはできない。一方、本実施の形態の方法であれば、マテリアライズドビューを利用する場合と比較すると、レコード及びデータサイズが算術級数的に増加するので、管理される属性の数及び属性値の数が増加してもデータサイズが爆発的に増加することがない。
また、マテリアライズドビューを利用して検索を実行する場合、元のテーブルの更新とマテリアライズドビューの再生成との両方を行うことによって処理遅延が生じることがあるが、本実施の形態の方法であればそのような問題は生じない。本実施の形態の方法であれば、全体を再生成せずに部分的に更新すればよいので、リアルタイムにデータを更新することができるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、従業員コードのような情報以外の情報をキー情報として利用してもよい。例えば、或る病院の医療コンテンツが診察データテーブル、薬剤データテーブルおよび会計データテーブルで管理されている場合、診察データテーブルの患者IDおよび会計データテーブルの顧客IDがこれらのテーブルを結び付ける結合キーであるので、その値を利用してもよい。
また、例えば、サーバルームに設置された数百台のサーバから送られてくるセンサデータのファイル名は「サーバ名+日時」で表されていることがある。そこで、センサデータを検索対象とする場合には、センタデータのファイル名からサーバ名を取得し、キー情報として利用してもよい。
また、例えば、買い物かごに装着されたセンサタグによって、客が買い物かごを手に取ってから買い物を完了するまでの行動のデータが取得されることがある。この場合には、買い物という行為をトランザクションとみなし、買い物かごではなく買い物という行為自体にキー情報を割り振ってもよい。
なお、上で述べた情報処理装置1は、コンピュータ装置であって、図20に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
なお、管理データ格納部109はメモリ2501上に設けられ、データ格納部110はHDD2505上に設けられてもよい。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る検索処理方法は、(A)検索条件を受け付け、(B)第1属性の一意な属性値と、第1属性以外の1または複数の属性の属性値を含む属性値群とを関連付ける第1情報に基づき、第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた属性値群が検索条件を満たすかを判定し、(C)少なくとも、検索条件を満たすと判定された属性値群に関連付けられた第1属性の一意な属性値を出力する処理を含む。
これにより、結合演算をすることがなく、また、マテリアライズドビューのようなデータを使用することもないので、検索の高速化と検索に使用するデータの少量化とを両立できるようになる。
また、上で述べた第1情報は、第1属性の一意な属性値と、第1属性以外の1または複数の属性の属性値の識別子とを関連付ける第2情報と、第1属性以外の1または複数の属性の属性値の識別子と当該属性値とを関連付ける第3情報とを含んでもよい。そして、属性値群が検索条件を満たすかを判定する処理において、(b1)第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた第1属性以外の1または複数の属性の属性値の識別子を第2情報に基づき特定し、特定された識別子に関連付けられた属性値を第3情報に基づき特定し、特定された当該属性値が検索条件を満たすかを判定してもよい。このような第2情報および第3情報であれば、マテリアライズドビューにおいて使用されるデータよりもサイズは小さくなる。
また、本検索処理方法は、(D)第1属性の第1属性値と第1属性以外の属性の第2属性値とを受信し、(E)受信した第1属性値が第2情報に含まれるかを判定し、(F)第1属性値が第2情報に含まれる場合、第2情報に含まれる第1属性値に、第2属性値の識別子を関連付け、(G)第3情報に、第2属性値の識別子と第2属性値との関連付けを追加する処理をさらに含んでもよい。これにより、実際に検索対象となる情報をリアルタイムで更新できるようになる。
また、本検索処理方法は、(H)第1属性値が第2情報に含まれない場合、第2情報に、第1属性値と第2属性値の識別子との関連付けを追加し、(I)第3情報に、第2属性値の識別子と第2属性値との関連付けを追加する処理をさらに含んでもよい。これにより、実際に検索対象となる情報をリアルタイムで更新できるようになる。
また、上で述べた検索条件は、属性と当該属性の属性値との組み合わせを1または複数含んでもよい。
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
検索条件を受け付け、
第1属性の一意な属性値と、前記第1属性以外の1または複数の属性の属性値を含む属性値群とを関連付ける第1情報に基づき、前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた属性値群が前記検索条件を満たすかを判定し、
少なくとも、前記検索条件を満たすと判定された属性値群に関連付けられた第1属性の一意な属性値を出力する、
処理を実行させる検索処理プログラム。
(付記2)
前記第1情報は、前記第1属性の一意な属性値と、前記第1属性以外の1または複数の属性の属性値の識別子とを関連付ける第2情報と、前記第1属性以外の1または複数の属性の属性値の識別子と当該属性値とを関連付ける第3情報とを含み、
前記属性値群が前記検索条件を満たすかを判定する処理において、
前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた前記第1属性以外の1または複数の属性の属性値の識別子を前記第2情報に基づき特定し、特定された前記識別子に関連付けられた属性値を前記第3情報に基づき特定し、特定された当該属性値が前記検索条件を満たすかを判定する、
付記1記載の検索処理プログラム。
(付記3)
前記コンピュータに、
前記第1属性の第1属性値と前記第1属性以外の属性の第2属性値とを受信し、
受信した前記第1属性値が前記第2情報に含まれるかを判定し、
前記第1属性値が前記第2情報に含まれる場合、前記第2情報に含まれる前記第1属性値に、前記第2属性値の識別子を関連付け、
前記第3情報に、前記第2属性値の識別子と前記第2属性値との関連付けを追加する、
処理をさらに実行させる付記2記載の検索処理プログラム。
(付記4)
前記コンピュータに、
前記第1属性値が前記第2情報に含まれない場合、前記第2情報に、前記第1属性値と前記第2属性値の識別子との関連付けを追加し、
前記第3情報に、前記第2属性値の識別子と前記第2属性値との関連付けを追加する、
処理をさらに実行させる付記3記載の検索処理プログラム。
(付記5)
前記検索条件は、属性と当該属性の属性値との組み合わせを1または複数含む、
付記1乃至4のいずれか1つ記載の検索処理プログラム。
(付記6)
コンピュータが、
検索条件を受け付け、
第1属性の一意な属性値と、前記第1属性以外の1または複数の属性の属性値を含む属性値群とを関連付ける第1情報に基づき、前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた属性値群が前記検索条件を満たすかを判定し、
少なくとも、前記検索条件を満たすと判定された属性値群に関連付けられた第1属性の一意な属性値を出力する、
処理を実行する検索処理方法。
(付記7)
検索条件を受け付ける受付部と、
第1属性の一意な属性値と、前記第1属性以外の1または複数の属性の属性値を含む属性値群とを関連付ける第1情報に基づき、前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた属性値群が前記検索条件を満たすかを判定する判定部と、
少なくとも、前記検索条件を満たすと前記判定部により判定された属性値群に関連付けられた第1属性の一意な属性値を出力する出力部と、
を有する検索処理装置。
1 情報処理装置 101 第1受付部
102 取得部 103 アセット更新部
104 第1応答部 105 第2受付部
106 解析部 107 アセット検索部
108 第2応答部 109 管理データ格納部
110 データ格納部 3 ユーザ端末
5 ネットワーク

Claims (6)

  1. コンピュータに、
    検索条件を受け付け、
    第1属性の一意な属性値から、前記第1属性以外の1または複数の属性の属性値を含む属性値群を関連付ける第1情報に基づき、前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた属性値群が前記検索条件を満たすかを判定し、
    少なくとも、前記検索条件を満たすと判定された属性値群に対する第1属性の一意な属性値を出力する、
    処理を実行させ
    前記第1情報は、前記第1属性の一意な属性値から、前記第1属性以外の1または複数の属性の属性値の識別子を関連付ける第2情報と、前記第1属性以外の1または複数の属性の属性値の識別子と当該属性値とを関連付ける第3情報とを含み、
    前記属性値群が前記検索条件を満たすかを判定する処理において、
    前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた前記第1属性以外の1または複数の属性の属性値の識別子を前記第2情報に基づき特定し、特定された前記識別子に関連付けられた属性値を前記第3情報に基づき特定し、特定された当該属性値が前記検索条件を満たすかを判定する
    検索処理プログラム。
  2. 前記コンピュータに、
    前記第1属性の第1属性値と前記第1属性以外の属性の第2属性値とを受信し、
    受信した前記第1属性値が前記第2情報に含まれるかを判定し、
    前記第1属性値が前記第2情報に含まれる場合、前記第2情報に含まれる前記第1属性値に、前記第2属性値の識別子を関連付け、
    前記第3情報に、前記第2属性値の識別子と前記第2属性値との関連付けを追加する、
    処理をさらに実行させる請求項記載の検索処理プログラム。
  3. 前記コンピュータに、
    前記第1属性値が前記第2情報に含まれない場合、前記第2情報に、前記第1属性値と前記第2属性値の識別子との関連付けを追加し、
    前記第3情報に、前記第2属性値の識別子と前記第2属性値との関連付けを追加する、
    処理をさらに実行させる請求項記載の検索処理プログラム。
  4. 前記検索条件は、属性と当該属性の属性値との組み合わせを1または複数含む、
    請求項1乃至のいずれか1つ記載の検索処理プログラム。
  5. コンピュータが、
    検索条件を受け付け、
    第1属性の一意な属性値から、前記第1属性以外の1または複数の属性の属性値を含む属性値群を関連付ける第1情報に基づき、前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた属性値群が前記検索条件を満たすかを判定し、
    少なくとも、前記検索条件を満たすと判定された属性値群に対する第1属性の一意な属性値を出力する
    処理を実行し、
    前記第1情報は、前記第1属性の一意な属性値から、前記第1属性以外の1または複数の属性の属性値の識別子を関連付ける第2情報と、前記第1属性以外の1または複数の属性の属性値の識別子と当該属性値とを関連付ける第3情報とを含み、
    前記属性値群が前記検索条件を満たすかを判定する処理において、
    前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた前記第1属性以外の1または複数の属性の属性値の識別子を前記第2情報に基づき特定し、特定された前記識別子に関連付けられた属性値を前記第3情報に基づき特定し、特定された当該属性値が前記検索条件を満たすかを判定する
    検索処理方法。
  6. 検索条件を受け付ける受付部と、
    第1属性の一意な属性値から、前記第1属性以外の1または複数の属性の属性値を含む属性値群を関連付ける第1情報に基づき、前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた属性値群が前記検索条件を満たすかを判定する判定部と、
    少なくとも、前記検索条件を満たすと前記判定部により判定された属性値群に対する第1属性の一意な属性値を出力する出力部と、
    を有し、
    前記第1情報は、前記第1属性の一意な属性値から、前記第1属性以外の1または複数の属性の属性値の識別子を関連付ける第2情報と、前記第1属性以外の1または複数の属性の属性値の識別子と当該属性値とを関連付ける第3情報とを含み、
    前記判定部が、
    前記第1属性の属性値ごとに、当該第1属性の属性値に関連付けられた前記第1属性以外の1または複数の属性の属性値の識別子を前記第2情報に基づき特定し、特定された前記識別子に関連付けられた属性値を前記第3情報に基づき特定し、特定された当該属性値が前記検索条件を満たすかを判定する
    検索処理装置。
JP2016044186A 2016-03-08 2016-03-08 検索処理方法、検索処理装置及び検索処理プログラム Active JP6801195B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016044186A JP6801195B2 (ja) 2016-03-08 2016-03-08 検索処理方法、検索処理装置及び検索処理プログラム
US15/381,949 US20170262512A1 (en) 2016-03-08 2016-12-16 Search processing method, search processing apparatus, and non-transitory computer-readable recording medium storing search processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016044186A JP6801195B2 (ja) 2016-03-08 2016-03-08 検索処理方法、検索処理装置及び検索処理プログラム

Publications (2)

Publication Number Publication Date
JP2017162061A JP2017162061A (ja) 2017-09-14
JP6801195B2 true JP6801195B2 (ja) 2020-12-16

Family

ID=59786816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016044186A Active JP6801195B2 (ja) 2016-03-08 2016-03-08 検索処理方法、検索処理装置及び検索処理プログラム

Country Status (2)

Country Link
US (1) US20170262512A1 (ja)
JP (1) JP6801195B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095553B2 (en) * 2005-03-17 2012-01-10 International Business Machines Corporation Sequence support operators for an abstract database
US20140058801A1 (en) * 2010-06-04 2014-02-27 Sapience Analytics Private Limited System And Method To Measure, Aggregate And Analyze Exact Effort And Time Productivity
US20150278369A1 (en) * 2014-03-28 2015-10-01 Mckesson Financial Holdings Method And Apparatus For Aggregating Healthcare Information
US9898579B2 (en) * 2015-06-16 2018-02-20 Microsoft Technology Licensing, Llc Relational DNA operations
US10963440B2 (en) * 2015-08-10 2021-03-30 Singlestore, Inc. Fast incremental column store data loading

Also Published As

Publication number Publication date
JP2017162061A (ja) 2017-09-14
US20170262512A1 (en) 2017-09-14

Similar Documents

Publication Publication Date Title
JP6634527B2 (ja) ユーザ権限データ検索方法および電子機器
US7822710B1 (en) System and method for data collection
US10671671B2 (en) Supporting tuples in log-based representations of graph databases
US10628492B2 (en) Distributed graph database writes
US8527556B2 (en) Systems and methods to update a content store associated with a search index
US20050154745A1 (en) Method and system for supporting multivalue attributes in a database system
JP2001357062A (ja) データベース検索方法及びデータベース検索システム並びにデータベース検索プログラムを記録した記録媒体
CN109313640A (zh) 用于数据库优化的方法和系统
JP2001076005A (ja) データベースシステム
JP2001014329A (ja) データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体
JP2011257812A (ja) スキーマ定義生成装置、スキーマ定義生成方法およびスキーマ定義生成プログラム
US10445370B2 (en) Compound indexes for graph databases
JP5033322B2 (ja) 連結関係情報を用いた情報管理方法及び装置
US7596584B2 (en) Predicate based group management
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
US20180357328A1 (en) Functional equivalence of tuples and edges in graph databases
US9965535B2 (en) Client-side handling of transient duplicates for row-level replication
JP6084700B2 (ja) 検索システム及び検索方法
CN110263060B (zh) 一种erp电子附件管理方法及计算机设备
CN111666302A (zh) 用户排名的查询方法、装置、设备及存储介质
JP6801195B2 (ja) 検索処理方法、検索処理装置及び検索処理プログラム
CN112889039A (zh) 用于克隆后租户标识符转换的记录的标识
US20110107335A1 (en) Method and apparatus for estimating a task process structure
JP3630830B2 (ja) セミカスタム・データベースシステム
JPH0736756A (ja) オブジェクト管理方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200619

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201109

R150 Certificate of patent or registration of utility model

Ref document number: 6801195

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150