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

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

Info

Publication number
JP5257172B2
JP5257172B2 JP2009063104A JP2009063104A JP5257172B2 JP 5257172 B2 JP5257172 B2 JP 5257172B2 JP 2009063104 A JP2009063104 A JP 2009063104A JP 2009063104 A JP2009063104 A JP 2009063104A JP 5257172 B2 JP5257172 B2 JP 5257172B2
Authority
JP
Japan
Prior art keywords
search
database
subsequent
stored
conditions
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.)
Expired - Fee Related
Application number
JP2009063104A
Other languages
English (en)
Other versions
JP2010218131A (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 JP2009063104A priority Critical patent/JP5257172B2/ja
Priority to EP10154565A priority patent/EP2230611A3/en
Priority to US12/723,232 priority patent/US8402052B2/en
Publication of JP2010218131A publication Critical patent/JP2010218131A/ja
Application granted granted Critical
Publication of JP5257172B2 publication Critical patent/JP5257172B2/ja
Expired - Fee Related 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2423Interactive query statement specification based on a database schema
    • 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
    • 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/24532Query optimisation of parallel queries
    • 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/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • 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/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers

Landscapes

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

Description

本技術は、データを分担して管理している複数のデータベースに対する横断的な検索を効率的に行うための技術に関する。
例えばIDに関連付けられている人や物などの複数の属性が複数のデータベースで分担して管理されている場合、各データベースで管理されている属性の属性値を統合した形でクライアントに提供する統合ID管理技術が存在する。図1に統合ID管理システムの一例を示す。図1の例では、属性A及び属性BがデータベースAにて管理され、属性CがデータベースBにて管理され、属性DがデータベースCにて管理されるようになっている。そして、統合ID管理システムにおける統合ID管理装置では、どの属性がどのデータベースで管理されているかの情報を保持しておき、各データベースで管理されている属性A乃至属性Dの属性値を統合し、例えば図2に示すような統合IDデータとしてクライアントに提供する。
このような統合ID管理システムにおいて、統合ID管理装置が、属性名と属性値との組み合わせである検索条件を複数含むAND検索要求を受け付けた場合、全ての検索条件を満たすデータを抽出するために、統合ID管理装置は、複数のデータベースを横断的に検索することとなる。なお、横断検索方法としては、例えば特開2008−217600号公報記載のような方法がある。例えば、複数のデータベースを並列に検索する方法や、1つずつ順番に検索する方法などである。
特開2008−217600号公報 特開平9−34759号公報 特開2004−280528号公報 特開2007−213601号公報
しかしながら、従来の横断検索方法では、以下のような問題がある。例えば、複数のデータベースを並列に検索する方法では、各検索結果のヒット件数が多い場合には、各検索結果をマージするのに時間がかかったり、最終的に検索結果として提供されない無駄なデータを各データベースから抽出するのでネットワーク負荷や処理時間が大きくなってしまう。また、例えば、複数のデータベースを1つずつ順番に検索する方法では、データベースの数が多くなると、並列に検索する場合よりも時間がかかってしまう。
従って、本技術の目的は、複数のデータベースに対する横断的な検索を効率的に行うことができるようにするための技術を提供することである。
本検索方法は、特定の識別子に関連付けられているデータに係る複数の属性を複数のデータベースで分担して管理する場合における検索方法であって、属性に関する検索条件を複数含むAND検索要求を受け付けた場合、データベース毎に当該データベースで管理されている属性を表す情報を格納する属性管理テーブルに基づき、AND検索要求に含まれる複数の検索条件を、データベース別の検索条件に分類し、データベースの識別情報に対応付けて記憶装置に格納するステップと、記憶装置に格納されている、データベースの識別情報と当該データベースに対応する検索条件とを基に、データベースの識別情報と検索条件と当該データベースに対する過去の検索において当該検索条件にヒットしたヒット件数とを含むレコードを格納する検索結果管理テーブルを検索し、ヒット件数が所定数以下となるデータベース、又は、ヒット件数によって記憶装置に格納されているデータベースを順位付けした場合の下位所定順位内にあるデータベースを先行検索データベースとして特定する先行検索データベース特定ステップと、先行検索データベース毎に、記憶装置に格納され且つ当該先行検索データベースに対応する検索条件を用いて当該先行検索データベースの検索を行う先行検索ステップと、先行検索データベースの各検索結果に共通して含まれる識別子を特定する先行検索結果マージステップと、記憶装置に格納されている、先行検索データベース以外のデータベースである後続検索データベース毎に、記憶装置に格納され且つ当該後続検索データベースに対応する検索条件と先行検索結果マージステップにおいて特定された識別子とを用いて当該後続検索データベースの検索を行う後続検索ステップとを含む。
複数のデータベースに対する横断的な検索を効率的に行うことができるようになる。
統合ID管理システムの一例を示す図である。 統合IDデータの一例を示す図である。 第1の実施の形態に係るシステム構成図である。 第1の実施の形態における統合ID管理装置の機能ブロック図である。 属性管理テーブルのテーブル例を示す図である。 第1の実施の形態における検索結果管理テーブルのテーブル例を示す図である。 (a)及び(b)は、配列データ格納部に格納されるデータの一例を示す図である。 第1の実施の形態における統合ID管理装置の処理フロー(第1の部分)を示す図である。 検索条件をデータベース毎に分割する処理を説明するための図である。 第1の実施の形態における統合ID管理装置の処理フロー(第2の部分)を示す図である。 第1の実施の形態における統合ID管理装置の処理フロー(第3の部分)を示す図である。 第1の実施の形態における統合ID管理装置の処理フロー(第4の部分)を示す図である。 統合ID管理装置のキャッシュコントローラの処理フローを示す図である。 第1の実施の形態におけるシーケンスの第1の例(前半)を示す図である。 第1の実施の形態におけるシーケンスの第1の例(後半)を示す図である。 第1の実施の形態におけるシーケンスの第2の例(前半)を示す図である。 第1の実施の形態におけるシーケンスの第2の例(後半)を示す図である。 第2の実施の形態に係るシステム構成図である。 第2の実施の形態における統合ID管理装置の機能ブロック図である。 第2の実施の形態における検索結果管理テーブルのテーブル例を示す図である。 第2の実施の形態における検索結果管理テーブルの更新処理の処理フロー(第1の部分)を示す図である。 第2の実施の形態における検索結果管理テーブルの更新処理の処理フロー(第2の部分)を示す図である。 第2の実施の形態における統合ID管理装置の処理フロー(第1の部分)を示す図である。 第2の実施の形態における統合ID管理装置の処理フロー(第2の部分)を示す図である。 第2の実施の形態における統合ID管理装置の処理フロー(第3の部分)を示す図である。 第2の実施の形態における統合ID管理装置の処理フロー(第4の部分)を示す図である。 第2の実施の形態における統合ID管理装置の処理フロー(第5の部分)を示す図である。 第2の実施の形態における統合ID管理装置の処理フロー(第6の部分)を示す図である。 第3の実施の形態における統合ID管理装置の処理フロー(第1の部分)を示す図である。 第3の実施の形態における統合ID管理装置の処理フロー(第2の部分)を示す図である。 第3の実施の形態における統合ID管理装置の処理フロー(第3の部分)を示す図である。 コンピュータの機能ブロック図である。
[実施の形態1]
図3乃至図17を用いて本技術の第1の実施の形態を説明する。まず、図3に第1の実施の形態に係るシステム構成図を示す。図3において、本実施の形態における主要な処理を実施する統合ID管理装置1は、統合IDデータ(図2)を利用する複数のクライアント(図3では、クライアントA乃至C)と、複数のデータベース(図3では、データベースA乃至C)とに接続されている。
図4に統合ID管理装置1の機能ブロック図を示す。統合ID管理装置1は、入力部11と、属性管理テーブル格納部12と、分割処理部13と、キャッシュ14と、検索結果管理テーブル格納部15と、先行検索DB決定部16と、配列データ格納部17と、検索部18と、キャッシュコントローラ19と、検索結果格納部20と、出力部21とを有する。入力部11は、クライアントから検索要求を受信し、分割処理部13に出力する。分割処理部13は、入力部11から受信した検索要求に係る検索条件を、属性管理テーブル格納部12に格納されている属性管理テーブル(詳細は後述)と検索結果管理テーブル格納部15に格納されている検索結果管理テーブル(詳細は後述)又はキャッシュ14とに基づき、データベース別の検索条件に分割する。なお、詳細は後で説明するが、属性管理テーブルには、どの属性がどのデータベースで管理されているかの情報が格納される。また、検索結果管理テーブルには、データベース別の検索条件の各々について、過去の検索において当該検索条件にヒットしたヒット件数と検索回数とが格納される。なお、検索結果管理テーブルにおける一部のレコードがキャッシュ14に格納される。また。分割処理部13は、分割した検索条件をデータベースの識別情報に対応付けて、配列データ格納部17における先行検索候補配列又は後続検索DB配列(詳細は後述)に格納する。先行検索DB決定部16は、分割処理部13が検索条件を分割した後、キャッシュ14又は検索結果管理テーブル格納部15と配列データ格納部17に格納されているデータに基づき、先行検索の対象となる先行検索データベースを決定し、配列データ格納部17における先行検索DB配列(詳細は後述)に格納する。検索部18は、先行検索DB決定部16が先行検索データベースを決定した後、配列データ格納部17に格納されているデータに基づき、先行検索データベース、後続検索データベースの順で各データベースの検索を行い、検索結果を検索結果格納部20に格納する。また、検索部18は、検索条件又は検索結果におけるヒット件数をキャッシュコントローラ19に出力する。キャッシュコントローラ19は、検索部18から検索条件又はヒット件数を受信すると、キャッシュ14及び検索結果管理テーブルにおける検索回数を1インクリメントしたり、受信したヒット件数をキャッシュ14及び検索結果管理テーブルに上書き登録したりする。出力部21は、検索部18による検索が完了すると、検索結果格納部20に格納されているデータを検索要求元のクライアントに出力する。
図5に、属性管理テーブル格納部12に格納される属性管理テーブルの一例を示す。図5の例では、属性管理テーブルには、データベースの列と、属性の列とが含まれる。属性の列には、そのデータベースで管理される属性の属性名が予め設定される。
図6に、検索結果管理テーブル格納部15に格納される検索結果管理テーブルの一例を示す。図6の例では、検索結果管理テーブルには、検索対象データベース(DB)の列と、検索条件の列と、ヒット件数の列と、検索回数の列とが含まれる。なお、詳細は後で説明するが、検索結果管理テーブルにおけるレコードのうち検索回数の多いレコードが優先的にキャッシュ14に格納される。
図7(a)及び(b)に、配列データ格納部17に格納されるデータの一例を示す。図7(a)は、配列データ格納部17における先行検索候補配列のデータ構造を示す。図7(a)の例では、先行検索候補配列には、検索条件と検索対象DBとヒット件数との組み合わせが格納されるようになっている。また、図7(b)は、配列データ格納部17における先行検索DB配列のデータ構造を示す。図7(b)の例では、先行検索DB配列には、検索条件と検索対象DBとの組み合わせが格納されるようになっている。なお、配列データ格納部17における後続検索DB配列も、図7(b)に示すようなデータ構造を有する。
次に、図8乃至図13を用いて、本実施の形態における統合ID管理装置1の処理を説明する。まず、統合ID管理装置1の入力部11が、クライアントから、属性名と属性値との組み合わせである検索条件を複数含むAND検索要求を受け付ける(図8:ステップS1)。そして、入力部11は、AND検索要求を分割処理部13に出力する。
そして、分割処理部13は、入力部11からAND検索要求を受信し、AND検索要求に係る検索条件を、属性管理テーブルに基づきデータベース毎の検索条件に分割する(ステップS3)。例えば、図5に示したようなデータが属性管理テーブルに格納されている場合に、図9に示すような検索条件を含むAND検索要求を受信すると、データベースAに対する検索条件a(すなわち、(属性A=xxx)AND(属性B=yyy))と、データベースBに対する検索条件b(すなわち、属性C=zzz)とに分割される。なお、分割した検索条件は、検索対象データベースの識別情報に対応付けて一旦記憶装置に格納される。
そして、分割処理部13は、分割した検索条件のうち未処理の検索条件を特定する(ステップS5)。そして、分割処理部13は、特定された検索条件に対応するヒット件数がキャッシュ14又は検索結果管理テーブルに登録されているか判断する(ステップS7)。特定された検索条件に対応するヒット件数がキャッシュ14又は検索結果管理テーブルに登録されている場合(ステップS7:Yesルート)、分割処理部13は、特定された検索条件と検索対象データベースの識別情報とヒット件数とを配列データ格納部17における先行検索候補配列に格納する(ステップS9)。その後、ステップS13の処理に移行する。
一方、特定された検索条件に対応するヒット件数がキャッシュ14及び検索結果管理テーブルに未登録の場合(ステップS7:Noルート)、分割処理部13は、特定された検索条件と検索対象データベースの識別情報とを配列データ格納部17における後続検索DB配列に格納する(ステップS11)。なお、特定された検索条件を含むレコードが検索結果管理テーブルに存在しない場合には、分割処理部13は、特定された検索条件と検索対象データベースの識別情報とを含むレコードを検索結果管理テーブルに追加し、検索回数を0に設定する。その後、ステップS13の処理に移行する。
そして、分割処理部13は、分割した全ての検索条件について処理が完了したか判断する(ステップS13)。分割した全ての検索条件について処理が完了していなければ(ステップS13:Noルート)、ステップS5に戻り、上で述べた処理を繰り返す。一方、分割した全ての検索条件について処理が完了した場合(ステップS13:Yesルート)、分割処理部13は、検索条件の分割が完了した旨を先行検索DB決定部16に通知する。
そして、先行検索DB決定部16は、分割処理部13から検索条件の分割が完了した旨の通知を受信すると、先行検索候補配列においてヒット件数の最大値を特定し、当該最大値から先行検索DB判断閾値を決定する(ステップS15)。例えば、最大値に所定の率(例えば1%)を乗じた値を先行検索DB判断閾値として決定する。なお、先行検索DB判断閾値の決定方法は、これに限定されず、他の方法(例えば、最大値から所定数を減じた値を閾値とするなど)を採用することも可能である。そして、処理は端子Aを介して、ステップS17(図10)の処理に移行する。
図10の説明に移行して、端子Aの後、先行検索DB決定部16は、先行検索候補配列から未処理の検索条件を特定する(図10:ステップS17)。そして、先行検索DB決定部16は、特定された検索条件に対応するヒット件数が先行検索DB判断閾値以下であるか判断する(ステップS19)。特定された検索条件に対応するヒット件数が先行検索DB判断閾値以下の場合(ステップS19:Yesルート)、先行検索DB決定部16は、特定された検索条件と検索対象データベースの識別情報とを配列データ格納部17における先行検索DB配列に格納する(ステップS21)。その後、ステップS25の処理に移行する。
一方、特定された検索条件に対応するヒット件数が先行検索DB判断閾値より大きい場合(ステップS19:Noルート)、先行検索DB決定部16は、特定された検索条件と検索対象データベースの識別情報とを配列データ格納部17における後続検索DB配列に格納する(ステップS23)。その後、ステップS25の処理に移行する。
そして、先行検索DB決定部16は、先行検索候補配列内の全ての検索条件について処理が完了したか判断する(ステップS25)。先行検索候補配列内の全ての検索条件について処理が完了していなければ(ステップS25:Noルート)、ステップS17に戻り、上で述べた処理を繰り返す。一方、先行検索候補配列内の全ての検索条件について処理が完了した場合(ステップS25:Yesルート)、先行検索DB決定部16は、先行検索DB決定完了通知を検索部18に出力する。
そして、検索部18は、先行検索DB決定部16から先行検索DB決定完了通知を受信すると、先行検索DB配列に検索条件が格納されているか判断する(ステップS27)。先行検索DB配列に検索条件が格納されていないと判断された場合(ステップS27:Noルート)、端子Cを介して、ステップS57(図12)の処理に移行する。
一方、先行検索DB配列に検索条件が格納されている場合(ステップS27:Yesルート)、検索部18は、先行検索DB配列から未処理の検索条件を特定する(ステップS29)。そして、検索部18は、特定された検索条件を用いて検索対象となる先行検索データベースの検索を実行する(ステップS31)。例えば、検索部18が、特定された検索条件を含む検索要求を先行検索データベースに出力する。そして、検索部18は、先行検索データベースからの検索結果を当該先行検索データベースの識別情報に対応付けて検索結果格納部20に格納する。
そして、検索部18は、特定された検索条件と検索結果におけるヒット件数とをキャッシュコントローラ19に出力する(ステップS33)。なお、詳細は後で説明するが、キャッシュコントローラ19は、検索条件とヒット件数とを受信すると、キャッシュ14及び検索結果管理テーブルを更新する。
そして、検索部18は、先行検索DB配列内の全ての検索条件について処理が完了したか判断する(ステップS35)。先行検索DB配列内の全ての検索条件について処理が完了していなければ(ステップS35:Noルート)、ステップS29に戻り、上で述べた処理を繰り返す。一方、先行検索DB配列内の全ての検索条件について処理が完了した場合(ステップS35:Yesルート)、端子Bを介して、ステップS37(図11)の処理に移行する。なお、先行検索データベースが複数存在する場合には、各先行検索データベースに対する検索要求を一斉に出力し、複数の先行検索データベースを並列に検索することも可能である。
図11の説明に移行して、端子Bの後、検索部18は、検索結果格納部20に格納されている、先行検索データベースの検索結果をマージする(図11:ステップS37)。そして、検索部18は、先行検索データベースの各検索結果に共通して含まれるIDが存在するか判断する(ステップS39)。先行検索データベースの各検索結果に共通して含まれるIDが存在すると判断された場合(ステップS39:Yesルート)、検索部18は、後続検索データベースの検索を開始する。
具体的には、まず、検索部18は、後続検索DB配列から未処理の検索条件を特定する(ステップS41)。そして、検索部18は、先行検索で得られたIDを特定された検索条件に追加して新たな検索条件を生成し(ステップS43)、生成した新たな検索条件を用いて検索対象となる後続検索データベースの検索を実行する(ステップS45)。例えば、検索部18が、特定された検索条件と先行検索で得られたIDとを含む検索要求を後続検索データベースに出力する。そして、検索部18は、後続検索データベースからの検索結果を当該後続検索データベースの識別情報に対応付けて検索結果格納部20に格納する。
そして、検索部18は、特定された検索条件をキャッシュコントローラ19に出力する(ステップS47)。なお、ステップS45では、先行検索で得られたIDで絞り込んだ形で後続検索データベースの検索を行っているため、ここでは、キャッシュ14及び検索結果管理テーブルにおける特定された検索条件のヒット件数を更新しないようにする。そのため、ステップS47では、検索部18は、検索結果におけるヒット件数をキャッシュコントローラ19に送信しない。
そして、検索部18は、後続検索DB配列内の全ての検索条件について処理が完了したか判断する(ステップS49)。後続検索DB配列内の全ての検索条件について処理が完了していなければ(ステップS49:Noルート)、ステップS41に戻り、上で述べた処理を繰り返す。一方、後続検索DB配列内の全ての検索条件について処理が完了した場合(ステップS49:Yesルート)、ステップS51の処理に移行する。なお、後続検索データベースが複数存在する場合には、各後続検索データベースに対する検索要求を一斉に出力し、複数の後続検索データベースを並列に検索することも可能である。
そして、検索部18は、検索結果格納部20に格納されている、後続検索データベースの検索結果をマージする(ステップS51)。なお、後続検索データベースの各検索結果をマージした結果が、最終的な検索結果として検索結果格納部20に格納される。そして、検索部18は、検索結果を出力するよう出力部21に要求する。なお、処理はステップS55に移行する。
一方、ステップS39において、先行検索データベースの各検索結果に共通して含まれるIDが存在しないと判断された場合(ステップS39:Noルート)、検索部18は、後続検索DB配列に格納されている検索条件をキャッシュコントローラ19に出力する(ステップS53)。なお、先行検索データベースの各検索結果に共通して含まれるIDが存在しない場合には後続検索データベースの検索を行うことなく、検索を終了することになるが、後続検索DB配列に格納されている各検索条件については、検索要求で指定されているので、キャッシュ14及び検索結果管理テーブルにおける検索回数を1インクリメントするようにする。そして、検索部18は、検索結果を出力するよう出力部21に要求する。
そして、出力部21は、検索部18からの要求に応じて、検索結果格納部20に格納されている検索結果を、AND検索要求の要求元のクライアントに出力する(ステップS55)。例えば、AND検索要求で指定された検索条件を満たすIDが存在する場合には、そのIDについての統合IDデータ(図2)が検索結果としてクライアントに出力される。また、AND検索要求で指定された検索条件を満たすIDが存在しなければ、その旨が検索結果として出力される。そして、本処理を終了する。
また、ステップS27(図10)において、先行検索DB配列に検索条件が格納されていないと判断され、端子Cを介して図12に移行してきた場合、検索部18は、後続検索DB配列から未処理の検索条件を特定する(図12:ステップS57)。そして、検索部18は、特定された検索条件を用いて検索対象となる後続検索データベースの検索を実行する(ステップS59)。例えば、検索部18が、特定された検索条件を含む検索要求を後続検索データベースに出力する。そして、検索部18は、後続検索データベースからの検索結果を当該後続検索データベースの識別情報に対応付けて検索結果格納部20に格納する。
そして、検索部18は、特定された検索条件と検索結果におけるヒット件数とをキャッシュコントローラ19に出力する(ステップS61)。すなわち、キャッシュコントローラ19にキャッシュ14及び検索結果管理テーブルを更新させる。
そして、検索部18は、後続検索DB配列内の全ての検索条件について処理が完了したか判断する(ステップS63)。後続検索DB配列内の全ての検索条件について処理が完了していなければ(ステップS63:Noルート)、ステップS57に戻り、上で述べた処理を繰り返す。一方、後続検索DB配列内の全ての検索条件について処理が完了した場合(ステップS63:Yesルート)、端子Dを介してステップS51(図11)の処理に移行し、ステップS51及びステップS55の処理を実行した後、本処理を終了する。なお、後続検索データベースが複数存在する場合には、各後続検索データベースに対する検索要求を一斉に出力し、複数の後続検索データベースを並列に検索することも可能である。
以上のような処理を実行することにより、過去の検索におけるヒット件数の少ない先行検索データベースを先に検索し、IDを絞り込んだ形で後続検索データベースを検索することができるようになる。従って、後続検索データベースの検索結果において、最終的に検索結果として提供されない無駄なデータの割合が少なくなり、各検索結果をマージする時間が短縮されるので、効率的な横断検索ができるようになる。また、先行検索データベースの各検索結果に共通して含まれるIDが存在しない場合には、後続検索データベースの検索を行わずに検索を終了するので、無駄な検索を行わずに済むようになる。
なお、上で説明した例では、先行検索DB判断閾値を決定し、当該閾値に基づき先行検索データベースを決定していたが、例えばヒット件数によって先行検索候補配列内のデータベースをソートし、ヒット件数が下位所定順位内のデータベースを先行検索データベースとして特定するようにしてもよい。また、例えば、先行検索候補配列に先行検索DB判断閾値以下となるヒット件数が存在しなかった場合に、ヒット件数によって先行検索候補配列内のデータベースをソートし、ヒット件数が下位所定順位内のデータベースを先行検索データベースとして特定するようにしてもよい。
次に、図13を用いて統合ID管理装置1におけるキャッシュコントローラ19の処理を説明する。なお、上で説明したように、ステップS33、ステップS47、ステップS53及びステップS61において、検索部18は検索条件をキャッシュコントローラ19に送信する。そして、キャッシュコントローラ19は、検索部18から検索条件を受信し(図13:ステップS71)、受信した検索条件を含むレコードがキャッシュ14で管理されているか判断する(ステップS73)。受信した検索条件を含むレコードがキャッシュ14で管理されている場合(ステップS73:Yesルート)、キャッシュコントローラ19は、キャッシュ14及び検索結果管理テーブルの各々において、受信した検索条件を含むレコードの検索回数を1インクリメントする(ステップS75)。
そして、キャッシュコントローラ19は、検索条件と共にヒット件数を受信したか判断する(ステップS77)。なお、上で説明したように、ステップS33及びステップS61においては、検索条件と共にヒット件数が検索部18からキャッシュコントローラ19に送信される。検索条件と共にヒット件数を受信した場合(ステップS77:Yesルート)、キャッシュコントローラ19は、キャッシュ14及び検索結果管理テーブルの各々において、受信したヒット件数を、受信した検索条件を含むレコードに上書き登録する(ステップS79)。そして、本処理を終了する。一方、検索条件と共にヒット件数を受信していなければ(ステップS77:Noルート)、ステップS79の処理をスキップし、本処理を終了する。
また、ステップS73において、受信した検索条件を含むレコードがキャッシュ14で管理されていないと判断された場合(ステップS73:Noルート)、キャッシュコントローラ19は、検索結果管理テーブルにおいて、受信した検索条件を含むレコードの検索回数を1インクリメントする(ステップS81)。そして、キャッシュコントローラ19は、検索条件と共にヒット件数を受信したか判断する(ステップS83)。検索条件と共にヒット件数を受信した場合(ステップS83:Yesルート)、キャッシュコントローラ19は、検索結果管理テーブルにおいて、受信したヒット件数を、受信した検索条件を含むレコードに上書き登録する(ステップS85)。その後、ステップS87の処理に移行する。一方、検索条件と共にヒット件数を受信していなければ(ステップS83:Noルート)、ステップS85の処理をスキップし、ステップS87の処理に移行する。
そして、キャッシュコントローラ19は、キャッシュ14で管理されているレコードに含まれる検索回数から最小検索回数を特定する(ステップS87)。そして、キャッシュコントローラ19は、受信したヒット件数が最小検索回数より大きいか判断する(ステップS89)。受信したヒット件数が最小検索回数より大きい場合(ステップS89:Yesルート)、キャッシュコントローラ19は、最小検索回数を持つレコードの代わりに、受信した検索条件を含むレコードをキャッシュ14に登録する(ステップS91)。そして、本処理を終了する。一方、受信したヒット件数が最小検索回数以下の場合(ステップS89:Noルート)、ステップS91の処理をスキップし、本処理を終了する。
以上のような処理を実施することにより、先行検索データベースを決定する際に、前回の検索結果におけるヒット件数を用いることができるようになる。また、検索に用いられる頻度が高い検索条件を含むレコードはキャッシュ14に登録されるので、処理の高速化を図ることができるようになる。
図14乃至図17に、本実施の形態におけるシーケンス例を示す。なお、図14及び図15は、データベースAが先行検索データベースとして決定され、データベースAの検索結果を追加してデータベースB及びCを検索する場合のシーケンス例を示す。まず、統合ID管理装置1は、複数の検索条件を含む検索要求をクライアントから受け付ける(図14:ステップ(1))。なお、本ステップは、図8に示したステップS1に相当する。
そして、統合ID管理装置1は、検索要求に係る検索条件をデータベース毎の検索条件に分割する(ステップ(2))。本ステップは、図8に示したステップS3に相当する。そして、統合ID管理装置1は、ヒット件数に基づき先行検索データベースを決定する(ステップ(3))。本ステップは、図8及び図10に示したステップS5乃至ステップS25に相当する。なお、ここでは、データベースAが先行検索データベースとして決定されたものとする。従って、検索順序は、「データベースA」、「データベースB及びC」の順となる。
そして、統合ID管理装置1は、データベースAに対する検索条件を用いてデータベースAの検索(先行検索)を実行し(ステップ(4))、検索結果を取得する(ステップ(5))。これらのステップは、図10に示したステップS29及びステップS31に相当する。そして、統合ID管理装置1は、データベースAに対する検索条件についての検索回数とヒット件数とを更新する(ステップ(6))。本ステップは、図10に示したステップS33に相当する。その後、図15に移行する。
図15の説明に移行して、統合ID管理装置1は、先行検索で得られたIDを、データベースBに対する検索条件とデータベースCに対する検索条件との各々に追加して新たな検索条件を生成する(図15:ステップ(7))。本ステップは、図11に示したステップS41及びステップS43に相当する。そして、統合ID管理装置1は、生成した検索条件を用いてデータベースB及びCの検索(後続検索)を実行し(ステップ(8))、検索結果を取得する(ステップ(9))。すなわち、先行検索で得られたIDで絞り込んだ形でデータベースB及びCの各々を検索する。なお、これらのステップは、図11に示したステップS45に相当する。そして、データベースB及びCの各々に対する検索条件についての検索回数を更新する(ステップ(10))。本ステップは、図11に示したステップS47に相当する。
そして、統合ID管理装置1は、データベースB及びCの検索結果をマージし、最終的な検索結果を格納する(ステップ(11))。本ステップは、図11に示したステップS51に相当する。そして、統合ID管理装置1は、最終的な検索結果を検索要求の要求元に出力し(ステップ(12))、処理を終了する。本ステップは、図11に示したステップS55に相当する。
また、図16及び図17は、データベースA及びBが先行検索データベースとして決定され、データベースA及びBの各検索結果に共通して含まれるIDが存在しなかった場合のシーケンス例を示す。まず、統合ID管理装置1は、複数の検索条件を含む検索要求をクライアントから受け付ける(図16:ステップ(21))。なお、本ステップは、図8に示したステップS1に相当する。
そして、統合ID管理装置1は、検索要求に係る検索条件をデータベース毎の検索条件に分割する(ステップ(22))。本ステップは、図8に示したステップS3に相当する。そして、統合ID管理装置1は、ヒット件数に基づき先行検索データベースを決定する(ステップ(23))。本ステップは、図8及び図10に示したステップS5乃至ステップS25に相当する。なお、ここでは、データベースA及びBが先行検索データベースとして決定されたものとする。従って、検索順序は、「データベースA及びB」、「データベースC」の順となる。
そして、統合ID管理装置1は、データベースA及びBの各々に対する検索条件を用いてデータベースA及びBの検索(先行検索)を実行し(ステップ(24))、検索結果を取得する(ステップ(25))。これらのステップは、図10に示したステップS29及びステップS31に相当する。そして、統合ID管理装置1は、データベースA及びBの各々に対する検索条件についての検索回数とヒット件数とを更新する(ステップ(26))。本ステップは、図10に示したステップS33に相当する。その後、図17に移行する。
図17の説明に移行して、統合ID管理装置1は、データベースA及びBの検索結果をマージする(図17:ステップ(27))。本ステップは、図11に示したステップS37に相当する。なお、ここでは、データベースA及びBの各検索結果に共通して含まれるIDが存在しなかったものとする。
そして、統合ID管理装置1は、データベースCに対する検索条件についての検索回数を更新する(ステップ(28))。なお、データベースA及びBの各検索結果に共通して含まれるIDが存在しなかった場合にはデータベースCの検索は行わないが、データベースCに対する検索条件は検索要求で指定されているので、データベースCに対する検索条件についての検索回数を更新する。本ステップは、図11に示したステップS53に相当する。そして、統合ID管理装置1は、検索結果(該当するデータなし)を検索要求の要求元に出力し(ステップ(29))、処理を終了する。本ステップは、図11に示したステップS55に相当する。
以上のように、本実施の形態によれば、複数のデータベースに対する横断的な検索を効率的に行うことができるようになる。
[実施の形態2]
上で説明した第1の実施の形態では、統合ID管理装置1が、各データベースに対して検索要求を出力することにより、検索結果を取得するようになっていたが、データベースの中には、例えばプレゼンスシステムのデータベースのように検索機能を持たないものもある。このようなデータベースに対しては、検索条件(すなわち、属性名と属性値)を指定した検索を行うことができないため、全てのIDのデータを取得し、統合ID管理装置1において、検索条件を満たすIDを特定する必要がある。第2の実施の形態では、検索機能を持たないデータベースが含まれている場合であっても複数のデータベースに対する横断的な検索を効率的に行うことができるようにする。以下、図18乃至図28を用いて、第2の実施の形態を説明する。
図18に、第2の実施の形態に係るシステム構成図を示す。本実施の形態における主要な処理を実施する統合ID管理装置1bは、統合IDデータ(図2)を利用する複数のクライアント(図18では、クライアントA乃至C)と、複数のデータベース(図18では、データベースA、B及びD)とに接続されている。なお、データベースDは、プレゼンスサーバで管理されているデータベース(以下、プレゼンスデータベースと呼ぶ)であるものとする。
図19に、本実施の形態における統合ID管理装置1bの機能ブロック図を示す。統合ID管理装置1bは、入力部11と、属性管理テーブル格納部12と、分割処理部13と、キャッシュ14と、検索結果管理テーブル格納部15と、先行検索DB決定部16と、配列データ格納部17と、検索部18と、キャッシュコントローラ19と、検索結果格納部20と、出力部21と、検索結果管理テーブル更新部22とを有する。すなわち、統合ID管理装置1bは、第1の実施の形態における統合ID管理装置1に対して検索結果管理テーブル更新部22を追加したものである。検索結果管理テーブル更新部22は、プレゼンスサーバからのプレゼンス更新通知(詳細は後述)に従って、検索結果管理テーブルの更新処理を実施する。
また、本実施の形態では、検索結果管理テーブル格納部15には、図20に示すような検索結果管理テーブルが格納される。図20の例では、検索結果管理テーブルには、検索対象データベース(DB)の列と、検索条件の列と、ヒット件数の列と、検索回数の列と、該当IDの列とが含まれる。すなわち、本実施の形態における検索結果管理テーブルは、第1の実施の形態における検索結果管理テーブルに対して該当IDの列を追加したものである。該当IDの列には、検索対象データベースがプレゼンスデータベースの場合に、そのレコードにおける属性名と属性値とを満たすIDであって、プレゼンスサーバから通知されたIDが登録される。なお、図21及び図22を用いて、検索結果管理テーブルの更新処理について説明しておく。
例えばプレゼンスデータベースに変更が生じると、プレゼンス更新通知がプレゼンスサーバから統合ID管理装置1bに送信される。プレゼンス更新通知には、IDと、当該IDに関連付けられているデータの属性名及び属性値のセットとが含まれる。なお、プレゼンス更新通知には、属性名及び属性値のセットが複数含まれる場合もある。
まず、統合ID管理装置1bの入力部11が、プレゼンスサーバからのプレゼンス更新通知を受信し(図21:ステップS101)、検索結果管理テーブル更新部22に出力する。そして、検索結果管理テーブル更新部22は、入力部11からプレゼンス更新通知を受信すると、プレゼンス更新通知に係るIDを含むレコードを検索結果管理テーブルから抽出する(ステップS103)。そして、検索結果管理テーブル更新部22は、抽出したレコードのうち未処理のレコードを特定する(ステップS105)。
そして、検索結果管理テーブル更新部22は、プレゼンス更新通知に含まれる、属性名及び属性値のセットのいずれかが、特定されたレコードに含まれる検索条件と一致するか判断する(ステップS107)。プレゼンス更新通知に含まれる、属性名及び属性値のセットのいずれかが、特定されたレコードに含まれる検索条件と一致する場合(ステップS107:Yesルート)、ステップS111の処理に移行する。
一方、プレゼンス更新通知に含まれる、属性名及び属性値のセットのいずれもが、特定されたレコードに含まれる検索条件と一致しない場合(ステップS107:Noルート)、検索結果管理テーブル更新部22は、プレゼンス更新通知に係るIDを特定されたレコードから削除し、特定されたレコードにおけるヒット件数を1デクリメントする(ステップS109)。なお、本ステップは、例えばある属性の属性値に変更が生じた場合において、変更前の属性値に関連するレコードからIDを削除するための処理である。そして、ステップS111の処理に移行する。
そして、検索結果管理テーブル更新部22は、抽出した全てのレコードについて処理が完了したか判断する(ステップS111)。抽出した全てのレコードについて処理が完了していなければ(ステップS111:Noルート)、ステップS105に戻り、上で述べた処理を繰り返す。一方、抽出した全てのレコードについて処理が完了した場合(ステップS111:Yesルート)、端子Eを介してステップS113(図22)の処理に移行する。
図22の説明に移行して、端子Eの後、検索結果管理テーブル更新部22は、プレゼンス更新通知に含まれる、属性名及び属性値のセットのうち未処理のセットを特定する(図22:ステップS113)。そして、検索結果管理テーブル更新部22は、検索結果管理テーブルにおいて、特定されたセットに係る属性名と属性値とを検索条件として含むレコードが存在するか判断する(ステップS115)。検索結果管理テーブルにおいて、特定されたセットに係る属性名と属性値とを検索条件として含むレコードが存在しないと判断された場合(ステップS115:Noルート)、検索結果管理テーブル更新部22は、特定されたセットに係る属性名と属性値とを検索条件として含むレコードを検索結果管理テーブルに追加し、プレゼンス更新通知に係るIDを該当IDの列に登録してヒット件数を1に設定する(ステップS117)。なお、本ステップは、属性名と属性値の新しい組み合わせが通知された場合において、新たなレコードを検索結果管理テーブルに追加するための処理である。その後、ステップS123の処理に移行する。
一方、検索結果管理テーブルにおいて、特定されたセットに係る属性名と属性値とを検索条件として含むレコードが存在する場合(ステップS115:Yesルート)、検索結果管理テーブル更新部22は、該当するレコードの該当IDの列に、プレゼンス更新通知に係るIDが登録されているか判断する(ステップS119)。該当するレコードの該当IDの列に、プレゼンス更新通知に係るIDが登録されている場合(ステップS119:Yesルート)、ステップS123の処理に移行する。
一方、該当するレコードの該当IDの列に、プレゼンス更新通知に係るIDが未登録の場合(ステップS119:Noルート)、検索結果管理テーブル更新部22は、該当するレコードの該当IDの列に、プレゼンス更新通知に係るIDを登録し、ヒット件数を1インクリメントする(ステップS121)。なお、本ステップは、例えばある属性の属性値に変更が生じた場合において、変更後の属性値に関連するレコードにIDを追加するための処理である。その後、ステップS123の処理に移行する。
そして、検索結果管理テーブル更新部22は、プレゼンス更新通知に含まれる全てのセットについて処理が完了したか判断する(ステップS123)。プレゼンス更新通知に含まれる全てのセットについて処理が完了していなければ(ステップS123:Noルート)、ステップS113に戻り、上で述べた処理を繰り返す。一方、プレゼンス更新通知に含まれる全てのセットについて処理が完了した場合(ステップS123:Yesルート)、本処理を終了する。
以上のような処理を実施することにより、プレゼンス更新通知に従って、検索結果管理テーブルを適切に更新することができる。
次に、図23乃至図28を用いて、本実施の形態における統合ID管理装置1bの処理を説明する。まず、統合ID管理装置1bの入力部11が、クライアントから、属性名と属性値との組み合わせである検索条件を複数含むAND検索要求を受け付ける(図23:ステップS131)。そして、入力部11は、AND検索要求を分割処理部13に出力する。
そして、分割処理部13は、入力部11からAND検索要求を受信し、AND検索要求に係る検索条件を、属性管理テーブルに基づきデータベース毎の検索条件に分割する(ステップS133)。なお、分割した検索条件は、検索対象データベースの識別情報に対応付けて一旦記憶装置に格納される。
そして、分割処理部13は、ステップS133において分割された検索条件の中に、プレゼンスデータベースに対する検索条件であって複数属性の指定を含む検索条件が存在するか判断する(ステップS135)。ステップS133において分割された検索条件の中に、プレゼンスデータベースに対する検索条件であって複数属性の指定を含む検索条件が存在する場合(ステップS135:Yesルート)、分割処理部13は、該当する検索条件を属性毎の検索条件に分割する(ステップS137)。例えば、ステップS133において分割された検索条件の中に、プレゼンスデータベースに対する検索条件「(属性X=uuu)AND(属性Y=ooo)」が存在した場合には、ステップS137の処理により、この検索条件は、「属性X=uuu」と「属性Y=ooo」とに分割される。
一方、ステップS133において分割された検索条件の中に、プレゼンスデータベースに対する検索条件であって複数属性の指定を含む検索条件が存在しない場合(ステップS135:Noルート)、ステップS137の処理をスキップし、ステップS139の処理に移行する。
そして、分割処理部13は、分割した検索条件のうち未処理の検索条件を特定する(ステップS139)。そして、分割処理部13は、特定された検索条件に対応するヒット件数がキャッシュ14又は検索結果管理テーブルに登録されているか判断する(ステップS141)。特定された検索条件に対応するヒット件数がキャッシュ14又は検索結果管理テーブルに登録されている場合(ステップS141:Yesルート)、分割処理部13は、特定された検索条件と検索対象データベースの識別情報とヒット件数とを配列データ格納部17における先行検索候補配列に格納する(ステップS143)。その後、ステップS151の処理に移行する。
一方、特定された検索条件に対応するヒット件数がキャッシュ14及び検索結果管理テーブルに未登録の場合(ステップS141:Noルート)、分割処理部13は、特定された検索条件がプレゼンスデータベースに対する検索条件であるか判断する(ステップS145)。特定された検索条件がプレゼンスデータベースに対する検索条件であると判断された場合(ステップS145:Yesルート)、分割処理部13は、特定された検索条件とプレゼンスデータベースの識別情報とを配列データ格納部17におけるプレゼンスDB配列に格納する(ステップS147)。なお、プレゼンスDB配列は、図7(b)に示したデータ構造を有する。その後、ステップS151の処理に移行する。
一方、特定された検索条件がプレゼンスデータベースに対する検索条件ではないと判断された場合(ステップS145:Noルート)、分割処理部13は、特定された検索条件と検索対象データベースの識別情報とを配列データ格納部17における後続検索DB配列に格納する(ステップS149)。なお、特定された検索条件を含むレコードが検索結果管理テーブルに存在しない場合には、分割処理部13は、特定された検索条件と検索対象データベースの識別情報とを含むレコードを検索結果管理テーブルに追加し、検索回数を0に設定する。その後、ステップS151の処理に移行する。
そして、分割処理部13は、分割した全ての検索条件について処理が完了したか判断する(ステップS151)。分割した全ての検索条件について処理が完了していなければ(ステップS151:Noルート)、ステップS139に戻り、上で述べた処理を繰り返す。一方、分割した全ての検索条件について処理が完了した場合(ステップS151:Yesルート)、分割処理部13は、検索条件の分割が完了した旨を先行検索DB決定部16に通知する。なお、処理は端子Fを介してステップS153(図24)に移行する。
図24の説明に移行して、端子Fの後、先行検索DB決定部16は、分割処理部13から検索条件の分割が完了した旨の通知を受信すると、先行検索候補配列においてヒット件数の最大値を特定し、当該最大値から先行検索DB判断閾値を決定する(図24:ステップS153)。
そして、先行検索DB決定部16は、先行検索候補配列から未処理の検索条件を特定する(ステップS155)。そして、先行検索DB決定部16は、特定された検索条件に対応するヒット件数が先行検索DB判断閾値以下であるか判断する(ステップS157)。特定された検索条件に対応するヒット件数が先行検索DB判断閾値以下の場合(ステップS157:Yesルート)、先行検索DB決定部16は、特定された検索条件と検索対象データベースの識別情報とを配列データ格納部17における先行検索DB配列に格納する(ステップS159)。その後、ステップS163の処理に移行する。
一方、特定された検索条件に対応するヒット件数が先行検索DB判断閾値より大きい場合(ステップS157:Noルート)、先行検索DB決定部16は、特定された検索条件と検索対象データベースの識別情報とを配列データ格納部17における後続検索DB配列に格納する(ステップS161)。その後、ステップS163の処理に移行する。
そして、先行検索DB決定部16は、先行検索候補配列内の全ての検索条件について処理が完了したか判断する(ステップS163)。先行検索候補配列内の全ての検索条件について処理が完了していなければ(ステップS163:Noルート)、ステップS155に戻り、上で述べた処理を繰り返す。一方、先行検索候補配列内の全ての検索条件について処理が完了した場合(ステップS163:Yesルート)、先行検索DB決定部16は、先行検索DB決定完了通知を検索部18に出力する。
そして、検索部18は、先行検索DB決定部16から先行検索DB決定完了通知を受信すると、先行検索DB配列に検索条件が格納されているか判断する(ステップS165)。先行検索DB配列に検索条件が格納されていないと判断された場合(ステップS165:Noルート)、端子Kを介して、ステップS223(図28)の処理に移行する。
一方、先行検索DB配列に検索条件が格納されている場合(ステップS165:Yesルート)、端子Gを介してステップS167(図25)の処理に移行する。
図25の説明に移行して、端子Gの後、検索部18は、先行検索DB配列から未処理の検索条件を特定する(図25:ステップS167)。そして、検索部18は、特定された検索条件がプレゼンスデータベースに対する検索条件であるか判断する(ステップS169)。特定された検索条件がプレゼンスデータベースに対する検索条件であると判断された場合(ステップS169:Yesルート)、検索部18は、キャッシュ14又は検索結果管理テーブルにおいて特定された検索条件を含むレコードを特定し、特定したレコードにおける該当IDの列からIDを抽出し、検索結果として検索結果格納部20に格納する(ステップS171)。この際、プレゼンスデータベースの識別情報に対応付けて格納する。その後、ステップS175の処理に移行する。
一方、特定された検索条件がプレゼンスデータベースに対する検索条件ではないと判断された場合(ステップS169:Noルート)、検索部18は、特定された検索条件を用いて検索対象となる先行検索データベースの検索を実行する(ステップS173)。例えば、検索部18が、特定された検索条件を含む検索要求を先行検索データベースに出力する。そして、検索部18は、先行検索データベースからの検索結果を当該先行検索データベースの識別情報に対応付けて検索結果格納部20に格納する。その後、ステップS175の処理に移行する。
そして、検索部18は、特定された検索条件と検索結果におけるヒット件数とをキャッシュコントローラ19に出力する(ステップS175)。なお、特定された検索条件がプレゼンスデータベースに対する検索条件の場合には、ステップS171において抽出したIDの数をヒット件数としてキャッシュコントローラ19に出力する。
そして、検索部18は、先行検索DB配列内の全ての検索条件について処理が完了したか判断する(ステップS177)。先行検索DB配列内の全ての検索条件について処理が完了していなければ(ステップS177:Noルート)、ステップS167に戻り、上で述べた処理を繰り返す。一方、先行検索DB配列内の全ての検索条件について処理が完了した場合(ステップS177:Yesルート)、端子Gの後、検索部18は、検索結果格納部20に格納されている、先行検索データベースの検索結果をマージする(ステップS179)。その後、端子Hを介してステップS181(図26)の処理に移行する。
図26の説明に移行して、端子Hの後、検索部18は、先行検索データベースの各検索結果に共通して含まれるIDが存在するか判断する(図26:ステップS181)。先行検索データベースの各検索結果に共通して含まれるIDが存在しないと判断された場合(ステップS181:Noルート)、検索部18は、後続検索DB配列に格納されている検索条件をキャッシュコントローラ19に出力する(ステップS183)。なお、先行検索データベースの各検索結果に共通して含まれるIDが存在しない場合には後続検索データベースの検索を行うことなく、検索を終了することになるが、後続検索DB配列に格納されている各検索条件については、検索要求で指定されているので、キャッシュ14及び検索結果管理テーブルにおける検索回数を1インクリメントするようにする。そして、検索部18は、検索結果を出力するよう出力部21に要求する。なお、処理は端子Jを介してステップS221(図27)に移行する。
一方、先行検索データベースの各検索結果に共通して含まれるIDが存在すると判断された場合(ステップS181:Yesルート)、検索部18は、後続検索データベースの検索を開始する。
具体的には、まず、検索部18は、後続検索DB配列から未処理の検索条件を特定する(ステップS185)。そして、検索部18は、特定された検索条件がプレゼンスデータベースに対する検索条件であるか判断する(ステップS187)。特定された検索条件がプレゼンスデータベースに対する検索条件であると判断された場合(ステップS187:Yesルート)、検索部18は、キャッシュ14又は検索結果管理テーブルにおいて、特定された検索条件を含むレコードを特定し、特定したレコードにおける該当IDの列からIDを抽出する(ステップS189)。そして、検索部18は、抽出したIDのうち、先行検索で得られたIDと共通するIDを検索結果として検索結果格納部20に格納する(ステップS191)。この際、プレゼンスデータベースの識別情報に対応付けて格納する。その後、ステップS197の処理に移行する。
一方、特定された検索条件がプレゼンスデータベースに対する検索条件ではないと判断された場合(ステップS187:Noルート)、検索部18は、先行検索で得られたIDを特定された検索条件に追加して新たな検索条件を生成し(ステップS193)、生成した新たな検索条件を用いて検索対象となる後続検索データベースの検索を実行する(ステップS195)。例えば、検索部18が、特定された検索条件と先行検索で得られたIDとを含む検索要求を後続検索データベースに出力する。そして、検索部18は、後続検索データベースからの検索結果を当該後続検索データベースの識別情報に対応付けて検索結果格納部20に格納する。その後、ステップS197の処理に移行する。
そして、検索部18は、特定された検索条件をキャッシュコントローラ19に出力する(ステップS197)。なお、先行検索で得られたIDで絞り込んだ形で後続検索を行っているため、ここでは、キャッシュ14及び検索結果管理テーブルにおける、特定された検索条件のヒット件数を更新しないようにする。そのため、ステップS197では、検索部18は、検索結果におけるヒット件数をキャッシュコントローラ19に送信しない。
そして、検索部18は、後続検索DB配列内の全ての検索条件について処理が完了したか判断する(ステップS199)。後続検索DB配列内の全ての検索条件について処理が完了していなければ(ステップS199:Noルート)、ステップS185に戻り、上で述べた処理を繰り返す。
一方、後続検索DB配列内の全ての検索条件について処理が完了した場合(ステップS199:Yesルート)、検索部18は、検索結果格納部20に格納されている、後続検索データベースの検索結果をマージする(ステップS201)。その後、端子Iを介してステップS203(図27)の処理に移行する。
図27の説明に移行して、端子Iの後、検索部18は、後続検索データベースの各検索結果に共通して含まれるIDが存在するか判断する(図27:ステップS203)。後続検索データベースの各検索結果に共通して含まれるIDが存在しないと判断された場合(ステップS203:Noルート)、検索部18は、プレゼンスDB配列に格納されている検索条件をキャッシュコントローラ19に出力する(ステップS205)。なお、後続検索データベースの各検索結果に共通して含まれるIDが存在しない場合には検索を終了することになるが、プレゼンスDB配列に格納されている各検索条件については、キャッシュ14及び検索結果管理テーブルにおける検索回数を1インクリメントするようにする。そして、検索部18は、検索結果を出力するよう出力部21に要求する。なお、処理はステップS221に移行する。
一方、後続検索データベースの各検索結果に共通して含まれるIDが存在すると判断された場合(ステップS203:Yesルート)、検索部18は、プレゼンスDB配列に検索条件が格納されているか判断する(ステップS207)。プレゼンスDB配列に検索条件が格納されていないと判断された場合(ステップS207:Noルート)、検索部18は、検索結果を出力するよう出力部21に要求する。なお、処理はステップS221に移行する。
一方、プレゼンスDB配列に検索条件が格納されていると判断された場合(S207:Yesルート)、検索部18は、プレゼンスDB配列から未処理のプレゼンスデータベースを特定する(ステップS209)。そして、検索部18は、特定したデータベースから、後続検索で得られたIDに関するデータを取得し、一旦記憶装置に格納する(ステップS211)。そして、検索部18は、取得したデータに基づき、特定したプレゼンスDBに対する検索条件を満たすIDを特定し、検索結果として検索結果格納部20に格納する(ステップS213)。この際、プレゼンスデータベースの識別情報に対応付けて格納する。
そして、検索部18は、特定したプレゼンスデータベースに対する検索条件をキャッシュコントローラ19に出力する(ステップS215)。なお、後続検索で得られたIDで絞り込んだ形で検索を行っているため、ここでは、ヒット件数を更新しないようにする。
そして、検索部18は、プレゼンスDB配列内の全てのプレゼンスデータベースについて処理が完了したか判断する(ステップS217)。プレゼンスDB配列内の全てのプレゼンスデータベースについて処理が完了していなければ(ステップS217:Noルート)、ステップS209に戻り、上で述べた処理を繰り返す。一方、プレゼンスDB配列内の全てのプレゼンスデータベースについて処理が完了した場合(ステップS217:Yesルート)、検索部18は、検索結果格納部20に格納されている、プレゼンスデータベースの検索結果をマージする(ステップS219)。そして、検索部18は、検索結果を出力するよう出力部21に要求する。
そして、出力部21は、検索部18からの要求に応じて、検索結果格納部20に格納されている検索結果を、AND検索要求の要求元のクライアントに出力する(ステップS221)。そして、本処理を終了する。
また、ステップS165(図24)において、先行検索DB配列に検索条件が格納されていないと判断され、端子Kを介して図28に移行してきた場合、検索部18は、後続検索DB配列から未処理の検索条件を特定する(図28:ステップS223)。そして、検索部18は、特定された検索条件がプレゼンスデータベースに対する検索条件であるか判断する(ステップS225)。特定された検索条件がプレゼンスデータベースに対する検索条件であると判断された場合(ステップS225:Yesルート)、検索部18は、キャッシュ14又は検索結果管理テーブルにおいて、特定された検索条件を含むレコードを特定し、特定したレコードにおける該当IDの列からIDを抽出し、検索結果として検索結果格納部20に格納する(ステップS227)。この際、プレゼンスデータベースの識別情報に対応付けて格納する。その後、ステップS231の処理に移行する。
一方、特定された検索条件がプレゼンスデータベースに対する検索条件ではないと判断された場合(ステップS225:Noルート)、検索部18は、特定された検索条件を用いて検索対象となる後続検索データベースの検索を実行する(ステップS229)。例えば、検索部18が、特定された検索条件を含む検索要求を後続検索データベースに出力する。そして、検索部18は、後続検索データベースからの検索結果を当該後続検索データベースの識別情報に対応付けて検索結果格納部20に格納する。その後、ステップS231の処理に移行する。
そして、検索部18は、特定された検索条件と検索結果におけるヒット件数とをキャッシュコントローラ19に出力する(ステップS231)。すなわち、キャッシュコントローラ19にキャッシュ14及び検索結果管理テーブルを更新させる。
そして、検索部18は、後続検索DB配列内の全ての検索条件について処理が完了したか判断する(ステップS233)。後続検索DB配列内の全ての検索条件について処理が完了していなければ(ステップS233:Noルート)、ステップS223に戻り、上で述べた処理を繰り返す。一方、後続検索DB配列内の全ての検索条件について処理が完了した場合(ステップS233:Yesルート)、端子Lを介してステップS201(図26)の処理に移行し、ステップS201乃至ステップS221の処理を実行した後、本処理を終了する。
以上のような処理を実施することにより、検索機能を持たないデータベースが含まれている場合であっても複数のデータベースに対する横断的な検索を効率的に行うことができる。
[実施の形態3]
上で説明した第2の実施の形態では、後続検索において、プレゼンスデータベースと、プレゼンスデータベース以外のデータベースとを並列に処理し、各検索結果をマージするような構成を採用していた。これに対し、本実施の形態では、後続検索DB配列の中にプレゼンスデータベースが存在する場合には、そのプレゼンスデータベースに対する検索条件を満たすIDを検索結果管理テーブルから抽出し、抽出したIDを検索条件に追加して、プレゼンスデータベース以外の後続検索データベースの検索を行う。すなわち、IDをより絞り込んだ形でプレゼンスデータベース以外の後続検索データベースの検索行う。
本実施の形態におけるシステム構成及び統合ID管理装置1bの構成は、第2の実施の形態のものと同じである。また、本実施の形態における統合ID管理装置1bの処理フローは、基本的には第2の実施の形態と同じであるが、図26に示した処理の代わりに図29及び図30に示すような処理を実施し、図28に示した処理の代わりに図31に示すような処理を実施する。以下、これらの処理について説明する。
まず、図29及び図30の処理フローについて説明する。なお、ここでは、第2の実施の形態で説明したステップS131乃至ステップS179(図23乃至図25)の処理を実施した後、端子Hを介して図29に移行してきたものとする。図29において、端子Hの後、検索部18は、先行検索データベースの各検索結果に共通して含まれるIDが存在するか判断する(図29:ステップS241)。先行検索データベースの各検索結果に共通して含まれるIDが存在しないと判断された場合(ステップS241:Noルート)、検索部18は、後続検索DB配列に格納されている検索条件をキャッシュコントローラ19に出力する(ステップS243)。なお、先行検索データベースの各検索結果に共通して含まれるIDが存在しない場合には後続検索データベースの検索を行うことなく、検索を終了することになるが、後続検索DB配列に格納されている各検索条件については、検索要求で指定されているので、キャッシュ14及び検索結果管理テーブルにおける検索回数を1インクリメントするようにする。そして、検索部18は、検索結果を出力するよう出力部21に要求する。なお、処理は端子Jを介してステップS221(図27)に移行する。
一方、先行検索データベースの各検索結果に共通して含まれるIDが存在すると判断された場合(ステップS241:Yesルート)、検索部18は、後続検索DB配列から、プレゼンスDBに対する検索条件を抽出する(ステップS245)。この際、後続検索DB配列から、プレゼンスDBに対する検索条件は削除しておく。なお、プレゼンスDBに対する検索条件が複数格納されている場合には全て抽出する。そして、検索部18は、抽出した検索条件をキャッシュコントローラ19に出力する(ステップS247)。すなわち、抽出した検索条件について、キャッシュコントローラ19に検索回数を1インクリメントさせる。
そして、検索部18は、キャッシュ14又は検索結果管理テーブルにおいて、抽出した検索条件を含むレコードを特定し、特定したレコードにおける該当IDの列からIDを抽出する(ステップS249)。なお、ステップS245において複数の検索条件が抽出された場合には、各検索条件について処理を実施する。そして、検索部18は、抽出したIDと先行検索で得られたIDとをマージする(ステップS251)。
そして、検索部18は、抽出したIDと先行検索で得られたIDとで共通するID(以下、共通ID)が存在するか判断する(ステップS253)。共通IDが存在しないと判断された場合(ステップS253:Noルート)、ステップS243の処理に移行し、ステップS243の処理を実施した後、端子Jを介してステップS221(図27)に移行する。
一方、共通IDが存在すると判断された場合(ステップS253:Yesルート)、端子Mを介してステップS255(図30)の処理に移行する。
図30の説明に移行して、端子Mの後、検索部18は、後続検索DB配列から未処理の検索条件を特定する(図30:ステップS255)。なお、この時点では、後続検索DB配列に格納されている検索条件は、プレゼンスデータベース以外のデータベースに対する検索条件のみとなっている。そして、検索部18は、共通IDを特定された検索条件に追加して新たな検索条件を生成し(ステップS257)、生成した新たな検索条件を用いて検索対象となる後続検索データベースの検索を実行する(ステップS259)。例えば、検索部18が、特定された検索条件と先行検索で得られたIDと共通IDとを含む検索要求を後続検索データベースに出力する。すなわち、第2の実施の形態に比べ、共通IDでさらに絞り込んだ形で後続検索データベースを検索する。そして、検索部18は、後続検索データベースからの検索結果を当該後続検索データベースの識別情報に対応付けて検索結果格納部20に格納する。
そして、検索部18は、特定された検索条件をキャッシュコントローラ19に出力する(ステップS261)。なお、先行検索で得られたIDと共通IDとで絞り込んだ形で後続検索を行っているため、ここでは、キャッシュ14及び検索結果管理テーブルにおける、特定された検索条件のヒット件数を更新しないようにする。
そして、検索部18は、後続検索DB配列内の全ての検索条件について処理が完了したか判断する(ステップS263)。後続検索DB配列内の全ての検索条件について処理が完了していなければ(ステップS263:Noルート)、ステップS255に戻り、上で述べた処理を繰り返す。
一方、後続検索DB配列内の全ての検索条件について処理が完了した場合(ステップS263:Yesルート)、検索部18は、検索結果格納部20に格納されている、後続検索データベースの検索結果をマージする(ステップS265)。その後、端子Iを介してステップS203(図27)の処理に移行する。なお、ステップS203以降の処理は、第2の実施の形態で説明した処理と同じであるため、ここでは説明は省略する。
次に、図31の処理フローを説明する。なお、ここでは、第2の実施の形態で説明したステップS165(図24)において、先行検索DB配列に検索条件が格納されていないと判断され、端子Kを介して図31に移行してきたものとする。図31において、端子Kの後、検索部18は、後続検索DB配列から、プレゼンスDBに対する検索条件を抽出する(ステップS271)。この際、後続検索DB配列から、プレゼンスDBに対する検索条件は削除しておく。なお、プレゼンスDBに対する検索条件が複数格納されている場合には全て抽出する。
そして、検索部18は、キャッシュ14又は検索結果管理テーブルにおいて、抽出した検索条件を含むレコードを特定し、特定したレコードにおける該当IDの列からIDを抽出する(ステップS273)。なお、ステップS271において複数の検索条件が抽出された場合には、各検索条件について処理を実施する。
そして、検索部18は、抽出したIDの数をヒット件数として、検索条件と共にキャッシュコントローラ19に出力する(ステップS275)。すなわち、キャッシュコントローラ19に、キャッシュ14及び検索結果管理テーブルにおける検索回数及びヒット件数を更新させる。
そして、検索部18は、後続検索DB配列から未処理の検索条件を特定する(ステップS277)。なお、この時点では、後続検索DB配列に格納されている検索条件は、プレゼンスデータベース以外のデータベースに対する検索条件のみとなっている。そして、検索部18は、ステップS273において抽出したIDを特定された検索条件に追加して新たな検索条件を生成し(ステップS279)、生成した新たな検索条件を用いて検索対象となる後続検索データベースの検索を実行する(ステップS281)。例えば、検索部18が、特定された検索条件とステップS273において抽出したIDとを含む検索要求を後続検索データベースに出力する。すなわち、先行検索を行わずに後続検索を行う場合にも、プレゼンスデータベースに対する検索条件を満たすIDで絞り込んだ形でプレゼンスデータベース以外の後続検索データベースの検索を行う。そして、検索部18は、後続検索データベースからの検索結果を当該後続検索データベースの識別情報に対応付けて検索結果格納部20に格納する。
そして、検索部18は、特定された検索条件をキャッシュコントローラ19に出力する(ステップS283)。なお、プレゼンスデータベースに対する検索条件を満たすIDで絞り込んだ形で後続検索を行っているため、ここでは、キャッシュ14及び検索結果管理テーブルにおける特定された検索条件のヒット件数を更新しないようにする。
そして、検索部18は、後続検索DB配列内の全ての検索条件について処理が完了したか判断する(ステップS285)。後続検索DB配列内の全ての検索条件について処理が完了していなければ(ステップS285:Noルート)、ステップS277に戻り、上で述べた処理を繰り返す。
一方、後続検索DB配列内の全ての検索条件について処理が完了した場合(ステップS285:Yesルート)、端子Lを介してステップS201(図26)の処理に移行する。なお、ステップS201以降の処理は、第2の実施の形態で説明した処理と同じであるため、ここでは説明は省略する。
以上のような処理を実施することにより、プレゼンスデータベースに対する検索条件を満たすIDでさらに絞り込んだ形でプレゼンスデータベース以外の後続検索データベースの検索を行うことができるようになる。
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明した統合ID管理装置1及び1bの機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
また、上で説明したデータ構造及びテーブル構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、例えば、所定のルールに従って各IDを変換し、あるデータベースでは変換後のIDを用いてデータを管理するようにしてもよい。この場合、統合ID管理装置1及び1bでは、変換前のIDと変換後のIDは同じものとみなして処理するようにすればよい。
以上述べた本技術の実施の形態をまとめると以下のとおりになる。
第1の態様に係る検索方法は、特定の識別子に関連付けられているデータに係る複数の属性を複数のデータベースで分担して管理する場合における検索方法であって、属性に関する検索条件を複数含むAND検索要求を受け付けた場合、データベース毎に当該データベースで管理されている属性を表す情報を格納する属性管理テーブルに基づき、AND検索要求に含まれる複数の検索条件を、データベース別の検索条件に分類し、データベースの識別情報に対応付けて記憶装置に格納するステップと、記憶装置に格納されている、データベースの識別情報と当該データベースに対応する検索条件とを基に、データベースの識別情報と検索条件と当該データベースに対する過去の検索において当該検索条件にヒットしたヒット件数とを含むレコードを格納する検索結果管理テーブルを検索し、ヒット件数が所定数以下となるデータベース、又は、ヒット件数によって記憶装置に格納されているデータベースを順位付けした場合の下位所定順位内にあるデータベースを先行検索データベースとして特定する先行検索データベース特定ステップと、先行検索データベース毎に、記憶装置に格納され且つ当該先行検索データベースに対応する検索条件を用いて当該先行検索データベースの検索を行う先行検索ステップと、先行検索データベースの各検索結果に共通して含まれる識別子を特定する先行検索結果マージステップと、記憶装置に格納されている、先行検索データベース以外のデータベースである後続検索データベース毎に、記憶装置に格納され且つ当該後続検索データベースに対応する検索条件と先行検索結果マージステップにおいて特定された識別子とを用いて当該後続検索データベースの検索を行う後続検索ステップとを含む。
このようにすれば、過去の検索におけるヒット件数の少ない先行検索データベースを先に検索するので、適切に識別子を絞り込むことができ、識別子を絞り込んだ形で後続検索データベースを検索することができるようになる。従って、後続検索データベースの検索結果において、最終的に検索結果として提供されないデータの割合が少なくなり、各検索結果をマージする時間が短縮されるので、効率的な横断検索ができる。
また、上述先行検索結果マージステップが、先行検索データベースの各検索結果に共通して含まれる識別子が存在するか判断するステップを含むようにしてもよい。そして、先行検索データベースの各検索結果に共通して含まれる識別子が存在しないと判断された場合、上記後続検索ステップの処理を行わずに検索を終了するようにしてもよい。このようにすれば、先行検索データベースの検索を行った時点で、検索条件にヒットするデータが存在しないことが分かった場合には、後続検索データベースの検索を行わずに検索を終了するので、無駄な検索を行わずに済むようになる。
さらに、データベースがプレゼンスシステムにて管理されるプレゼンスデータベースの場合には、検索結果管理テーブルにおけるレコードが、当該プレゼンスデータベースで管理されている属性の属性名と属性値との組み合わせとして規定される検索条件を満たし且つプレゼンスシステムから通知される識別子をさらに格納する場合もある。そして、上記先行検索ステップが、検索対象となる先行検索データベースがプレゼンスデータベースの場合には、検索結果管理テーブルにおける、当該先行検索データベースに係るレコードに含まれる識別子を、当該先行検索データベースの検索結果として設定するステップを含むようにしてもよい。このようにすれば、ある属性を管理しているデータベースがプレゼンスデータベースの場合にも対処できるようになる。
また、上記後続検索ステップが、後続検索データベースの中にプレゼンスデータベースが存在する場合には、検索結果管理テーブルから、当該プレゼンスデータベースに係るレコードに含まれる識別子を抽出する後続検索前処理ステップと、プレゼンスデータベース以外の後続検索データベース毎に、記憶装置に格納され且つ当該後続検索データベースに対応する検索条件と先行検索結果マージステップにおいて特定された識別子と後続検索前処理において抽出された識別子とを用いて当該後続検索データベースの検索を行うステップとを含むようにしてもよい。このようにすれば、先行検索によって絞り込まれた識別子をさらに絞り込んだ形でプレゼンスデータベース以外の後続検索データベースを検索することができるようになる。
さらに、プレゼンスシステムから、検索条件と当該検索条件を満たす識別子とを含むプレゼンス更新通知を受信した場合、当該プレゼンス更新通知に従って、検索結果管理テーブルを更新するステップをさらに含むようにしてもよい。検索結果管理テーブルにおいて、プレゼンスデータベースの最新の状態を管理できるようになる。
また、上記先行検索ステップが、先行検索データベースの検索結果におけるヒット件数を、当該先行検索データベースの識別情報と当該先行検索データベースに対応する検索条件とを含むレコードに設定するステップを含むようにしてもよい。このようにすれば、先行検索データベースを決定する際に、各検索条件について当該検索条件の前回の検索におけるヒット件数を用いることができるようになる。
さらに、上記先行検索データベース特定ステップが、記憶装置に格納されている、データベースの識別情報と当該データベースに対応する検索条件とを含むレコードのヒット件数のうち最大値を特定し、当該最大値を基準に所定数を決定するステップを含むようにしてもよい。
また、検索結果管理テーブルにおけるレコードが、検索回数をさらに格納する場合もある。そして、上記先行検索ステップ及び後続検索ステップが、検索対象のデータベースの識別情報と当該データベースに対応する検索条件とを含むレコードの検索回数を1インクリメントするステップを含むようにしてもよい。さらに、所定のタイミングにて、検索回数が多いレコードを優先してキャッシュメモリに登録するステップをさらに含むようにしてもよい。そして、上記先行検索データベース特定ステップにおいて、キャッシュメモリを検索するようにしてもよい。検索条件として指定される頻度の高いものについてはキャッシュメモリに登録しておくことで、処理の高速化を図ることができる。
第2の態様に係る検索装置は、特定の識別子に関連付けられているデータに係る複数の属性を分担して管理している複数のデータベースを検索する検索装置であって、属性に関する検索条件を複数含むAND検索要求を受け付けた場合、データベース毎に当該データベースで管理されている属性を表す情報を格納する属性管理テーブルに基づき、AND検索要求に含まれる複数の検索条件を、データベース別の検索条件に分類し、データベースの識別情報に対応付けて記憶装置に格納する手段(図4の分割処理部13に相当)と、記憶装置に格納されている、データベースの識別情報と当該データベースに対応する検索条件とを基に、データベースの識別情報と検索条件と当該データベースに対する過去の検索において当該検索条件にヒットしたヒット件数とを含むレコードを格納する検索結果管理テーブルを検索し、ヒット件数が所定数以下となるデータベース、又は、ヒット件数によって記憶装置に格納されているデータベースを順位付けした場合の下位所定順位内にあるデータベースを先行検索データベースとして特定する先行検索データベース特定手段(図4の先行検索DB決定部16に相当)と、先行検索データベース毎に、記憶装置に格納され且つ当該先行検索データベースに対応する検索条件を用いて当該先行検索データベースの検索を行う先行検索手段(図4の検索部18に相当)と、先行検索データベースの各検索結果に共通して含まれる識別子を特定する先行検索結果マージ手段(図4の検索部18に相当)と、記憶装置に格納されている、先行検索データベース以外のデータベースである後続検索データベース毎に、記憶装置に格納され且つ当該後続検索データベースに対応する検索条件と先行検索結果マージ手段により特定された識別子とを用いて当該後続検索データベースの検索を行う後続検索手段(図4の検索部18に相当)とを有する。
なお、統合ID管理装置1及び1bをハードウエアと共に実現するためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
なお、統合ID管理装置1及び1bは、図32に示すように、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。OS及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
特定の識別子に関連付けられているデータに係る複数の属性を分担して管理している複数のデータベースを検索するためのプログラムであって、
属性に関する検索条件を複数含むAND検索要求を受け付けた場合、前記データベース毎に当該データベースで管理されている属性を表す情報を格納する属性管理テーブルに基づき、前記AND検索要求に含まれる複数の前記検索条件を、前記データベース別の前記検索条件に分類し、前記データベースの識別情報に対応付けて記憶装置に格納するステップと、
前記記憶装置に格納されている、前記データベースの識別情報と当該データベースに対応する前記検索条件とを基に、前記データベースの識別情報と前記検索条件と当該データベースに対する過去の検索において当該検索条件にヒットしたヒット件数とを含むレコードを格納する検索結果管理テーブルを検索し、前記ヒット件数が所定数以下となる前記データベース、又は、前記ヒット件数によって前記記憶装置に格納されている前記データベースを順位付けした場合の下位所定順位内にある前記データベースを先行検索データベースとして特定する先行検索データベース特定ステップと、
前記先行検索データベース毎に、前記記憶装置に格納され且つ当該先行検索データベースに対応する前記検索条件を用いて当該先行検索データベースの検索を行う先行検索ステップと、
前記先行検索データベースの各検索結果に共通して含まれる前記識別子を特定する先行検索結果マージステップと、
前記記憶装置に格納されている、前記先行検索データベース以外のデータベースである後続検索データベース毎に、前記記憶装置に格納され且つ当該後続検索データベースに対応する前記検索条件と前記先行検索結果マージステップにおいて特定された前記識別子とを用いて当該後続検索データベースの検索を行う後続検索ステップと、
をコンピュータに実行させるための検索プログラム。
(付記2)
前記先行検索結果マージステップが、
前記先行検索データベースの各検索結果に共通して含まれる前記識別子が存在するか判断するステップ
を含み、
前記先行検索データベースの各検索結果に共通して含まれる前記識別子が存在しないと判断された場合、前記後続検索ステップの処理を行わずに検索を終了する
ことを特徴とする付記1記載の検索プログラム。
(付記3)
前記データベースがプレゼンスシステムにて管理されるプレゼンスデータベースの場合には、前記検索結果管理テーブルにおける前記レコードが、当該プレゼンスデータベースで管理されている前記属性の属性名と属性値との組み合わせとして規定される前記検索条件を満たし且つ前記プレゼンスシステムから通知される前記識別子をさらに格納し、
前記先行検索ステップが、
検索対象となる前記先行検索データベースが前記プレゼンスデータベースの場合には、前記検索結果管理テーブルにおける、当該先行検索データベースに係る前記レコードに含まれる前記識別子を、当該先行検索データベースの前記検索結果として設定するステップ
を含む、付記1又は2記載の検索プログラム。
(付記4)
前記後続検索ステップが、
前記後続検索データベースの中に前記プレゼンスデータベースが存在する場合には、前記検索結果管理テーブルから、当該プレゼンスデータベースに係る前記レコードに含まれる前記識別子を抽出する後続検索前処理ステップと、
前記プレゼンスデータベース以外の前記後続検索データベース毎に、前記記憶装置に格納され且つ当該後続検索データベースに対応する前記検索条件と前記先行検索結果マージステップにおいて特定された前記識別子と前記後続検索前処理において抽出された前記識別子とを用いて当該後続検索データベースの検索を行うステップと、
を含む、付記3記載の検索プログラム。
(付記5)
前記プレゼンスシステムから、前記検索条件と当該検索条件を満たす前記識別子とを含むプレゼンス更新通知を受信した場合、当該プレゼンス更新通知に従って、前記検索結果管理テーブルを更新するステップ
をさらにコンピュータに実行させるための付記3又は4記載の検索プログラム。
(付記6)
前記先行検索ステップが、
前記先行検索データベースの前記検索結果における前記ヒット件数を、当該先行検索データベースの識別情報と当該先行検索データベースに対応する前記検索条件とを含む前記レコードに設定するステップ
を含む、付記1乃至5のいずれか1つ記載の検索プログラム。
(付記7)
前記先行検索データベース特定ステップが、
前記記憶装置に格納されている、前記データベースの識別情報と当該データベースに対応する前記検索条件とを含む前記レコードの前記ヒット件数のうち最大値を特定し、当該最大値を基準に前記所定数を決定するステップ
を含む、付記1乃至6のいずれか1つ記載の検索プログラム。
(付記8)
前記検索結果管理テーブルにおける前記レコードが、検索回数をさらに格納し、
前記先行検索ステップ及び前記後続検索ステップが、
検索対象の前記データベースの識別情報と当該データベースに対応する前記検索条件とを含む前記レコードの前記検索回数を1インクリメントするステップ
を含み、
所定のタイミングにて、前記検索回数が多い前記レコードを優先してキャッシュメモリに登録するステップをさらにコンピュータに実行させ、
前記先行検索データベース特定ステップにおいて、前記キャッシュメモリを検索する
ことを特徴とする付記1乃至7のいずれか1つ記載の検索プログラム。
(付記9)
特定の識別子に関連付けられているデータに係る複数の属性を分担して管理している複数のデータベースを検索する検索装置であって、
属性に関する検索条件を複数含むAND検索要求を受け付けた場合、前記データベース毎に当該データベースで管理されている属性を表す情報を格納する属性管理テーブルに基づき、前記AND検索要求に含まれる複数の前記検索条件を、前記データベース別の前記検索条件に分類し、前記データベースの識別情報に対応付けて記憶装置に格納する手段と、
前記記憶装置に格納されている、前記データベースの識別情報と当該データベースに対応する前記検索条件とを基に、前記データベースの識別情報と前記検索条件と当該データベースに対する過去の検索において当該検索条件にヒットしたヒット件数とを含むレコードを格納する検索結果管理テーブルを検索し、前記ヒット件数が所定数以下となる前記データベース、又は、前記ヒット件数によって前記記憶装置に格納されている前記データベースを順位付けした場合の下位所定順位内にある前記データベースを先行検索データベースとして特定する先行検索データベース特定手段と、
前記先行検索データベース毎に、前記記憶装置に格納され且つ当該先行検索データベースに対応する前記検索条件を用いて当該先行検索データベースの検索を行う先行検索手段と、
前記先行検索データベースの各検索結果に共通して含まれる前記識別子を特定する先行検索結果マージ手段と、
前記記憶装置に格納されている、前記先行検索データベース以外のデータベースである後続検索データベース毎に、前記記憶装置に格納され且つ当該後続検索データベースに対応する前記検索条件と前記先行検索結果マージ手段により特定された前記識別子とを用いて当該後続検索データベースの検索を行う後続検索手段と、
を有する検索装置。
(付記10)
特定の識別子に関連付けられているデータに係る複数の属性を複数のデータベースで分担して管理する場合における検索方法であって、
属性に関する検索条件を複数含むAND検索要求を受け付けた場合、前記データベース毎に当該データベースで管理されている属性を表す情報を格納する属性管理テーブルに基づき、前記AND検索要求に含まれる複数の前記検索条件を、前記データベース別の前記検索条件に分類し、前記データベースの識別情報に対応付けて記憶装置に格納するステップと、
前記記憶装置に格納されている、前記データベースの識別情報と当該データベースに対応する前記検索条件とを基に、前記データベースの識別情報と前記検索条件と当該データベースに対する過去の検索において当該検索条件にヒットしたヒット件数とを含むレコードを格納する検索結果管理テーブルを検索し、前記ヒット件数が所定数以下となる前記データベース、又は、前記ヒット件数によって前記記憶装置に格納されている前記データベースを順位付けした場合の下位所定順位内にある前記データベースを先行検索データベースとして特定する先行検索データベース特定ステップと、
前記先行検索データベース毎に、前記記憶装置に格納され且つ当該先行検索データベースに対応する前記検索条件を用いて当該先行検索データベースの検索を行う先行検索ステップと、
前記先行検索データベースの各検索結果に共通して含まれる前記識別子を特定する先行検索結果マージステップと、
前記記憶装置に格納されている、前記先行検索データベース以外のデータベースである後続検索データベース毎に、前記記憶装置に格納され且つ当該後続検索データベースに対応する前記検索条件と前記先行検索結果マージステップにおいて特定された前記識別子とを用いて当該後続検索データベースの検索を行う後続検索ステップと、
を含み、コンピュータにより実行される検索方法。
1,1b 統合ID管理装置
11 入力部 12 属性管理テーブル格納部
13 分割処理部 14 キャッシュ
15 検索結果管理テーブル格納部 16 先行検索DB決定部
17 配列データ格納部 18 検索部
19 キャッシュコントローラ 20 検索結果格納部
21 出力部 22 検索結果管理テーブル更新部

Claims (6)

  1. 特定の識別子に関連付けられているデータに係る複数の属性を分担して管理している複数のデータベースを検索するためのプログラムであって、
    属性に関する検索条件を複数含むAND検索要求を受け付けた場合、前記データベース毎に当該データベースで管理されている属性を表す情報を格納する属性管理テーブルに基づき、前記AND検索要求に含まれる複数の前記検索条件を、前記データベース別の前記検索条件に分類し、前記データベースの識別情報に対応付けて記憶装置に格納するステップと、
    前記記憶装置に格納されている、前記データベースの識別情報と当該データベースに対応する前記検索条件とを基に、前記データベースの識別情報と前記検索条件と当該データベースに対する過去の検索において当該検索条件にヒットしたヒット件数とを含むレコードを格納する検索結果管理テーブルを検索し、前記ヒット件数が所定数以下となる前記データベース、又は、前記ヒット件数によって前記記憶装置に格納されている前記データベースを順位付けした場合の下位所定順位内にある前記データベースを先行検索データベースとして特定する先行検索データベース特定ステップと、
    前記先行検索データベース毎に、前記記憶装置に格納され且つ当該先行検索データベースに対応する前記検索条件を用いて当該先行検索データベースの検索を行う先行検索ステップと、
    前記先行検索データベースの各検索結果に共通して含まれる前記識別子を特定する先行検索結果マージステップと、
    前記記憶装置に格納されている、前記先行検索データベース以外のデータベースである後続検索データベース毎に、前記記憶装置に格納され且つ当該後続検索データベースに対応する前記検索条件と前記先行検索結果マージステップにおいて特定された前記識別子とを用いて当該後続検索データベースの検索を行う後続検索ステップと、
    をコンピュータに実行させるための検索プログラム。
  2. 前記先行検索結果マージステップが、
    前記先行検索データベースの各検索結果に共通して含まれる前記識別子が存在するか判断するステップ
    を含み、
    前記先行検索データベースの各検索結果に共通して含まれる前記識別子が存在しないと判断された場合、前記後続検索ステップの処理を行わずに検索を終了する
    ことを特徴とする請求項1記載の検索プログラム。
  3. 前記データベースがプレゼンスシステムにて管理されるプレゼンスデータベースの場合には、前記検索結果管理テーブルにおける前記レコードが、当該プレゼンスデータベースで管理されている前記属性の属性名と属性値との組み合わせとして規定される前記検索条件を満たし且つ前記プレゼンスシステムから通知される前記識別子をさらに格納し、
    前記先行検索ステップが、
    検索対象となる前記先行検索データベースが前記プレゼンスデータベースの場合には、前記検索結果管理テーブルにおける、当該先行検索データベースに係る前記レコードに含まれる前記識別子を、当該先行検索データベースの前記検索結果として設定するステップ
    を含む、請求項1又は2記載の検索プログラム。
  4. 前記後続検索ステップが、
    前記後続検索データベースの中に前記プレゼンスデータベースが存在する場合には、前記検索結果管理テーブルから、当該プレゼンスデータベースに係る前記レコードに含まれる前記識別子を抽出する後続検索前処理ステップと、
    前記プレゼンスデータベース以外の前記後続検索データベース毎に、前記記憶装置に格納され且つ当該後続検索データベースに対応する前記検索条件と前記先行検索結果マージステップにおいて特定された前記識別子と前記後続検索前処理において抽出された前記識別子とを用いて当該後続検索データベースの検索を行うステップと、
    を含む、請求項3記載の検索プログラム。
  5. 特定の識別子に関連付けられているデータに係る複数の属性を分担して管理している複数のデータベースを検索する検索装置であって、
    属性に関する検索条件を複数含むAND検索要求を受け付けた場合、前記データベース毎に当該データベースで管理されている属性を表す情報を格納する属性管理テーブルに基づき、前記AND検索要求に含まれる複数の前記検索条件を、前記データベース別の前記検索条件に分類し、前記データベースの識別情報に対応付けて記憶装置に格納する手段と、
    前記記憶装置に格納されている、前記データベースの識別情報と当該データベースに対応する前記検索条件とを基に、前記データベースの識別情報と前記検索条件と当該データベースに対する過去の検索において当該検索条件にヒットしたヒット件数とを含むレコードを格納する検索結果管理テーブルを検索し、前記ヒット件数が所定数以下となる前記データベース、又は、前記ヒット件数によって前記記憶装置に格納されている前記データベースを順位付けした場合の下位所定順位内にある前記データベースを先行検索データベースとして特定する先行検索データベース特定手段と、
    前記先行検索データベース毎に、前記記憶装置に格納され且つ当該先行検索データベースに対応する前記検索条件を用いて当該先行検索データベースの検索を行う先行検索手段と、
    前記先行検索データベースの各検索結果に共通して含まれる前記識別子を特定する先行検索結果マージ手段と、
    前記記憶装置に格納されている、前記先行検索データベース以外のデータベースである後続検索データベース毎に、前記記憶装置に格納され且つ当該後続検索データベースに対応する前記検索条件と前記先行検索結果マージ手段により特定された前記識別子とを用いて当該後続検索データベースの検索を行う後続検索手段と、
    を有する検索装置。
  6. 特定の識別子に関連付けられているデータに係る複数の属性を複数のデータベースで分担して管理する場合における検索方法であって、
    属性に関する検索条件を複数含むAND検索要求を受け付けた場合、前記データベース毎に当該データベースで管理されている属性を表す情報を格納する属性管理テーブルに基づき、前記AND検索要求に含まれる複数の前記検索条件を、前記データベース別の前記検索条件に分類し、前記データベースの識別情報に対応付けて記憶装置に格納するステップと、
    前記記憶装置に格納されている、前記データベースの識別情報と当該データベースに対応する前記検索条件とを基に、前記データベースの識別情報と前記検索条件と当該データベースに対する過去の検索において当該検索条件にヒットしたヒット件数とを含むレコードを格納する検索結果管理テーブルを検索し、前記ヒット件数が所定数以下となる前記データベース、又は、前記ヒット件数によって前記記憶装置に格納されている前記データベースを順位付けした場合の下位所定順位内にある前記データベースを先行検索データベースとして特定する先行検索データベース特定ステップと、
    前記先行検索データベース毎に、前記記憶装置に格納され且つ当該先行検索データベースに対応する前記検索条件を用いて当該先行検索データベースの検索を行う先行検索ステップと、
    前記先行検索データベースの各検索結果に共通して含まれる前記識別子を特定する先行検索結果マージステップと、
    前記記憶装置に格納されている、前記先行検索データベース以外のデータベースである後続検索データベース毎に、前記記憶装置に格納され且つ当該後続検索データベースに対応する前記検索条件と前記先行検索結果マージステップにおいて特定された前記識別子とを用いて当該後続検索データベースの検索を行う後続検索ステップと、
    を含み、コンピュータにより実行される検索方法。
JP2009063104A 2009-03-16 2009-03-16 検索方法、検索プログラム及び検索装置 Expired - Fee Related JP5257172B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009063104A JP5257172B2 (ja) 2009-03-16 2009-03-16 検索方法、検索プログラム及び検索装置
EP10154565A EP2230611A3 (en) 2009-03-16 2010-02-24 Search device, search method, and search program
US12/723,232 US8402052B2 (en) 2009-03-16 2010-03-12 Search device, search method, and computer-readable recording medium storing search program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009063104A JP5257172B2 (ja) 2009-03-16 2009-03-16 検索方法、検索プログラム及び検索装置

Publications (2)

Publication Number Publication Date
JP2010218131A JP2010218131A (ja) 2010-09-30
JP5257172B2 true JP5257172B2 (ja) 2013-08-07

Family

ID=42329052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009063104A Expired - Fee Related JP5257172B2 (ja) 2009-03-16 2009-03-16 検索方法、検索プログラム及び検索装置

Country Status (3)

Country Link
US (1) US8402052B2 (ja)
EP (1) EP2230611A3 (ja)
JP (1) JP5257172B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073729B (zh) * 2011-01-14 2013-03-06 百度在线网络技术(北京)有限公司 一种关系化知识共享平台及其实现方法
JP5774340B2 (ja) * 2011-03-23 2015-09-09 生活協同組合コープさっぽろ 職員情報提供サーバ、及び職員情報提供処理プログラム
CN102214207A (zh) * 2011-04-27 2011-10-12 百度在线网络技术(北京)有限公司 一种用于对信息实体中的属性集合进行排序的方法与设备
JP6036268B2 (ja) * 2012-12-20 2016-11-30 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理方法、及び、コンピュータプログラム
JP2014219753A (ja) * 2013-05-02 2014-11-20 株式会社リコー 情報処理システム、情報処理装置及びプログラム
JP6107429B2 (ja) * 2013-05-30 2017-04-05 富士通株式会社 データベースシステム、検索方法およびプログラム
US9870415B2 (en) * 2013-09-18 2018-01-16 Quintiles Ims Incorporated System and method for fast query response
JP6167015B2 (ja) * 2013-10-30 2017-07-19 富士通株式会社 情報処理システム、管理プログラム、及びインデックス管理方法
JP6229997B2 (ja) * 2013-11-14 2017-11-15 富士ゼロックス株式会社 データ管理システム及びプログラム
US9952894B1 (en) 2014-01-27 2018-04-24 Microstrategy Incorporated Parallel query processing
US10635669B1 (en) 2014-01-27 2020-04-28 Microstrategy Incorporated Data engine integration and data refinement
US11921715B2 (en) 2014-01-27 2024-03-05 Microstrategy Incorporated Search integration
US10255320B1 (en) 2014-01-27 2019-04-09 Microstrategy Incorporated Search integration
US11386085B2 (en) 2014-01-27 2022-07-12 Microstrategy Incorporated Deriving metrics from queries
JP6583989B2 (ja) * 2015-04-21 2019-10-02 昭和電工株式会社 SiC単結晶シード、SiCインゴット、SiC単結晶シードの製造方法及びSiC単結晶インゴットの製造方法
US20170147652A1 (en) * 2015-11-19 2017-05-25 Institute For Information Industry Search servers, end devices, and search methods for use in a distributed network
CN107203548A (zh) * 2016-03-17 2017-09-26 阿里巴巴集团控股有限公司 属性获取方法和装置
JP6571046B2 (ja) * 2016-06-21 2019-09-04 株式会社東芝 サーバ装置、情報処理方法及びプログラム
US10846318B1 (en) 2017-04-18 2020-11-24 Microstrategy Incorporated Natural language visualizations
IT201700082320A1 (it) * 2017-07-19 2019-01-19 Nuovo Pignone Tecnologie Srl Sistema di ricerca per banche dati e metodo
JP7131314B2 (ja) * 2018-11-09 2022-09-06 富士通株式会社 情報管理プログラム、情報管理方法、情報管理装置、情報処理プログラム、情報処理方法及び情報処理装置
US11195050B2 (en) 2019-02-05 2021-12-07 Microstrategy Incorporated Machine learning to generate and evaluate visualizations
JP6797963B2 (ja) * 2019-03-29 2020-12-09 株式会社エヌ・ティ・ティ・データ 匿名加工対象特定方法、匿名加工対象特定システム及びプログラム
US11614970B2 (en) 2019-12-06 2023-03-28 Microstrategy Incorporated High-throughput parallel data transmission
US11567965B2 (en) 2020-01-23 2023-01-31 Microstrategy Incorporated Enhanced preparation and integration of data sets
CN113407574B (zh) * 2021-07-20 2024-04-26 广州博冠信息科技有限公司 多表分页查询方法、装置、设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02297670A (ja) * 1989-05-12 1990-12-10 Matsushita Electric Ind Co Ltd データベース検索方式
JP3367140B2 (ja) * 1993-04-28 2003-01-14 株式会社日立製作所 データベース管理方法
US7599910B1 (en) * 1993-11-16 2009-10-06 Hitachi, Ltd. Method and system of database divisional management for parallel database system
US5724571A (en) * 1995-07-07 1998-03-03 Sun Microsystems, Inc. Method and apparatus for generating query responses in a computer-based document retrieval system
JPH0934759A (ja) 1995-07-21 1997-02-07 Omron Corp チューニング情報作成装置およびチューニング情報作成方法
JPH1196168A (ja) * 1997-09-17 1999-04-09 Hitachi Information Systems Ltd 並列検索/統計処理システムおよび並列検索/統計処理方法、ならびに該方法を実現するためのプログラムを記録した記録媒体
JP4048006B2 (ja) * 1999-09-03 2008-02-13 富士フイルム株式会社 データベース検索システムおよび方法
EP1316011A4 (en) * 2000-06-30 2008-01-23 Information Bionics Inc SHEET MEMORY CELLS AND SHEET MEMORY CELL GENERATIONS
JP4005425B2 (ja) * 2002-06-28 2007-11-07 富士通株式会社 検索結果ランキング変更処理プログラム、検索結果ランキング変更処理プログラム記録媒体、およびコンテンツ検索処理方法
US7146360B2 (en) * 2002-12-18 2006-12-05 International Business Machines Corporation Method and system for improving response time for database query execution
JP4327481B2 (ja) 2003-03-17 2009-09-09 株式会社日立製作所 データベースシステム、サーバ、問い合わせ投入方法及びデータ更新方法
US7130838B2 (en) * 2003-09-11 2006-10-31 International Business Machines Corporation Query optimization via a partitioned environment
JP2006004024A (ja) * 2004-06-16 2006-01-05 Fujitsu Ltd ディレクトリサーバに実行させるためのプログラム
US20060212429A1 (en) * 2005-03-17 2006-09-21 Microsoft Corporation Answering top-K selection queries in a relational engine
JP2007249785A (ja) * 2006-03-17 2007-09-27 Fujitsu Ltd コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法
US9069745B2 (en) * 2007-01-16 2015-06-30 Ebay, Inc. Electronic form automation
JP2008217600A (ja) 2007-03-06 2008-09-18 Fujitsu Ltd 情報検索装置、情報検索方法、情報検索プログラム、及び記録媒体
JP2007213601A (ja) 2007-04-06 2007-08-23 Rakuten Inc 複数個のデータベースを探索する方法および複数個のデータベース間で文献を探索する方法

Also Published As

Publication number Publication date
EP2230611A2 (en) 2010-09-22
EP2230611A3 (en) 2012-12-26
US8402052B2 (en) 2013-03-19
US20100235390A1 (en) 2010-09-16
JP2010218131A (ja) 2010-09-30

Similar Documents

Publication Publication Date Title
JP5257172B2 (ja) 検索方法、検索プログラム及び検索装置
US8868595B2 (en) Enhanced control to users to populate a cache in a database system
US10019536B2 (en) Snapshot-consistent, in-memory graph instances in a multi-user database
US8671313B2 (en) Management apparatus and management method
JP5014399B2 (ja) 検索データ管理装置
US20110154339A1 (en) Incremental mapreduce-based distributed parallel processing system and method for processing stream data
US20080208808A1 (en) Configuring searches
JP5014398B2 (ja) 検索データ管理装置
WO2017096892A1 (zh) 索引构建方法、查询方法及对应装置、设备、计算机存储介质
US6560631B1 (en) Data analysis in distributed data processing system
CN110427386B (zh) 数据处理方法、装置及计算机存储介质
EP3997589A1 (en) Delta graph traversing system
JP2012108875A (ja) データベースの管理方法
CN115705313A (zh) 一种数据处理方法、装置、设备及计算机可读存储介质
US11681682B2 (en) Data processing system and cache update control method
JPH10111821A (ja) クライアント・サーバー・システム
CN102799996A (zh) 网络广告策略匹配方法及系统
CN114610719A (zh) 跨集群数据处理方法、装置、电子设备以及存储介质
JP2012198709A (ja) 検索制御プログラム、検索方法、検索システム
WO2018225389A1 (ja) 計算機システム及びデータの分析方法
JPH117445A (ja) 統合化文書管理装置
CN112860813B (zh) 检索信息的方法和装置
US12072903B2 (en) Data management system for managing inferences
WO2021238691A1 (zh) 用于管理存储设备的用户界面显示的方法和装置
CN110602198B (zh) 一种客户端网络请求链接配置方法和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130321

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130408

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160502

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees