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

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

Info

Publication number
JP6881124B2
JP6881124B2 JP2017141722A JP2017141722A JP6881124B2 JP 6881124 B2 JP6881124 B2 JP 6881124B2 JP 2017141722 A JP2017141722 A JP 2017141722A JP 2017141722 A JP2017141722 A JP 2017141722A JP 6881124 B2 JP6881124 B2 JP 6881124B2
Authority
JP
Japan
Prior art keywords
data
search
type
tag
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.)
Active
Application number
JP2017141722A
Other languages
English (en)
Other versions
JP2019021238A (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 JP2017141722A priority Critical patent/JP6881124B2/ja
Priority to US16/038,854 priority patent/US10942969B2/en
Publication of JP2019021238A publication Critical patent/JP2019021238A/ja
Application granted granted Critical
Publication of JP6881124B2 publication Critical patent/JP6881124B2/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/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; 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/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion

Description

検索制御プログラム、検索制御方法および検索制御装置に関する。
スキーマレスDB(Database)と呼ばれる技術が存在する。例えば、リレーショナルDBのデータベース管理システムにおいては、格納するデータの型を、スキーマによって予め定義しておく必要がある。そして、一旦定義されたスキーマについては、データベースの稼動後に変更を行なうことが難しい。
対して、スキーマレスDBでは、スキーマによる事前定義を行なう必要はなく、データの格納後にもデータベースのデータ構造を比較的容易に変更することができるという利点を有する。
国際公開2010/106681号公報
しかしながら、上述したスキーマレスDBにも短所が存在する。例えば、XML形式のデータを格納するスキーマレスDBの場合、データベースに格納されるデータはテキスト形式のデータとなる。
ここで、テキスト形式で格納されたデータに対して、例えば、数値での大小比較を要する検索条件(例:あるデータ項目の値が○○以上のレコードを抽出する、など)に基づき検索処理が実行されることとする。すると、大小比較を行なうためには、検索範囲のデータが数値形式であることが必要となる。そのため、データベース管理システムでは、テキスト形式(例えば文字列型)のデータの型変換が行なわれ、データの型が数値形式(例えば整数型や浮動小数点数型)のデータが生成される。そして、生成された数値形式のデータを用いて、検索条件に合致するデータの検索が行なわれる。
スキーマによって予め定められた型でデータが格納されたデータベースと比較すると、検索処理においてデータの型変換の処理(データの型を変更したデータを生成する処理)が発生する。そのため、受信した検索条件(検索要求)に対する応答速度が低下するという問題がある。
格納された元データと異なるデータ型による検索が発生することを考慮し、元データ以外のデータ型のデータを事前に生成しておくことも考えられる。ただし、事前に生成したデータのデータ型と検索において要するデータ型とが異なる場合には、依然としてデータの型変換の処理が必要となるため、応答速度は低下してしまう。一方、検索で指定されうる全てのデータ型に対応する型変換データを事前に生成しておくことも考えられるが、事前処理の負荷や必要な記憶領域が膨大になるという側面もあり、実現には困難性を伴う。
1つの側面では、本発明は、データベースの検索処理性能の向上を目的とする。
1つの態様では、コンピュータに、データベースに記憶されたデータに対する検索条件を受信した場合、受信した前記検索条件において指定されたデータの格納位置とデータの型とを特定し、データの格納位置とデータの型との組み合わせごとに、組み合わせが検索条件で指定された回数を計数し、少なくとも1つのデータの格納位置に対応するデータについて、計数の結果に基づいて決定されたデータの型に変換した型変換データを、前記少なくとも1つのデータの格納位置と対応付けて記憶部に記憶し、前記少なくとも1つのデータの格納位置および決定された前記データの型を指定する検索条件を受信した場合、前記記憶部に記憶した前記型変換データを用いて、前記指定する検索条件に対する検索結果が生成されるように制御する、処理を実行させる。
1つの側面によれば、データベースの検索処理性能を向上できる。
本実施例におけるシステム構成の一例を示す。 管理装置1の機能的構成を示す機能ブロック図を示す。 検索処理装置2の機能的構成を示す機能ブロック図を示す。 端末装置3の機能的構成を示す機能ブロック図を示す。 XMLデータ記憶部121に記憶されるデータの一例を示す。 タグ管理情報記憶部122に記憶されるデータの一例を示す。 検索補助データ記憶部221に記憶されるデータの一例を示す。 管理装置1が受信した検索クエリについての解析処理の流れを示すフローチャートを示す。 検索条件の一例を示す。 関数とデータ型との対応関係を示す。 解析情報記憶部123が記憶する情報の一例を示す。 データ管理部112が実行する処理の流れを説明するフローチャートを示す。 ステップS1205の例示における更新後のタグ管理情報記憶部122に記憶された情報の態様を示す。 生成された型変換データと、型変換データの格納位置を示す情報とが記憶された検索補助データ記憶部221の態様を示す。 データ検索処理の一連の処理の流れを示すフローチャートを示す。 追加のデータが記憶された場合に実行される一連の処理を示すフローチャートを示す。 本実施例における管理装置1のハードウェア構成の一例を示す。
本発明を実施する実施例について、図面とともに説明をする。
〔概観〕
図1は、本実施例におけるシステム構成の一例を示す図である。図1に示す情報処理システムは、管理装置1、検索処理装置2−1〜2−n、端末装置3を含む。
管理装置1は、端末装置3から受信した検索要求に基づく、データの検索処理の制御を実行する。管理装置1は、ネットワーク4を介して、端末装置3と有線または無線で通信可能に接続されている。管理装置1は、ハードウェアとして例えばサーバ装置などのコンピュータによって実現されても良い。
検索処理装置2−1〜2−nのそれぞれは、端末装置3から受信した検索要求に基づく、データの検索処理を実行する。検索処理装置2−1〜2−nのそれぞれは、ネットワーク4を介して、管理装置1と有線または無線で通信可能に接続されている。検索処理装置2−1〜2−nのそれぞれは、ハードウェアとして例えばサーバ装置などのコンピュータによって実現されても良い。図1では、情報処理システムが複数の検索処理装置を含み、データの検索を並列処理あるいは分散処理することができるようになっている。ただし、検索処理装置の具体的な台数や構成は、図1に示す態様のみに限定される必要はない。なお、以降の説明では、検索処理装置2−1〜2−nのうちの任意の検索処理装置を単に検索処理装置2と記載することがある。
端末装置3は、管理装置1に対して、データの検索要求を送信する。なお、本実施例において、以降、データの検索要求を検索クエリと記載することがある。検索要求に対する検索結果は、例えば、端末装置3において確認することが可能である。端末装置3は、例えば、PC(Personal Computer)や、スマートフォン、PDA(Personal Digital Assistant)などの情報処理装置である。
情報処理システムにおけるデータの検索処理の概要を説明すると、まず、端末装置3から、検索クエリが管理装置1に送信される。検索クエリを受信した管理装置1は、受信した検索クエリの内容に基づいて、1または複数の検索処理装置2にデータの検索処置を実行させる。その後、管理装置1は検索処理装置2の処理結果を集約し、検索結果を生成する。そして、管理装置1は検索結果を端末装置3に送信する。なお、以上に記載した説明はあくまで検索処理の概要であり、詳細については後述する。
〔管理装置1の機能構成〕
図2は、管理装置1の機能的構成を示す機能ブロック図である。管理装置1は、例えば、通信部101、入力部102、出力部103、処理部110、記憶部120を備える。
通信部101は、有線または無線で、検索処理装置2−1〜2−nを含む他の装置との通信を実行することが可能である。通信部101は、例えば、管理装置1が備えるネットワークアダプタやNIC(Network Interface Controller)などの通信デバイスである。
入力部102は、ユーザー(システム管理者を含む)からの情報入力や操作を受け付ける。入力部102は、ハードウェアとしては、例えば、キーボードやマウス、タッチパッド等である。出力部103は、記憶部120に記憶された種々の情報や、データの検索処理の結果を出力することが可能である。出力部103は、ハードウェアとしては、例えば、液晶ディスプレイである。なお、入力部102、出力部103については、例えば、入力部102、出力部103の機能、ハードウェアを備える他の情報処理装置により管理装置1をリモート操作可能である場合には、必ずしも管理装置1に備えられなくても良い。
処理部110は、クエリ解析部111、データ管理部112、クエリ変換部113、検索制御部114を備える。
クエリ解析部111は、端末装置3から受信した検索クエリの解析処理を実行する。
データ管理部112は、後述するXML(eXtensible Markup Language)データ記憶部121に記憶されたデータの管理を実行する。また、データ管理部112は、XMLデータ記憶部121に記憶されたデータに関連した、タグ管理情報記憶部122、および解析情報記憶部123に記憶された情報の更新処理を実行する。また、データ管理部112は、特定部、計数処理部の一態様である。
クエリ変換部113は、端末装置3から受信した検索クエリを検索処理装置2−1〜2−nに送信する際の、クエリの変換処理を実行する。
検索制御部114は、端末装置3から受信した検索クエリに応じたデータの検索処理についての制御を実行する。例えば、検索制御部114は、検索処理装置2に対して検索クエリを送信し、検索処理装置2から受信した検索結果を集約して、端末装置3に検索結果を送信する。
記憶部120は、XMLデータ記憶部121、タグ管理情報記憶部122、解析情報記憶部123、バッファ124を備える。
XMLデータ記憶部121は、検索対象のデータを記憶する記憶部である。本実施例においては、検索対象のデータはXML形式のデータとなっている。言い換えれば、本実施例における情報処理システムは、XML形式のデータを格納するデータベースと言える。
タグ管理情報記憶部122は、XMLデータ記憶部121に記憶されたデータについてのタグ情報を記憶する記憶部である。
解析情報記憶部123は、端末装置3から受信した検索クエリを解析した解析結果を記憶(蓄積)する記憶部である。
バッファ124は、例えば、端末装置3から受信した検索クエリや、検索処理装置2から受信した処理結果等を一時的に記憶する記憶領域として使用することができる。
〔検索処理装置2の機能構成〕
図3は、検索処理装置2の機能的構成を示す機能ブロック図である。検索処理装置2は、例えば、通信部201、入力部202、出力部203、処理部210、記憶部220を備える。
通信部201は、有線または無線で、管理装置1を含む他の装置との通信を実行することが可能である。通信部201は、例えば、検索処理装置2が備えるネットワークアダプタやNICなどの通信デバイスである。
入力部202は、ユーザー(システム管理者を含む)からの情報入力や操作を受け付ける。入力部202は、ハードウェアとしては、例えば、キーボードやマウス、タッチパッド等である。出力部203は、例えば、検索処理装置2が実行したデータの検索処理の結果を出力することが可能である。出力部203は、ハードウェアとしては、例えば、液晶ディスプレイである。なお、入力部202、出力部203については、管理装置1と同様に、入力部202、出力部203の機能、ハードウェアを備える他の情報処理装置により検索処理装置2をリモート操作可能である場合には、必ずしも検索処理装置2に備えられなくても良い。
処理部210は、検索処理部211を備える。検索処理部211は、管理装置1から要求された検索処理を実行する。
記憶部220は、検索補助データ記憶部221、バッファ222を備える。
検索補助データ記憶部221は、検索処理装置2が実行するデータの検索処理に用いられる検索補助データを記憶する。
バッファ222は、例えば、データの検索処理の処理結果や、検索処理の途中段階で生成されるデータ等を一時的に記憶する記憶領域として使用することができる。
〔端末装置3の機能構成〕
図4は、端末装置3の機能的構成を示す機能ブロック図である。端末装置3は、例えば、通信部301、入力部302、出力部303、処理部310、記憶部320を備える。
通信部301は、有線または無線で、管理装置1を含む他の装置との通信を実行することが可能である。通信部301は、例えば、端末装置3が備えるネットワークアダプタやNICなどの通信デバイスである。
入力部302は、ユーザー(システム管理者を含む)からの情報入力や操作(検索要求の入力や送信操作を含む)を受け付ける。入力部302は、ハードウェアとしては、例えば、キーボードやマウス、タッチパッド等である。出力部303は、例えば、端末装置3が実行した検索要求に基づいて実行された検索処理の結果を出力することが可能である。出力部203は、ハードウェアとしては、例えば、液晶ディスプレイである。
処理部310は、検索クエリの送信、検索結果の受信、検索結果の出力を含む、端末装置3で実行される種々の処理の制御を実行する。
記憶部320は、例えば、検索結果のデータの記憶に使用することができる。
〔XMLデータ記憶部121〕
図5は、XMLデータ記憶部121に記憶されるデータの一例を示す図である。XMLデータ記憶部121は、図5に示すようなXML形式のデータを格納する。なお、図5に示すデータはXML形式に従ったタグを用いて構造化されたテキスト形式のデータである。なお、以降の説明では、図5に示すようなXML形式のデータをXMLデータと記載することがある。
〔タグ管理情報記憶部122〕
図6は、タグ管理情報記憶部122に記憶されるデータの一例を示す図である。タグ管理情報記憶部122は、例えば、タグ情報1221とタグID(identifier)1222とを関連付けて記憶する。
タグ情報1221は、XMLデータ記憶部121に記憶されるXMLデータに含まれるデータ値へのタグを示す情報である。タグID1222は、タグ情報1221に示されるタグのそれぞれを一意に識別可能とする識別情報である。
例えば、図6に示すタグ情報1221とタグID1222は、図5を用いて例示したXMLデータに対応している。図5のXMLデータ501では、タグ<root>がまず存在し、タグ<root>の下位層にタグ<id>、タグ<cost>、タグ<ymd>が存在する。なお、図6および以降の説明では、例えば、タグ<root>の下位層にタグ<id>が存在するというタグを「/root/id」と記載する。
図5のXMLデータ501を例とした場合、XMLデータ501には、タグ「/root」、タグ「/root/id」、タグ「/root/cost」、タグ「/root/ymd」の4つのタグが出現すると言える。図6に示すタグ情報1221とタグID1222は、この4つのタグそれぞれを示すものである。そして、例えば、図6に示すように、タグ「/root」に対してタグID「1」が設定される。同様に、他のタグそれぞれに対しても、図6に示すようにタグIDが設定される。
以上のように、タグ管理情報記憶部122は、XMLデータ記憶部121に記憶されるXMLデータに出現する全種類のタグそれぞれに対して、一意のタグIDを関連付けた情報を記憶する。ただし、XMLデータ501以外のXMLデータに同一のタグが出現する場合は、タグ情報1221およびタグID1222は重複して記憶される必要はない。例えば、図5に示すXMLデータ501とXMLデータ502がXMLデータ記憶部121に記憶されている場合、XMLデータ502に出現するタグはXMLデータ501に出現するタグと同一である。このような場合は、図6に示すタグ情報1221およびタグID1222によって、管理装置1は、XMLデータ501とXMLデータ502とに出現するタグをまとめて管理できる。ただし、図5および図6はあくまで本実施例を説明するための例示であり、XMLデータ記憶部121に記憶されるXMLデータの変化に応じて、タグ管理情報記憶部122に記憶される情報も適宜変化する。
〔検索補助データ記憶部221〕
図7は、検索補助データ記憶部221に記憶されるデータの一例を示す図である。図7の例では、検索補助データ記憶部221は、例えば、XMLデータID2221、タグID2222、データ値2223を関連付けて記憶する。
XMLデータID2221は、XMLデータ記憶部121に記憶されるXMLデータそれぞれを一意に識別する識別情報である。説明のため、図7においては、図5のXMLデータ501のXMLデータIDを「Rec_#1」、XMLデータ502のXMLデータIDを「Rec_#2」とする。ただし、XMLデータそれぞれを一意に識別可能であれば、XMLデータID2221の具体的なデータの形式や値は適宜変更されても良い。
タグID2222は、XMLデータに出現するタグそれぞれを一意に識別可能とする識別情報であり、図6のタグID1222と同様の情報である。つまり、タグID2222は、タグ管理情報記憶部122において、タグID2222と同一の値のタグID1222と関連付けられたタグ情報1221に示されるタグを示す識別情報であると言える。
データ値2223は、XMLデータに含まれる、タグに対応する値を示す情報である。
図5および図7を例として説明すると、XMLデータ501には、データの値として、タグ「/root/id」の値「item001」、タグ「/root/cost」の値「100円」、タグ「/root/ymd」の値「2017/01/01」が含まれる。なお、タグ「/root」に対応する値はない。この態様に対応する情報として、検索補助データ記憶部221は、図7に示すデータ222−#1を記憶する。検索処理装置2は、データ222−#1を参照することによって、XMLデータ501自体を走査しなくとも、XMLデータ501に含まれるデータの値とその値に対応するタグが特定可能となる。言い換えれば、XMLデータ記憶部121に記憶される全てのXMLデータについての情報が検索補助データ記憶部221に記憶されていれば、検索処理装置2はXMLデータ記憶部121を走査せずに、データの検索処理を実行することができる。
なお、図7に示す種々の情報は、XMLデータ記憶部121に記憶されるXMLデータの全てに対して生成され、XMLデータの追加、更新、削除等に応じて更新される。本実施例に示す情報処理システムのように、管理装置1、検索処理装置2が別個の装置であり、検索処理装置2を複数備える場合には、検索処理装置2の台数に応じて分割された情報が、複数の検索処理装置2それぞれに記憶されることとしても良い。これにより、複数の検索処理装置2を用いたデータ検索における並列処理や分散処理が可能となる。なお、検索補助データ記憶部221に記憶される情報は、例えば、管理装置1または検索処理装置2が、国際公開2010/106681号公報に記載される技術等を利用して、XMLデータを走査、解析することで生成することができる。
〔解析処理〕
図8は、管理装置1が受信した検索クエリについての解析処理(クエリ解析処理)の流れを示すフローチャートである。図8を用いて説明するクエリ解析処理は、管理装置1が端末装置3から検索クエリを受信したことに応じて逐次実行されても良い。あるいは、クエリ解析処理は、一定期間内に受信した検索クエリについての解析処理が、システム管理者等によって設定されたタイミングでまとめて実行されることとしても良い。
まず、管理装置1のクエリ解析部111は、対象となる全ての検索クエリが解析済みであるか否かを判定する(ステップS801)。ここで、対象となる全ての検索クエリとは、クエリ解析処理が端末装置3から検索クエリを受信したことに応じて逐次実行される場合は、受信した最新の検索クエリである。また、一定期間内に受信した検索クエリについての解析処理がまとめて実行される場合は、対象となる全ての検索クエリとは、一定期間内に受信した全ての検索クエリである。一定期間内に受信した検索クエリについての解析処理がまとめて実行される場合は、例えば、管理装置1は、一定期間内に受信した検索クエリをバッファ124に記憶し、クエリ解析処理の際に必要に応じてバッファ124から検索クエリの読み出しを行なうこととしても良い。
対象となる全ての検索クエリが解析済みである場合(ステップS801、YES)、図8に示すクエリ解析処理は終了される。
一方、対象となる全ての検索クエリが解析済みでない場合(ステップS801、NO)、クエリ解析部111は、対象となる検索クエリの1つを選択する(ステップS802)。
クエリ解析部111は、選択された検索クエリを解析し、検索クエリに指定される検索条件を特定する(ステップS803)。そして、クエリ解析部111は、検索条件に指定されたタグとデータの型(データ型)を特定する(ステップS804)。
図9は、検索条件の一例を示す図である。図9の検索条件901は、タグ「/root/cost」のテキストデータの値が100より大きいXMLデータを検索する、という検索条件である。ここで、XMLデータは、文字列型のデータ値が記述されているが、検索条件901においては、val関数を用いて、「100より大きい」という検索条件が指定されている。また、val関数は、数値型のデータ値を引数とする関数である。このため、図9の検索条件に基づく検索処理においては、データ値について数値データとしての大小比較の処理が行なわれるため、データ値が数値型である必要がある。つまり、図9の検索条件901は、数値型のデータ型を指定する検索条件と言える。
検索条件に指定されたデータ型の特定について、クエリ解析部111は、例えば、検索条件に用いられている関数(例えば、検索条件901の場合はval関数が用いられているということ)に基づいて、データ型を特定することができる。
図10は、関数とデータ型との対応関係を示す図である。図10においては、関数の名前を示す関数名1001と、関数に対応したデータ型を示すデータ型情報1002とが関連付けられている。
図10に示すように、指定される(引数となる)データ型は関数ごとに異なる。そのため、検索条件に含まれる関数、およびその関数に指定されるデータ型を特定することで、検索条件に指定されたデータ型を特定することができる。例えば、図10においては、val関数はデータ型としてint型(数値型)を指定する関数であり、cdate関数は、データ型としてdate型(日付型)を指定する関数であることを示している。なお、図10に示すような、各関数とデータ型との対応関係は、例えば管理装置1の記憶部120の記憶領域に予め保持されていても良い。あるいは、情報処理システムの稼働中に、関数の処理によって実際に取得(変換)されたデータのデータ型を特定することで、各関数とデータ型との対応関係が特定されることとしても良い。
図8の説明に戻ると、ステップS804の終了後、クエリ解析部111は、解析情報記憶部123に記憶された情報を参照する(ステップS805)。そして、クエリ解析部111は、ステップS804で特定したタグとデータ型との組合せを示す情報が解析情報記憶部123に記憶されているか否かを判定する(ステップS806)。
図11は、解析情報記憶部123が記憶する情報の一例を示す図である。例えば、解析情報記憶部123は、タグ情報1231、データ型情報1232、カウント値1233を関連付けて記憶する。解析情報記憶部123が記憶する情報は、所定期間内に受信した検索クエリについて、クエリ解析部111が解析した結果を記憶(蓄積)した情報である。
タグ情報1231は、例えば、図6のタグ情報1221と同様の態様であって良く、データに対応するタグを示す情報である。なお、データ情報と同様にデータIDもまた、データに対応するタグを示す情報であるため、タグ情報1231のデータ列は、例えば、タグ情報に対応するタグIDを示すデータ列であっても良い。
データ型情報1232は、データ型を示す情報である。
カウント値1233は、解析対象の期間である所定期間内に受信した検索クエリにおいて、タグ情報1231に示されるタグと、データ型情報1232に示されるデータ型の組み合わせによる指定が出現した回数を示す情報である。
例えば、図11のデータ行123−#1には、タグ「/root/cost」のデータに対して、所定期間内に、データ型としてint型が指定された検索クエリを1000回受信したことが示されている。また、図11のデータ行123−#2には、タグ「/root/cost」のデータに対して、所定期間内に、データ型としてtext型(文字列型)が指定された検索クエリを20回受信したことが示されている。このように、解析情報記憶部123には、各タグについて、所定期間内に受信した検索クエリにおいて、どのデータ型が何回指定されたか、という情報が記憶される。
ステップS806について具体例を説明すると、例えば、図9の検索条件901は、タグ「/root/cost」と数値型のデータ型との組合せを指定する検索条件である。そして、図11に示す状態において、解析情報記憶部123には、タグ「/root/cost」と数値型のデータ型との組合せを指定する情報が、データ行123−#1に示されるように記憶されている。このような場合、クエリ解析部111は、ステップS804で特定したタグとデータ型との組合せを示す情報が解析情報記憶部123に記憶されていると判定する(ステップS806、YES)。一方、ステップS804で特定した組合せに対応するデータ行が解析情報記憶部123に存在しない場合、クエリ解析部111は、ステップS804で特定したタグとデータ型との組合せを示す情報が解析情報記憶部123に記憶されていないと判定する(ステップS806、NO)。
ステップS806が肯定の判定となった場合(ステップS806、YES)、クエリ解析部111は、ステップS804で特定した組合せに対応する、解析情報記憶部123に記憶されたデータ行のカウント値1233を更新する(ステップS807)。具体的には、クエリ解析部111は、ステップS804で特定した組合せに対応するデータ行のカウント値1233の数値をインクリメントする。
一方、ステップS806が否定の判定となった場合(ステップS806、NO)、クエリ解析部111は、ステップS804で特定した組合せに対応するデータ行を解析情報記憶部123に追加で記憶する(ステップS808)。この際、カウント値1233の数値は1とする。
ステップS807またはS808の処理を実行後、クエリ解析部111は、ステップS801を再実行する。そして、対象となる全ての検索クエリが解析済みとなった場合(ステップS801、YES)、図8に示すクエリ解析処理は終了される。
〔情報更新(型変換データの生成)〕
図12は、データ管理部112が実行する処理の流れを説明するフローチャートである。
まず、データ管理部112は、解析情報記憶部123を参照し、解析情報記憶部123に情報が記憶されたタグの中から、未処理のタグを1つ選択する(ステップS1201)。そして、データ管理部112は、解析情報記憶部123において、選択したタグを示すタグ情報1231と関連付けられたデータ型情報1232およびカウント値1233を特定する。そして、データ型情報1232に示されるデータ型それぞれについて、対応するカウント値1233の値を取得する(ステップS1202)。そして、データ管理部112は、取得したカウント値1233の値に基づいて、追加対象のデータ型を決定する(ステップS1203)。
ここで、追加対象のデータ型とは、後述する処理において検索補助データ記憶部221に追加されるデータのデータ型である。追加対象のデータ型は、例えば、ステップS1202で取得されたカウント値1233の値の中で最大のカウント値と関連付けられたデータ型情報1232に示されるデータ型としても良い。あるいは、追加対象のデータ型は、例えば、ステップS1202で取得されたカウント値1233の値の中の上位の所定個(例えば2つ)のカウント値と関連付けられたデータ型情報1232に示されるデータ型としても良い。あるいは、追加対象のデータ型は、ステップS1202で取得されたカウント値1233の値が所定の閾値以上のカウント値と関連付けられたデータ型情報1232に示されるデータ型としても良い。
ステップS1203で追加対象のデータ型が決定されると、データ管理部112は、XMLデータ記憶部121に記憶されたXMLデータから、ステップS1201で選択されたタグに対応するデータの値を読み出す。そして、データ管理部112は、読み出したデータを追加対象のデータ型に変換した型変換データを生成する(ステップS1204)。なお、データ管理部112は、ステップS1203の終了後、ステップS1201で選択されたタグについての追加対象のデータ型が決定済みであることを示すために、ステップS1201で選択されたタグについての情報を解析情報記憶部123から削除することとしても良い。
データ管理部112は、タグ管理情報記憶部122に記憶された情報の更新を実行する(ステップS1205)。
また、データ管理部112は、検索補助データ記憶部221に記憶された情報の更新を行なう(ステップS1206)。具体的には、生成された型変換データと、型変換データの格納位置を示す情報とが対応付けられて、検索補助データ記憶部221に記憶される。
ステップS1202〜S1206の処理について、具体例を用いて説明する。例えば、タグ「/root/cost」を例とすると、図11において、タグ「/root/cost」のタグ情報1231と関連付けられたカウント値1233は、「1000」と「20」である。「1000」のカウント値は数値型である「int」のデータ型に対応し、「20」のカウント値は文字列型である「text」のデータ型に対応する。
すなわち、図11に示す状態は、タグ「/root/cost」のデータを対象とした、「int」のデータ型を指定する検索クエリを1000回、「text」のデータ型を指定する検索クエリを20回、管理装置1が所定期間内に受信したことを示している。そして、例えば、追加対象のデータ型の決定条件を、最大のカウント値と関連付けられたデータ型情報1232に示されるデータ型とした場合、タグ「/root/cost」のデータについての追加対象のデータ型は「int」となる。ここまでの説明は、ステップS1202〜S1203に対応する。なお、追加対象のデータ型は1つに限定される必要はなく、例えば、カウント値の大きい順に、複数個(複数種類)のデータ型が追加対象のデータ型として決定されても良い。あるいは、カウント値に対して閾値が設定され、閾値以上のカウント値となったデータ型を追加対象のデータ型として決定することとしても良い。また、例えば、カウント値1233に代えて、単位時間当たりの検索クエリの受信頻度が記録されることとしても良い。
そして、タグ「/root/cost」のデータに対応する型変換データとして、int型のデータ値を生成する。例えば、図5のXMLデータ501の場合は、タグ「/root/cost」のデータの値が「100円」である。int型のデータ値を生成するにあたり、データ管理部112は、数値である「100」のバイナリデータを生成する。この工程は、上述したステップS1204に対応する。
次に、データ管理部112は、型変換データの生成に応じて、タグ管理情報記憶部122に記憶された情報の更新について例示を用いて説明する。この工程は、上述したステップS1205に対応する。
図13は、ステップS1205の例示における更新後のタグ管理情報記憶部122に記憶された情報の態様を示す図である。タグ情報1221、タグID1222、については、図6に示した態様と同様であるが、タグID(型変換)1223、データ型情報1224がさらに含まれる点に差分がある。
タグID(型変換)1223は、生成された型変換データに対して付与されるタグに対応するタグIDを示すデータ列である。
データ型情報1224は、型変換データのデータ型を示すデータ列である。
タグID(型変換)1223は、タグ情報1221に示されるタグ(またはタグID1222に示されるタグID)と追加対象のデータ型との組み合わせに対して、タグID1222のデータ列に存在する値と重複しない値が一意に付与される。図13の場合は、タグ「/root/cost」(またはタグID「3」)と、追加対象のデータ型であるint型との組み合わせについて、タグID(型変換)1223として「5」の値が付与される。
その後、データ管理部112は、生成された型変換データと、型変換データの格納位置を示す情報とを対応付けて、検索補助データ記憶部221に記憶する。この工程は、上述したステップS1206に対応する。
図14は、生成された型変換データと、型変換データの格納位置を示す情報とが記憶された検索補助データ記憶部221の態様を示す図である。ステップS1204〜S1206によって、図7に示した状態から、生成された型変換データについての情報が追加されている。
具体的には、図14の態様では、図7の状態と比較して、データ行222−#2が新たに生成されている。データ行222−#2は、XMLデータID2221の値が「Rec_#1」であり、タグID2222の値が「5」であり、また、データ値2223が数値「100」のバイナリデータであるデータ行である。タグID2222の値である「5」は、図13を用いて説明したタグID(型変換)1223の値である「5」と対応している。
なお、例示においては、数値「100」のバイナリデータが記憶されることとなるが、図14の図示においては説明のため、四角枠に囲まれた数値が、囲まれた数値に対応するバイナリデータを示すものとする。図14のデータ行222−#2は、「Rec_#1」に示されるXMLデータに含まれる値として、タグID「5」、データ値「100(バイナリデータ)」という値を含むことを示す。これにより、検索補助データ記憶部221には、ステップS1203で決定された追加対象のデータ型に対応する新たな検索用データが生成されたことになる。
ここで、例えば、検索補助データ記憶部221に記憶された情報の更新は、例えば、管理装置1と検索処理装置2とが連携して動作することにより実現される。
具体例としては、ステップS1205で更新されたタグ管理情報記憶部122内の情報に基づき、まず、管理装置1のデータ管理部112が、型変換データを埋め込んだXMLデータを生成する。型変換データを埋め込んだXMLデータとは、例えば上述の例示の場合は、「Rec_#1」に示されるXMLデータ501に、タグID「5」(またはタグID「5」に対応するタグ)とデータ値「100(バイナリデータ)」とを関連付けた情報が追記された新たなXMLデータである。
データ管理部112は、生成した新たなXMLデータを検索処理装置2に送信する。ここで検索処理装置2に送信されるXMLデータは、新たなXMLデータ全体であっても良いし、新たなXMLデータのうち、追記された情報を含む一部分であっても良い。
新たなXMLデータを受信した検索処理装置2の処理部210は、受信した新たなXMLデータを走査、解析し、検索補助データ記憶部221に記憶される種々の情報を取得する。ここで取得される情報には、型変換データに対応する情報(例えば、図14の例示でデータ行222−#2に相当する情報)を含む。そして、処理部210は、取得した情報に基づいて、検索補助データ記憶部221に記憶される情報を更新する。ここで、検索処理装置2は、受信した新たなXMLデータについては、検索補助データ記憶部221に記憶される情報を更新した後は必ずしも保持しなくても良い。
以上の処理の流れにより、検索補助データ記憶部221に記憶された情報の更新が行なわれる。ただし、上述の処理の流れはあくまでも更新処理の一態様であり、検索補助データ記憶部221に記憶された情報の更新は、管理装置1と検索処理装置2のいずれか一方が主体となって実行されることとしても良い。
例示の態様においては、ステップS1205〜S1206の処理が実行されることで、検索補助データ記憶部221、タグ管理情報記憶部122の情報がそれぞれ図13、図14のように更新される。
図12の説明に戻ると、ステップS1206の実行後、データ管理部112は、解析情報記憶部123に情報が記憶された全てのタグについて処理済であるか否かを判定する(ステップS1207)。処理済みとは、上述したステップS1201〜S1206の処理が実行済みであることを意味する。全てのタグについて処理済でない、すなわちステップS1201〜S1206の処理が未処理であるタグが存在する場合(ステップS1207、NO)、データ管理部112は未処理のタグのいずれかについてステップS1201からの処理を実行する。全てのタグについて処理済である場合(ステップS1207、YES)、図12に示す一連の処理は終了する。
〔データの検索処理〕
本実施例におけるデータの検索処理(以降、データ検索処理と記載)について説明する。図15はデータ検索処理の一連の処理の流れを示すフローチャートである。
まず、管理装置1が端末装置3から検索クエリを受信すると(ステップS1501)、クエリ解析部111は、検索クエリに指定される検索条件を特定する(ステップS1502)。そして、クエリ解析部111は、検索条件に指定されたタグとデータの型(データ型)を特定する(ステップS1503)。ステップS1501〜S1503の具体的な処理は、例えば、図8のステップS802〜S804と同様に実行されても良い。
続いて、クエリ解析部111は、タグ管理情報記憶部122を参照する(ステップS1504)。
そして、クエリ解析部111は、ステップS1503で特定したタグに関連付けて、ステップS1503で特定したデータ型に一致するデータ型がタグ管理情報記憶部122に記憶されているか否かを判定する(ステップS1505)。具体的には、クエリ解析部111は、タグ管理情報記憶部122のタグ情報1221について、ステップS1503で特定したタグを示すデータ行を検索する。ステップS1503で特定したタグを示すデータ行が見つかった場合、クエリ解析部111は、見つかったデータ行のデータ型情報1224に値が記憶されているかを判定する。データ型情報1224に値が記憶されている場合は、ステップS1503で特定したデータ型に一致するデータ型がタグ管理情報記憶部122に記憶されていると判定される(ステップS1505、YES)。一方、データ型情報1224に値が記憶されていない場合は、ステップS1503で特定したデータ型に一致するデータ型がタグ管理情報記憶部122に記憶されていないと判定される(ステップS1505、NO)。
ステップS1505の判定結果がYESの場合、ステップS1501で受信した検索クエリを変換する処理(クエリ変換処理)を実行する(ステップS1506)。具体的には、例えば、クエリ解析部111は、ステップS1505で見つかったデータ行のタグID(型変換)1223の値を取得する。そして、受信した検索クエリのタグを、取得したタグID(型変換)1223の値に示されるタグに変更した検索クエリ(変換後検索クエリ)を生成する。
ここで、変換後検索クエリでは、テキストデータに対するタグ(ステップS1501で受信した検索クエリにおいて指定されていたタグ)が、型変換データに対するタグに変更されている。また、型変換データに対するタグと関連付けて、型変換データが検索補助データ記憶部221に記憶されている。
したがって、変換後検索クエリによるデータ検索処理が実行されると、テキストデータに代えて、データ型が変更された型変換データが取得されることとなる。この場合、データ検索処理の間に実行されるデータの型変換の処理を不要とすることができる。
変換後検索クエリを生成後は、ステップS1507の処理が実行される。
一方、ステップS1505の判定結果がNOの場合、ステップS1506の処理は実行されることなく、ステップS1507の処理が実行される。
ステップS1506では、検索制御部114が、検索クエリを検索処理装置2に送信し、検索処理を実行させる(ステップS1507)。ステップS1507で送信される検索クエリは、ステップS1505の判定結果がYESであった場合は、ステップS1506で生成された変換後検索クエリである。一方、ステップS1505の判定結果がNOであった場合は、ステップS1506の処理は実行されないので、ステップS1507で送信される検索クエリはステップS1501で受信した検索クエリとなる。ステップS1507で送信された検索クエリに応じて、検索処理装置2の検索処理部211がデータ検索処理を実行する。
そして、管理装置1は、ステップS1507で送信された検索クエリに応じて、検索処理装置2から送信された検索結果を受信する。そして、検索制御部114は、受信した検索結果に基づいて、端末装置3に、検索クエリに対する応答の検索結果を送信する(ステップS1508)。
〔本実施例の技術的効果〕
以上で述べた本実施例について、技術的効果を説明する。例えば、本実施例においては、情報処理システムは、XML形式、すなわちテキスト形式のデータを格納するデータベースとなっている。
ここで、テキスト形式で格納されたデータに対して、例えば、数値での大小比較を要する検索処理が実行されることとする。大小比較を行なうためには、検索範囲のデータが数値形式であることが必要となるため、テキスト形式のデータの型変換が行なわれ、データの型が数値形式のデータが生成される。そして、生成された数値形式のデータを用いて、検索条件に合致するデータの検索が行なわれる。このとき、データ検索時のデータの型変換のため、検索性能、すなわち検索要求に対する応答性能が低下するという問題がある。
本実施例においては、解析情報記憶部123は、端末装置3から受信した検索クエリを解析した解析結果を記憶(蓄積)する。具体的には、例えば、解析情報記憶部123は、所定期間内に受信した検索クエリを対象として、検索クエリに指定されたタグとデータ型との組み合わせの出現回数を解析結果として記録する。そして、タグそれぞれについて、解析結果における出現回数の多いデータ型に変換した型変換データを、検索補助データ記憶部221に記憶する。
これにより、解析結果における出現回数の多いデータ型が検索クエリに指定された場合には、予め生成された型変換データを利用してデータ検索処理が実行されるため、データ検索処理の間にデータの型変換を実行する必要が無くなる。そのため、データの型変換に起因する検索性能の低下を抑止することができる。
追加対象のデータ型の決定については、例えば、XMLデータ記憶部121に記憶されるXMLデータの値に基づいて決定する態様も考えられる。例えば、XMLデータのタグごとにテキスト形式のデータの値を参照し、データの内容から、どのようなデータ型の指定で検索されるかを推定する態様である。
しかし、例えば、データの値としては数値を示すデータに見えるデータであっても、データの検索処理においてはテキスト型が指定されるといったことが考えられる。また例えば、データの値としては日付を示すデータと推定されたとしても、和暦形式の日付で検索される可能性もあれば、西暦形式の日付で検索される可能性もあり、あるいは単にテキスト型のデータとして検索が行なわれる可能性もある。このように、記憶されたデータの値に基づいて追加対象のデータ型が決定される場合には、実際にはほとんど検索に利用されないデータ型を追加対象のデータ型として決定してしまったり、追加対象のデータ型を絞り込めないおそれがある。
一方、本実施例では、実際に受信した検索条件を解析することで追加対象のデータ型の決定が決定されるため、追加後にもデータ検索で指定される可能性がより高いデータ型を追加対象のデータ型とすることができる。また、解析の結果、検索条件において指定されたデータ型の中から、指定された回数や頻度の多い所定数のデータ型が追加対象のデータ型として決定される。したがって、データの追加によってタグ管理情報記憶部122や検索補助データ記憶部221に記憶される情報が際限なく増加してしまうことが抑止される。
〔データ追加時の処理〕
図16は、XMLデータ記憶部121に追加のデータが記憶された場合に実行される一連の処理を示すフローチャートである。以降の説明ではXMLデータ記憶部121に追加で記憶されることとなるデータを、「新規データ」と記載することがある。
まず、データ管理部112は、新規データを受信する(ステップS1601)。次に、データ管理部112は、タグ管理情報記憶部122を参照する(ステップS1602)とともに、新規データについての解析を実行する(ステップS1603)。ここで、データ管理部112は、タグ管理情報記憶部122を参照することで、タグ管理情報記憶部122に情報が登録されているタグの一覧を取得しておく。新規データについての解析とは、新規データに含まれるタグを特定する処理である。
その後、データ管理部112は、ステップS1603の解析の結果特定された新規データに含まれるタグの中から、タグを1つ選択する(ステップS1604)。そして、ステップS1604で選択されたタグを示す情報が、検索補助データ記憶部221に登録済みであるか否かを判定する(ステップS1605)。言い換えれば、データ管理部112は、ステップS1604で選択されたタグを示すデータ値が、検索補助データ記憶部221に記憶されたタグ情報1221に含まれるか否かを判定する。
ステップS1604で選択されたタグを示す情報が登録済みでない場合(ステップS1605、NO)、データ管理部112は、ステップS1604で選択されたタグについての情報をタグ管理情報記憶部122に記憶する(ステップS1606)。具体的には、データ管理部112は、ステップS1604で選択されたタグを示すデータ値をタグ情報1221に新たに記憶するとともに、新たに記憶したデータ値に関連付けて、一意のタグIDをタグID1222として記憶する。
一方、ステップS1604で選択されたタグを示す情報が登録済みの場合(ステップS1605、YES)、データ管理部112は、ステップS1604で選択されたタグについてのデータ型情報1224がタグ管理情報記憶部122に記憶されているか否かを判定する(ステップS1607)。
データ型情報1224がタグ管理情報記憶部122に記憶されている場合(ステップS1607、YES)、データ管理部112は、新規データに含まれる、ステップS1604で選択されたタグに対応するデータ値についての型変換データを生成する(ステップS1608)。例えば、タグ管理情報記憶部122に図13に示す情報が記憶されており、ステップS1604で選択されたタグがタグ「/root/cost」であった場合を例とする。この場合、データ管理部112は、ステップS1604で選択されたタグに対応するデータ値を、データ型情報1224に示されるデータ型、すなわち数値型のデータ値である型変換データを生成する。そして、データ管理部112は、生成した型変換データを、受信した新規データ(XMLデータ)に埋め込む。これにより、追加対象のデータ型が決定されているタグのデータが新規データに含まれている場合は、新規データが追加される時点で型変換データが生成される。なお、ステップS1607においてデータ型情報1224がタグ管理情報記憶部122に記憶されていない場合(ステップS1607、NO)は、ステップS1608の処理は省略される。
その後、ステップS1609において、データ管理部112は、ステップS1603の解析の結果特定された新規データに含まれるタグを、ステップS1604で全て選択済みであるか否かを判定する(ステップS1609)。未選択のタグが存在する場合(ステップS1609、NO)は、ステップS1604に戻り、データ管理部112は、未選択のタグの中からタグを1つ選択して、以降の処理を繰り返し実行する。新規データに含まれるタグが全て選択済みである場合(ステップS1609、YES)、図16に示す一連の処理は終了される。
新規データが記憶される場合に、以上の処理が実行されることで、新規データについても、型変換データを予め生成し、型変換データを記憶しておくことができる。
そして、例えばステップS1206において例示した処理等により、型変換データが埋め込まれた新規データ(XMLデータ)がXMLデータを走査、解析されることで、検索補助データ記憶部221に記憶される、新規データに対応した種々の情報が取得される。
〔ハードウェア構成〕
図17は、本実施例における管理装置1のハードウェア構成の一例である。なお、図17では、管理装置1のハードウェア構成の一例を示すが、後述のように、検索処理装置2−1〜2−n、端末装置3等についても同様の構成が採用可能である。
管理装置1は、例えば、それぞれがバス1701で相互に接続された、CPU(Central Processing Unit)1702、メモリ1703、記憶装置1704、NIC1705、媒体読取装置1706、入力装置1707、表示装置1708、を備える情報処理装置である。
CPU1702は、管理装置1における種々の動作制御を行なう。メモリ1703、記憶装置1704は、本実施例で説明した各種の処理を実行するプログラムや、各種の処理に利用される種々のデータを記憶する。記憶装置1704は、例えば、HDD(Hard Disk Drive)や、SSD(Solid State Drive)等の記憶媒体である。
CPU1702は、メモリ1703あるいは記憶装置1704に記憶されたプログラムを読み出して処理、制御を実行することで、図2に示す処理部110に含まれる各機能部が実現されても良い。また、メモリ1703、記憶装置1704のそれぞれは、例えば、図2に記載した記憶部120として機能することができる。なお、CPU1702は、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)などのハードウェア回路で代替されても良い。
NIC1705は、有線または無線のネットワークを介したデータの送受信に用いられるハードウェアである。NIC1705は、CPU1702の制御の下で、通信部101として機能することができる。
媒体読取装置1706は、記録媒体からデータを読み取るための装置であり、例えば、CD−ROMやDVD−ROM等のディスク媒体に記憶されたデータを読み取るディスクドライブや、メモリカードに記憶されたデータを読み取るカードスロット等である。前述した記憶部120に記憶されるデータの一部または全部は、媒体読取装置1706を用いて読み取り可能な記録媒体に記憶されることとしても良い。
入力装置1707は、ユーザー(システム管理者を含む)からの入力や指定を受け付ける装置である。入力装置1707の例としては、例えばキーボードやマウス、タッチパッドが挙げられる。表示装置1708は、CPU1702の制御の下で、種々の情報の表示を行なう。表示装置1708は、例えば液晶ディスプレイである。
本実施例の検索処理装置2−1〜2−n、端末装置3については、図17と同様のハードウェア構成のコンピュータを用いることが可能であるため、説明を省略する。ただし、CPU、メモリ、記憶装置、NIC、媒体読取装置、入力装置、出力装置の具体的なハードウェア(型式や性能等)は、それぞれの装置で異なって構わない。
また、本実施例では、情報処理システムとして、ハードウェアとして1台の管理装置1と、複数台の検索処理装置2とを含むシステムを例としたが、検索処理装置2の台数は、1台の場合も含めて、一意に限定される必要はない。また、例えば、情報処理システムが管理装置1と検索処理装置2の機能を有する単体のハードウェアで実現されることとしても構わない。
1 管理装置
2−1〜2−n 検索処理装置
3 端末装置
4 ネットワーク
1701 バス
1702 CPU
1703 メモリ
1704 記憶装置
1705 NIC
1706 媒体読取装置
1707 入力装置
1708 表示装置

Claims (7)

  1. コンピュータに、
    データベースに記憶されたデータに対する検索条件を受信した場合、受信した前記検索条件において指定されたデータの格納位置とデータの型とを特定し、
    データの格納位置とデータの型との組み合わせごとに、組み合わせが検索条件で指定された回数を計数し、
    少なくとも1つのデータの格納位置に対応するデータについて、計数の結果に基づいて決定されたデータの型に変換した型変換データを、前記少なくとも1つのデータの格納位置と対応付けて記憶部に記憶し、
    前記少なくとも1つのデータの格納位置および決定された前記データの型を指定する検索条件を受信した場合、前記記憶部に記憶した前記型変換データを用いて、前記指定する検索条件に対する検索結果が生成されるように制御する、
    処理を実行させることを特徴とする検索制御プログラム。
  2. 前記コンピュータに、
    前記計数の結果に基づいて、前記回数が多い順に所定個の組み合わせに示されるデータの型に変換した型変換データを前記記憶部に記憶する、
    処理を実行させることを特徴とする請求項1に記載の検索制御プログラム。
  3. 前記コンピュータに、
    前記データベースに対するデータの追加が行なわれる場合、追加される前記データに含まれる、前記型変換データと対応付けられた前記格納位置のデータを決定された前記データの型に変換した型変換データを生成して前記記憶部に記憶する、
    処理を実行させることを特徴とする請求項1または2に記載の検索制御プログラム。
  4. データベースに記憶されたデータは、XML(eXtensible Markup Language)形式のデータであり、
    前記データの格納位置は前記XML形式のデータに含まれるタグにより示される、
    ことを特徴とする請求項1〜3のいずれか1項に記載の検索制御プログラム。
  5. 前記検索条件に指定されたデータの型は、前記検索条件に含まれる関数に基づいて決定される、
    ことを特徴とする請求項1〜4のいずれか1項に記載の検索制御プログラム。
  6. コンピュータが、
    データベースに記憶されたデータに対する検索条件を受信した場合、受信した前記検索条件において指定されたデータの格納位置とデータの型とを特定し、
    データの格納位置とデータの型との組み合わせごとに、組み合わせが検索条件で指定された回数を計数し、
    少なくとも1つのデータの格納位置に対応するデータについて、計数の結果に基づいて決定されたデータの型に変換した型変換データを、前記少なくとも1つのデータの格納位置と対応付けて記憶部に記憶し、
    前記少なくとも1つのデータの格納位置および決定された前記データの型を指定する検索条件を受信した場合、前記記憶部に記憶した前記型変換データを用いて、前記指定する検索条件に対する検索結果が生成されるように制御する、
    ことを特徴とする検索制御方法。
  7. コンピュータが、
    データベースに記憶されたデータに対する検索条件を受信した場合、受信した前記検索条件において指定されたデータの格納位置とデータの型とを特定する特定部と、
    データの格納位置とデータの型との組み合わせごとに、組み合わせが検索条件で指定された回数を計数する計数処理部と、
    少なくとも1つのデータの格納位置に対応するデータについて、計数の結果に基づいて決定されたデータの型に変換した型変換データを、前記少なくとも1つのデータの格納位置と対応付けて記憶する記憶部と、
    前記少なくとも1つのデータの格納位置および決定された前記データの型を指定する検索条件を受信した場合、前記記憶部に記憶した前記型変換データを用いて、前記指定する検索条件に対する検索結果が生成されるように制御する制御部と、
    を備えることを特徴とする検索制御装置。
JP2017141722A 2017-07-21 2017-07-21 検索制御プログラム、検索制御方法および検索制御装置 Active JP6881124B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017141722A JP6881124B2 (ja) 2017-07-21 2017-07-21 検索制御プログラム、検索制御方法および検索制御装置
US16/038,854 US10942969B2 (en) 2017-07-21 2018-07-18 Non-transitory computer-readable storage medium, search control method, and search control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017141722A JP6881124B2 (ja) 2017-07-21 2017-07-21 検索制御プログラム、検索制御方法および検索制御装置

Publications (2)

Publication Number Publication Date
JP2019021238A JP2019021238A (ja) 2019-02-07
JP6881124B2 true JP6881124B2 (ja) 2021-06-02

Family

ID=65019000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017141722A Active JP6881124B2 (ja) 2017-07-21 2017-07-21 検索制御プログラム、検索制御方法および検索制御装置

Country Status (2)

Country Link
US (1) US10942969B2 (ja)
JP (1) JP6881124B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049408A (ja) 1996-08-02 1998-02-20 Nippon Telegr & Teleph Corp <Ntt> データスキーマ変換方法及び装置
JP4552242B2 (ja) 1999-10-06 2010-09-29 株式会社日立製作所 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
US6721727B2 (en) * 1999-12-02 2004-04-13 International Business Machines Corporation XML documents stored as column data
US6704736B1 (en) * 2000-06-28 2004-03-09 Microsoft Corporation Method and apparatus for information transformation and exchange in a relational database environment
KR100803285B1 (ko) * 2003-10-21 2008-02-13 한국과학기술원 역 산술 부호화와 타입 추론 엔진을 이용한 질의 가능 엑스-엠-엘 압축 방법
WO2010106681A1 (ja) 2009-03-19 2010-09-23 富士通株式会社 データベース検索プログラムを記録するコンピュータ読取可能な記憶媒体、データベース検索装置、および、データベース検索方法
CN105122243B (zh) 2013-03-15 2019-02-12 亚马逊科技公司 用于半结构化数据的可扩展分析平台

Also Published As

Publication number Publication date
US20190026388A1 (en) 2019-01-24
US10942969B2 (en) 2021-03-09
JP2019021238A (ja) 2019-02-07

Similar Documents

Publication Publication Date Title
US8190599B2 (en) Stream data processing method and system
JP4740060B2 (ja) 重複データ検出プログラム、重複データ検出方法および重複データ検出装置
KR101083563B1 (ko) 데이터베이스 관리 방법 및 시스템
US10552460B2 (en) Sensor data management apparatus, sensor data management method, and computer program product
EP3422205A1 (en) Database-archiving method and apparatus that generate index information, and method and apparatus for searching archived database comprising index information
JP2012048332A (ja) データベース処理方法、データベース処理システム及びデータベースサーバ
US10095737B2 (en) Information storage system
US20180260463A1 (en) Computer system and method of assigning processing
US10516628B2 (en) Transfer device, transfer system, and transfer method
JP6881124B2 (ja) 検索制御プログラム、検索制御方法および検索制御装置
JPWO2018117218A1 (ja) データ処理システムおよびデータ処理方法
US20220360458A1 (en) Control method, information processing apparatus, and non-transitory computer-readable storage medium for storing control program
US8209359B2 (en) Generating BPEL control flows
US20150278240A1 (en) Data processing apparatus, information processing apparatus, data processing method and information processing method
US8775873B2 (en) Data processing apparatus that performs test validation and computer-readable storage medium
CN101930451B (zh) 用于存储高效地搜索至少一个询问数据元素的方法和装置
JP5652282B2 (ja) 検索制御プログラム、検索制御方法、検索システム
JP5472885B2 (ja) プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
JP5673224B2 (ja) 情報管理装置、情報管理方法、及びプログラム
JP6193491B2 (ja) 計算機システム
JP2019197465A (ja) シミュレーション制御方法及び計算機システム
US9208196B2 (en) Configuration information management apparatus and retrieval method
JP5718256B2 (ja) システム性能解析装置、システム性能解析方法、およびシステム性能解析プログラム
JP6883481B2 (ja) 抽出装置、抽出方法、及び抽出プログラム
JP4704736B2 (ja) データ処理装置、データ処理方法及びそのプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20180528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200409

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210419

R150 Certificate of patent or registration of utility model

Ref document number: 6881124

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150