(57)【要約】【課題】データベースの検索処理性能の向上を目的とする。【解決手段】１つの態様では、コンピュータに、データベースに記憶されたデータに対する検索条件を受信した場合、受信した前記検索条件において指定されたデータの格納位置とデータの型とを特定し、データの格納位置とデータの型との組み合わせごとに、組み合わせが検索条件で指定された回数を計数し、少なくとも１つのデータの格納位置に対応するデータについて、計数の結果に基づいて決定されたデータの型に変換した型変換データを、前記少なくとも１つのデータの格納位置と対応付けて記憶部に記憶し、前記少なくとも１つのデータの格納位置および決定された前記データの型を指定する検索条件を受信した場合、前記記憶部に記憶した前記型変換データを用いて、前記指定する検索条件に対する検索結果が生成されるように制御する、処理を実行させる。【選択図】  図２
2019021238.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
データベースに記憶されたデータに対する検索条件を受信した場合、受信した前記検索条件において指定されたデータの格納位置とデータの型とを特定し、
データの格納位置とデータの型との組み合わせごとに、組み合わせが検索条件で指定された回数を計数し、
少なくとも１つのデータの格納位置に対応するデータについて、計数の結果に基づいて決定されたデータの型に変換した型変換データを、前記少なくとも１つのデータの格納位置と対応付けて記憶部に記憶し、
前記少なくとも１つのデータの格納位置および決定された前記データの型を指定する検索条件を受信した場合、前記記憶部に記憶した前記型変換データを用いて、前記指定する検索条件に対する検索結果が生成されるように制御する、
処理を実行させることを特徴とする検索制御プログラム。
【請求項２】
前記コンピュータに、
前記計数の結果に基づいて、前記回数が多い順に所定個の組み合わせに示されるデータの型に変換した型変換データを前記記憶部に記憶する、
処理を実行させることを特徴とする請求項１に記載の検索制御プログラム。
【請求項３】
前記コンピュータに、
前記データベースに対するデータの追加が行なわれる場合、追加される前記データに含まれる、前記型変換データと対応付けられた前記格納位置のデータを決定された前記データの型に変換した型変換データを生成して前記記憶部に記憶する、
処理を実行させることを特徴とする請求項１または２に記載の検索制御プログラム。
【請求項４】
データベースに記憶されたデータは、ＸＭＬ（eXtensible  Markup  Language）形式のデータであり、
前記データの格納位置は前記ＸＭＬ形式のデータに含まれるタグにより示される、
ことを特徴とする請求項１〜３のいずれか１項に記載の検索制御プログラム。
【請求項５】
前記検索条件に指定されたデータの型は、前記検索条件に含まれる関数に基づいて決定される、
ことを特徴とする請求項１〜４のいずれか１項に記載の検索制御プログラム。
【請求項６】
コンピュータが、
データベースに記憶されたデータに対する検索条件を受信した場合、受信した前記検索条件において指定されたデータの格納位置とデータの型とを特定し、
データの格納位置とデータの型との組み合わせごとに、組み合わせが検索条件で指定された回数を計数し、
少なくとも１つのデータの格納位置に対応するデータについて、計数の結果に基づいて決定されたデータの型に変換した型変換データを、前記少なくとも１つのデータの格納位置と対応付けて記憶部に記憶し、
前記少なくとも１つのデータの格納位置および決定された前記データの型を指定する検索条件を受信した場合、前記記憶部に記憶した前記型変換データを用いて、前記指定する検索条件に対する検索結果が生成されるように制御する、
ことを特徴とする検索制御方法。
【請求項７】
コンピュータが、
データベースに記憶されたデータに対する検索条件を受信した場合、受信した前記検索条件において指定されたデータの格納位置とデータの型とを特定する特定部と、
データの格納位置とデータの型との組み合わせごとに、組み合わせが検索条件で指定された回数を計数する計数処理部と、
少なくとも１つのデータの格納位置に対応するデータについて、計数の結果に基づいて決定されたデータの型に変換した型変換データを、前記少なくとも１つのデータの格納位置と対応付けて記憶する記憶部と、
前記少なくとも１つのデータの格納位置および決定された前記データの型を指定する検索条件を受信した場合、前記記憶部に記憶した前記型変換データを用いて、前記指定する検索条件に対する検索結果が生成されるように制御する制御部と、
を備えることを特徴とする検索制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
検索制御プログラム、検索制御方法および検索制御装置に関する。
【背景技術】
【０００２】
スキーマレスＤＢ（Database）と呼ばれる技術が存在する。例えば、リレーショナルＤＢのデータベース管理システムにおいては、格納するデータの型を、スキーマによって予め定義しておく必要がある。そして、一旦定義されたスキーマについては、データベースの稼動後に変更を行なうことが難しい。
【０００３】
対して、スキーマレスＤＢでは、スキーマによる事前定義を行なう必要はなく、データの格納後にもデータベースのデータ構造を比較的容易に変更することができるという利点を有する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開２０１０／１０６６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したスキーマレスＤＢにも短所が存在する。例えば、ＸＭＬ形式のデータを格納するスキーマレスＤＢの場合、データベースに格納されるデータはテキスト形式のデータとなる。
【０００６】
ここで、テキスト形式で格納されたデータに対して、例えば、数値での大小比較を要する検索条件（例：あるデータ項目の値が○○以上のレコードを抽出する、など）に基づき検索処理が実行されることとする。すると、大小比較を行なうためには、検索範囲のデータが数値形式であることが必要となる。そのため、データベース管理システムでは、テキスト形式（例えば文字列型）のデータの型変換が行なわれ、データの型が数値形式（例えば整数型や浮動小数点数型）のデータが生成される。そして、生成された数値形式のデータを用いて、検索条件に合致するデータの検索が行なわれる。
【０００７】
スキーマによって予め定められた型でデータが格納されたデータベースと比較すると、検索処理においてデータの型変換の処理（データの型を変更したデータを生成する処理）が発生する。そのため、受信した検索条件（検索要求）に対する応答速度が低下するという問題がある。
【０００８】
格納された元データと異なるデータ型による検索が発生することを考慮し、元データ以外のデータ型のデータを事前に生成しておくことも考えられる。ただし、事前に生成したデータのデータ型と検索において要するデータ型とが異なる場合には、依然としてデータの型変換の処理が必要となるため、応答速度は低下してしまう。一方、検索で指定されうる全てのデータ型に対応する型変換データを事前に生成しておくことも考えられるが、事前処理の負荷や必要な記憶領域が膨大になるという側面もあり、実現には困難性を伴う。
【０００９】
１つの側面では、本発明は、データベースの検索処理性能の向上を目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、コンピュータに、データベースに記憶されたデータに対する検索条件を受信した場合、受信した前記検索条件において指定されたデータの格納位置とデータの型とを特定し、データの格納位置とデータの型との組み合わせごとに、組み合わせが検索条件で指定された回数を計数し、少なくとも１つのデータの格納位置に対応するデータについて、計数の結果に基づいて決定されたデータの型に変換した型変換データを、前記少なくとも１つのデータの格納位置と対応付けて記憶部に記憶し、前記少なくとも１つのデータの格納位置および決定された前記データの型を指定する検索条件を受信した場合、前記記憶部に記憶した前記型変換データを用いて、前記指定する検索条件に対する検索結果が生成されるように制御する、処理を実行させる。
【発明の効果】
【００１１】
１つの側面によれば、データベースの検索処理性能を向上できる。
【図面の簡単な説明】
【００１２】
【図１】本実施例におけるシステム構成の一例を示す。
【図２】管理装置１の機能的構成を示す機能ブロック図を示す。
【図３】検索処理装置２の機能的構成を示す機能ブロック図を示す。
【図４】端末装置３の機能的構成を示す機能ブロック図を示す。
【図５】ＸＭＬデータ記憶部１２１に記憶されるデータの一例を示す。
【図６】タグ管理情報記憶部１２２に記憶されるデータの一例を示す。
【図７】検索補助データ記憶部２２１に記憶されるデータの一例を示す。
【図８】管理装置１が受信した検索クエリについての解析処理の流れを示すフローチャートを示す。
【図９】検索条件の一例を示す。
【図１０】関数とデータ型との対応関係を示す。
【図１１】解析情報記憶部１２３が記憶する情報の一例を示す。
【図１２】データ管理部１１２が実行する処理の流れを説明するフローチャートを示す。
【図１３】ステップＳ１２０５の例示における更新後のタグ管理情報記憶部１２２に記憶された情報の態様を示す。
【図１４】生成された型変換データと、型変換データの格納位置を示す情報とが記憶された検索補助データ記憶部２２１の態様を示す。
【図１５】データ検索処理の一連の処理の流れを示すフローチャートを示す。
【図１６】追加のデータが記憶された場合に実行される一連の処理を示すフローチャートを示す。
【図１７】本実施例における管理装置１のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００１３】
本発明を実施する実施例について、図面とともに説明をする。
【００１４】
〔概観〕
図１は、本実施例におけるシステム構成の一例を示す図である。図１に示す情報処理システムは、管理装置１、検索処理装置２−１〜２−ｎ、端末装置３を含む。
【００１５】
管理装置１は、端末装置３から受信した検索要求に基づく、データの検索処理の制御を実行する。管理装置１は、ネットワーク４を介して、端末装置３と有線または無線で通信可能に接続されている。管理装置１は、ハードウェアとして例えばサーバ装置などのコンピュータによって実現されても良い。
【００１６】
検索処理装置２−１〜２−ｎのそれぞれは、端末装置３から受信した検索要求に基づく、データの検索処理を実行する。検索処理装置２−１〜２−ｎのそれぞれは、ネットワーク４を介して、管理装置１と有線または無線で通信可能に接続されている。検索処理装置２−１〜２−ｎのそれぞれは、ハードウェアとして例えばサーバ装置などのコンピュータによって実現されても良い。図１では、情報処理システムが複数の検索処理装置を含み、データの検索を並列処理あるいは分散処理することができるようになっている。ただし、検索処理装置の具体的な台数や構成は、図１に示す態様のみに限定される必要はない。なお、以降の説明では、検索処理装置２−１〜２−ｎのうちの任意の検索処理装置を単に検索処理装置２と記載することがある。
【００１７】
端末装置３は、管理装置１に対して、データの検索要求を送信する。なお、本実施例において、以降、データの検索要求を検索クエリと記載することがある。検索要求に対する検索結果は、例えば、端末装置３において確認することが可能である。端末装置３は、例えば、ＰＣ（Personal Computer）や、スマートフォン、ＰＤＡ（Personal Digital Assistant）などの情報処理装置である。
【００１８】
情報処理システムにおけるデータの検索処理の概要を説明すると、まず、端末装置３から、検索クエリが管理装置１に送信される。検索クエリを受信した管理装置１は、受信した検索クエリの内容に基づいて、１または複数の検索処理装置２にデータの検索処置を実行させる。その後、管理装置１は検索処理装置２の処理結果を集約し、検索結果を生成する。そして、管理装置１は検索結果を端末装置３に送信する。なお、以上に記載した説明はあくまで検索処理の概要であり、詳細については後述する。
【００１９】
〔管理装置１の機能構成〕
図２は、管理装置１の機能的構成を示す機能ブロック図である。管理装置１は、例えば、通信部１０１、入力部１０２、出力部１０３、処理部１１０、記憶部１２０を備える。
【００２０】
通信部１０１は、有線または無線で、検索処理装置２−１〜２−ｎを含む他の装置との通信を実行することが可能である。通信部１０１は、例えば、管理装置１が備えるネットワークアダプタやＮＩＣ（Network Interface Controller）などの通信デバイスである。
【００２１】
入力部１０２は、ユーザー（システム管理者を含む）からの情報入力や操作を受け付ける。入力部１０２は、ハードウェアとしては、例えば、キーボードやマウス、タッチパッド等である。出力部１０３は、記憶部１２０に記憶された種々の情報や、データの検索処理の結果を出力することが可能である。出力部１０３は、ハードウェアとしては、例えば、液晶ディスプレイである。なお、入力部１０２、出力部１０３については、例えば、入力部１０２、出力部１０３の機能、ハードウェアを備える他の情報処理装置により管理装置１をリモート操作可能である場合には、必ずしも管理装置１に備えられなくても良い。
【００２２】
処理部１１０は、クエリ解析部１１１、データ管理部１１２、クエリ変換部１１３、検索制御部１１４を備える。
【００２３】
クエリ解析部１１１は、端末装置３から受信した検索クエリの解析処理を実行する。
【００２４】
データ管理部１１２は、後述するＸＭＬ（eXtensible  Markup  Language）データ記憶部１２１に記憶されたデータの管理を実行する。また、データ管理部１１２は、ＸＭＬデータ記憶部１２１に記憶されたデータに関連した、タグ管理情報記憶部１２２、および解析情報記憶部１２３に記憶された情報の更新処理を実行する。また、データ管理部１１２は、特定部、計数処理部の一態様である。
【００２５】
クエリ変換部１１３は、端末装置３から受信した検索クエリを検索処理装置２−１〜２−ｎに送信する際の、クエリの変換処理を実行する。
【００２６】
検索制御部１１４は、端末装置３から受信した検索クエリに応じたデータの検索処理についての制御を実行する。例えば、検索制御部１１４は、検索処理装置２に対して検索クエリを送信し、検索処理装置２から受信した検索結果を集約して、端末装置３に検索結果を送信する。
【００２７】
記憶部１２０は、ＸＭＬデータ記憶部１２１、タグ管理情報記憶部１２２、解析情報記憶部１２３、バッファ１２４を備える。
【００２８】
ＸＭＬデータ記憶部１２１は、検索対象のデータを記憶する記憶部である。本実施例においては、検索対象のデータはＸＭＬ形式のデータとなっている。言い換えれば、本実施例における情報処理システムは、ＸＭＬ形式のデータを格納するデータベースと言える。
【００２９】
タグ管理情報記憶部１２２は、ＸＭＬデータ記憶部１２１に記憶されたデータについてのタグ情報を記憶する記憶部である。
【００３０】
解析情報記憶部１２３は、端末装置３から受信した検索クエリを解析した解析結果を記憶（蓄積）する記憶部である。
【００３１】
バッファ１２４は、例えば、端末装置３から受信した検索クエリや、検索処理装置２から受信した処理結果等を一時的に記憶する記憶領域として使用することができる。
【００３２】
〔検索処理装置２の機能構成〕
図３は、検索処理装置２の機能的構成を示す機能ブロック図である。検索処理装置２は、例えば、通信部２０１、入力部２０２、出力部２０３、処理部２１０、記憶部２２０を備える。
【００３３】
通信部２０１は、有線または無線で、管理装置１を含む他の装置との通信を実行することが可能である。通信部２０１は、例えば、検索処理装置２が備えるネットワークアダプタやＮＩＣなどの通信デバイスである。
【００３４】
入力部２０２は、ユーザー（システム管理者を含む）からの情報入力や操作を受け付ける。入力部２０２は、ハードウェアとしては、例えば、キーボードやマウス、タッチパッド等である。出力部２０３は、例えば、検索処理装置２が実行したデータの検索処理の結果を出力することが可能である。出力部２０３は、ハードウェアとしては、例えば、液晶ディスプレイである。なお、入力部２０２、出力部２０３については、管理装置１と同様に、入力部２０２、出力部２０３の機能、ハードウェアを備える他の情報処理装置により検索処理装置２をリモート操作可能である場合には、必ずしも検索処理装置２に備えられなくても良い。
【００３５】
処理部２１０は、検索処理部２１１を備える。検索処理部２１１は、管理装置１から要求された検索処理を実行する。
【００３６】
記憶部２２０は、検索補助データ記憶部２２１、バッファ２２２を備える。
【００３７】
検索補助データ記憶部２２１は、検索処理装置２が実行するデータの検索処理に用いられる検索補助データを記憶する。
【００３８】
バッファ２２２は、例えば、データの検索処理の処理結果や、検索処理の途中段階で生成されるデータ等を一時的に記憶する記憶領域として使用することができる。
【００３９】
〔端末装置３の機能構成〕
図４は、端末装置３の機能的構成を示す機能ブロック図である。端末装置３は、例えば、通信部３０１、入力部３０２、出力部３０３、処理部３１０、記憶部３２０を備える。
【００４０】
通信部３０１は、有線または無線で、管理装置１を含む他の装置との通信を実行することが可能である。通信部３０１は、例えば、端末装置３が備えるネットワークアダプタやＮＩＣなどの通信デバイスである。
【００４１】
入力部３０２は、ユーザー（システム管理者を含む）からの情報入力や操作（検索要求の入力や送信操作を含む）を受け付ける。入力部３０２は、ハードウェアとしては、例えば、キーボードやマウス、タッチパッド等である。出力部３０３は、例えば、端末装置３が実行した検索要求に基づいて実行された検索処理の結果を出力することが可能である。出力部２０３は、ハードウェアとしては、例えば、液晶ディスプレイである。
【００４２】
処理部３１０は、検索クエリの送信、検索結果の受信、検索結果の出力を含む、端末装置３で実行される種々の処理の制御を実行する。
【００４３】
記憶部３２０は、例えば、検索結果のデータの記憶に使用することができる。
【００４４】
〔ＸＭＬデータ記憶部１２１〕
図５は、ＸＭＬデータ記憶部１２１に記憶されるデータの一例を示す図である。ＸＭＬデータ記憶部１２１は、図５に示すようなＸＭＬ形式のデータを格納する。なお、図５に示すデータはＸＭＬ形式に従ったタグを用いて構造化されたテキスト形式のデータである。なお、以降の説明では、図５に示すようなＸＭＬ形式のデータをＸＭＬデータと記載することがある。
【００４５】
〔タグ管理情報記憶部１２２〕
図６は、タグ管理情報記憶部１２２に記憶されるデータの一例を示す図である。タグ管理情報記憶部１２２は、例えば、タグ情報１２２１とタグＩＤ（identifier）１２２２とを関連付けて記憶する。
【００４６】
タグ情報１２２１は、ＸＭＬデータ記憶部１２１に記憶されるＸＭＬデータに含まれるデータ値へのタグを示す情報である。タグＩＤ１２２２は、タグ情報１２２１に示されるタグのそれぞれを一意に識別可能とする識別情報である。
【００４７】
例えば、図６に示すタグ情報１２２１とタグＩＤ１２２２は、図５を用いて例示したＸＭＬデータに対応している。図５のＸＭＬデータ５０１では、タグ＜ｒｏｏｔ＞がまず存在し、タグ＜ｒｏｏｔ＞の下位層にタグ＜ｉｄ＞、タグ＜ｃｏｓｔ＞、タグ＜ｙｍｄ＞が存在する。なお、図６および以降の説明では、例えば、タグ＜ｒｏｏｔ＞の下位層にタグ＜ｉｄ＞が存在するというタグを「／ｒｏｏｔ／ｉｄ」と記載する。
【００４８】
図５のＸＭＬデータ５０１を例とした場合、ＸＭＬデータ５０１には、タグ「／ｒｏｏｔ」、タグ「／ｒｏｏｔ／ｉｄ」、タグ「／ｒｏｏｔ／ｃｏｓｔ」、タグ「／ｒｏｏｔ／ｙｍｄ」の４つのタグが出現すると言える。図６に示すタグ情報１２２１とタグＩＤ１２２２は、この４つのタグそれぞれを示すものである。そして、例えば、図６に示すように、タグ「／ｒｏｏｔ」に対してタグＩＤ「１」が設定される。同様に、他のタグそれぞれに対しても、図６に示すようにタグＩＤが設定される。
【００４９】
以上のように、タグ管理情報記憶部１２２は、ＸＭＬデータ記憶部１２１に記憶されるＸＭＬデータに出現する全種類のタグそれぞれに対して、一意のタグＩＤを関連付けた情報を記憶する。ただし、ＸＭＬデータ５０１以外のＸＭＬデータに同一のタグが出現する場合は、タグ情報１２２１およびタグＩＤ１２２２は重複して記憶される必要はない。例えば、図５に示すＸＭＬデータ５０１とＸＭＬデータ５０２がＸＭＬデータ記憶部１２１に記憶されている場合、ＸＭＬデータ５０２に出現するタグはＸＭＬデータ５０１に出現するタグと同一である。このような場合は、図６に示すタグ情報１２２１およびタグＩＤ１２２２によって、管理装置１は、ＸＭＬデータ５０１とＸＭＬデータ５０２とに出現するタグをまとめて管理できる。ただし、図５および図６はあくまで本実施例を説明するための例示であり、ＸＭＬデータ記憶部１２１に記憶されるＸＭＬデータの変化に応じて、タグ管理情報記憶部１２２に記憶される情報も適宜変化する。
【００５０】
〔検索補助データ記憶部２２１〕
図７は、検索補助データ記憶部２２１に記憶されるデータの一例を示す図である。図７の例では、検索補助データ記憶部２２１は、例えば、ＸＭＬデータＩＤ２２２１、タグＩＤ２２２２、データ値２２２３を関連付けて記憶する。
【００５１】
ＸＭＬデータＩＤ２２２１は、ＸＭＬデータ記憶部１２１に記憶されるＸＭＬデータそれぞれを一意に識別する識別情報である。説明のため、図７においては、図５のＸＭＬデータ５０１のＸＭＬデータＩＤを「Ｒｅｃ＿＃１」、ＸＭＬデータ５０２のＸＭＬデータＩＤを「Ｒｅｃ＿＃２」とする。ただし、ＸＭＬデータそれぞれを一意に識別可能であれば、ＸＭＬデータＩＤ２２２１の具体的なデータの形式や値は適宜変更されても良い。
【００５２】
タグＩＤ２２２２は、ＸＭＬデータに出現するタグそれぞれを一意に識別可能とする識別情報であり、図６のタグＩＤ１２２２と同様の情報である。つまり、タグＩＤ２２２２は、タグ管理情報記憶部１２２において、タグＩＤ２２２２と同一の値のタグＩＤ１２２２と関連付けられたタグ情報１２２１に示されるタグを示す識別情報であると言える。
【００５３】
データ値２２２３は、ＸＭＬデータに含まれる、タグに対応する値を示す情報である。
【００５４】
図５および図７を例として説明すると、ＸＭＬデータ５０１には、データの値として、タグ「／ｒｏｏｔ／ｉｄ」の値「ｉｔｅｍ００１」、タグ「／ｒｏｏｔ／ｃｏｓｔ」の値「１００円」、タグ「／ｒｏｏｔ／ｙｍｄ」の値「２０１７／０１／０１」が含まれる。なお、タグ「／ｒｏｏｔ」に対応する値はない。この態様に対応する情報として、検索補助データ記憶部２２１は、図７に示すデータ２２２−＃１を記憶する。検索処理装置２は、データ２２２−＃１を参照することによって、ＸＭＬデータ５０１自体を走査しなくとも、ＸＭＬデータ５０１に含まれるデータの値とその値に対応するタグが特定可能となる。言い換えれば、ＸＭＬデータ記憶部１２１に記憶される全てのＸＭＬデータについての情報が検索補助データ記憶部２２１に記憶されていれば、検索処理装置２はＸＭＬデータ記憶部１２１を走査せずに、データの検索処理を実行することができる。
【００５５】
なお、図７に示す種々の情報は、ＸＭＬデータ記憶部１２１に記憶されるＸＭＬデータの全てに対して生成され、ＸＭＬデータの追加、更新、削除等に応じて更新される。本実施例に示す情報処理システムのように、管理装置１、検索処理装置２が別個の装置であり、検索処理装置２を複数備える場合には、検索処理装置２の台数に応じて分割された情報が、複数の検索処理装置２それぞれに記憶されることとしても良い。これにより、複数の検索処理装置２を用いたデータ検索における並列処理や分散処理が可能となる。なお、検索補助データ記憶部２２１に記憶される情報は、例えば、管理装置１または検索処理装置２が、国際公開２０１０／１０６６８１号公報に記載される技術等を利用して、ＸＭＬデータを走査、解析することで生成することができる。
【００５６】
〔解析処理〕
図８は、管理装置１が受信した検索クエリについての解析処理（クエリ解析処理）の流れを示すフローチャートである。図８を用いて説明するクエリ解析処理は、管理装置１が端末装置３から検索クエリを受信したことに応じて逐次実行されても良い。あるいは、クエリ解析処理は、一定期間内に受信した検索クエリについての解析処理が、システム管理者等によって設定されたタイミングでまとめて実行されることとしても良い。
【００５７】
まず、管理装置１のクエリ解析部１１１は、対象となる全ての検索クエリが解析済みであるか否かを判定する（ステップＳ８０１）。ここで、対象となる全ての検索クエリとは、クエリ解析処理が端末装置３から検索クエリを受信したことに応じて逐次実行される場合は、受信した最新の検索クエリである。また、一定期間内に受信した検索クエリについての解析処理がまとめて実行される場合は、対象となる全ての検索クエリとは、一定期間内に受信した全ての検索クエリである。一定期間内に受信した検索クエリについての解析処理がまとめて実行される場合は、例えば、管理装置１は、一定期間内に受信した検索クエリをバッファ１２４に記憶し、クエリ解析処理の際に必要に応じてバッファ１２４から検索クエリの読み出しを行なうこととしても良い。
【００５８】
対象となる全ての検索クエリが解析済みである場合（ステップＳ８０１、ＹＥＳ）、図８に示すクエリ解析処理は終了される。
【００５９】
一方、対象となる全ての検索クエリが解析済みでない場合（ステップＳ８０１、ＮＯ）、クエリ解析部１１１は、対象となる検索クエリの１つを選択する（ステップＳ８０２）。
【００６０】
クエリ解析部１１１は、選択された検索クエリを解析し、検索クエリに指定される検索条件を特定する（ステップＳ８０３）。そして、クエリ解析部１１１は、検索条件に指定されたタグとデータの型（データ型）を特定する（ステップＳ８０４）。
【００６１】
図９は、検索条件の一例を示す図である。図９の検索条件９０１は、タグ「／ｒｏｏｔ／ｃｏｓｔ」のテキストデータの値が１００より大きいＸＭＬデータを検索する、という検索条件である。ここで、ＸＭＬデータは、文字列型のデータ値が記述されているが、検索条件９０１においては、ｖａｌ関数を用いて、「１００より大きい」という検索条件が指定されている。また、ｖａｌ関数は、数値型のデータ値を引数とする関数である。このため、図９の検索条件に基づく検索処理においては、データ値について数値データとしての大小比較の処理が行なわれるため、データ値が数値型である必要がある。つまり、図９の検索条件９０１は、数値型のデータ型を指定する検索条件と言える。
【００６２】
検索条件に指定されたデータ型の特定について、クエリ解析部１１１は、例えば、検索条件に用いられている関数（例えば、検索条件９０１の場合はｖａｌ関数が用いられているということ）に基づいて、データ型を特定することができる。
【００６３】
図１０は、関数とデータ型との対応関係を示す図である。図１０においては、関数の名前を示す関数名１００１と、関数に対応したデータ型を示すデータ型情報１００２とが関連付けられている。
【００６４】
図１０に示すように、指定される（引数となる）データ型は関数ごとに異なる。そのため、検索条件に含まれる関数、およびその関数に指定されるデータ型を特定することで、検索条件に指定されたデータ型を特定することができる。例えば、図１０においては、ｖａｌ関数はデータ型としてｉｎｔ型（数値型）を指定する関数であり、ｃｄａｔｅ関数は、データ型としてｄａｔｅ型（日付型）を指定する関数であることを示している。なお、図１０に示すような、各関数とデータ型との対応関係は、例えば管理装置１の記憶部１２０の記憶領域に予め保持されていても良い。あるいは、情報処理システムの稼働中に、関数の処理によって実際に取得（変換）されたデータのデータ型を特定することで、各関数とデータ型との対応関係が特定されることとしても良い。
【００６５】
図８の説明に戻ると、ステップＳ８０４の終了後、クエリ解析部１１１は、解析情報記憶部１２３に記憶された情報を参照する（ステップＳ８０５）。そして、クエリ解析部１１１は、ステップＳ８０４で特定したタグとデータ型との組合せを示す情報が解析情報記憶部１２３に記憶されているか否かを判定する（ステップＳ８０６）。
【００６６】
図１１は、解析情報記憶部１２３が記憶する情報の一例を示す図である。例えば、解析情報記憶部１２３は、タグ情報１２３１、データ型情報１２３２、カウント値１２３３を関連付けて記憶する。解析情報記憶部１２３が記憶する情報は、所定期間内に受信した検索クエリについて、クエリ解析部１１１が解析した結果を記憶（蓄積）した情報である。
【００６７】
タグ情報１２３１は、例えば、図６のタグ情報１２２１と同様の態様であって良く、データに対応するタグを示す情報である。なお、データ情報と同様にデータＩＤもまた、データに対応するタグを示す情報であるため、タグ情報１２３１のデータ列は、例えば、タグ情報に対応するタグＩＤを示すデータ列であっても良い。
【００６８】
データ型情報１２３２は、データ型を示す情報である。
【００６９】
カウント値１２３３は、解析対象の期間である所定期間内に受信した検索クエリにおいて、タグ情報１２３１に示されるタグと、データ型情報１２３２に示されるデータ型の組み合わせによる指定が出現した回数を示す情報である。
【００７０】
例えば、図１１のデータ行１２３−＃１には、タグ「／ｒｏｏｔ／ｃｏｓｔ」のデータに対して、所定期間内に、データ型としてｉｎｔ型が指定された検索クエリを１０００回受信したことが示されている。また、図１１のデータ行１２３−＃２には、タグ「／ｒｏｏｔ／ｃｏｓｔ」のデータに対して、所定期間内に、データ型としてｔｅｘｔ型（文字列型）が指定された検索クエリを２０回受信したことが示されている。このように、解析情報記憶部１２３には、各タグについて、所定期間内に受信した検索クエリにおいて、どのデータ型が何回指定されたか、という情報が記憶される。
【００７１】
ステップＳ８０６について具体例を説明すると、例えば、図９の検索条件９０１は、タグ「／ｒｏｏｔ／ｃｏｓｔ」と数値型のデータ型との組合せを指定する検索条件である。そして、図１１に示す状態において、解析情報記憶部１２３には、タグ「／ｒｏｏｔ／ｃｏｓｔ」と数値型のデータ型との組合せを指定する情報が、データ行１２３−＃１に示されるように記憶されている。このような場合、クエリ解析部１１１は、ステップＳ８０４で特定したタグとデータ型との組合せを示す情報が解析情報記憶部１２３に記憶されていると判定する（ステップＳ８０６、ＹＥＳ）。一方、ステップＳ８０４で特定した組合せに対応するデータ行が解析情報記憶部１２３に存在しない場合、クエリ解析部１１１は、ステップＳ８０４で特定したタグとデータ型との組合せを示す情報が解析情報記憶部１２３に記憶されていないと判定する（ステップＳ８０６、ＮＯ）。
【００７２】
ステップＳ８０６が肯定の判定となった場合（ステップＳ８０６、ＹＥＳ）、クエリ解析部１１１は、ステップＳ８０４で特定した組合せに対応する、解析情報記憶部１２３に記憶されたデータ行のカウント値１２３３を更新する（ステップＳ８０７）。具体的には、クエリ解析部１１１は、ステップＳ８０４で特定した組合せに対応するデータ行のカウント値１２３３の数値をインクリメントする。
【００７３】
一方、ステップＳ８０６が否定の判定となった場合（ステップＳ８０６、ＮＯ）、クエリ解析部１１１は、ステップＳ８０４で特定した組合せに対応するデータ行を解析情報記憶部１２３に追加で記憶する（ステップＳ８０８）。この際、カウント値１２３３の数値は１とする。
【００７４】
ステップＳ８０７またはＳ８０８の処理を実行後、クエリ解析部１１１は、ステップＳ８０１を再実行する。そして、対象となる全ての検索クエリが解析済みとなった場合（ステップＳ８０１、ＹＥＳ）、図８に示すクエリ解析処理は終了される。
【００７５】
〔情報更新（型変換データの生成）〕
図１２は、データ管理部１１２が実行する処理の流れを説明するフローチャートである。
【００７６】
まず、データ管理部１１２は、解析情報記憶部１２３を参照し、解析情報記憶部１２３に情報が記憶されたタグの中から、未処理のタグを１つ選択する（ステップＳ１２０１）。そして、データ管理部１１２は、解析情報記憶部１２３において、選択したタグを示すタグ情報１２３１と関連付けられたデータ型情報１２３２およびカウント値１２３３を特定する。そして、データ型情報１２３２に示されるデータ型それぞれについて、対応するカウント値１２３３の値を取得する（ステップＳ１２０２）。そして、データ管理部１１２は、取得したカウント値１２３３の値に基づいて、追加対象のデータ型を決定する（ステップＳ１２０３）。
【００７７】
ここで、追加対象のデータ型とは、後述する処理において検索補助データ記憶部２２１に追加されるデータのデータ型である。追加対象のデータ型は、例えば、ステップＳ１２０２で取得されたカウント値１２３３の値の中で最大のカウント値と関連付けられたデータ型情報１２３２に示されるデータ型としても良い。あるいは、追加対象のデータ型は、例えば、ステップＳ１２０２で取得されたカウント値１２３３の値の中の上位の所定個（例えば２つ）のカウント値と関連付けられたデータ型情報１２３２に示されるデータ型としても良い。あるいは、追加対象のデータ型は、ステップＳ１２０２で取得されたカウント値１２３３の値が所定の閾値以上のカウント値と関連付けられたデータ型情報１２３２に示されるデータ型としても良い。
【００７８】
ステップＳ１２０３で追加対象のデータ型が決定されると、データ管理部１１２は、ＸＭＬデータ記憶部１２１に記憶されたＸＭＬデータから、ステップＳ１２０１で選択されたタグに対応するデータの値を読み出す。そして、データ管理部１１２は、読み出したデータを追加対象のデータ型に変換した型変換データを生成する（ステップＳ１２０４）。なお、データ管理部１１２は、ステップＳ１２０３の終了後、ステップＳ１２０１で選択されたタグについての追加対象のデータ型が決定済みであることを示すために、ステップＳ１２０１で選択されたタグについての情報を解析情報記憶部１２３から削除することとしても良い。
【００７９】
データ管理部１１２は、タグ管理情報記憶部１２２に記憶された情報の更新を実行する（ステップＳ１２０５）。
【００８０】
また、データ管理部１１２は、検索補助データ記憶部２２１に記憶された情報の更新を行なう（ステップＳ１２０６）。具体的には、生成された型変換データと、型変換データの格納位置を示す情報とが対応付けられて、検索補助データ記憶部２２１に記憶される。
【００８１】
ステップＳ１２０２〜Ｓ１２０６の処理について、具体例を用いて説明する。例えば、タグ「／ｒｏｏｔ／ｃｏｓｔ」を例とすると、図１１において、タグ「／ｒｏｏｔ／ｃｏｓｔ」のタグ情報１２３１と関連付けられたカウント値１２３３は、「１０００」と「２０」である。「１０００」のカウント値は数値型である「ｉｎｔ」のデータ型に対応し、「２０」のカウント値は文字列型である「ｔｅｘｔ」のデータ型に対応する。
【００８２】
すなわち、図１１に示す状態は、タグ「／ｒｏｏｔ／ｃｏｓｔ」のデータを対象とした、「ｉｎｔ」のデータ型を指定する検索クエリを１０００回、「ｔｅｘｔ」のデータ型を指定する検索クエリを２０回、管理装置１が所定期間内に受信したことを示している。そして、例えば、追加対象のデータ型の決定条件を、最大のカウント値と関連付けられたデータ型情報１２３２に示されるデータ型とした場合、タグ「／ｒｏｏｔ／ｃｏｓｔ」のデータについての追加対象のデータ型は「ｉｎｔ」となる。ここまでの説明は、ステップＳ１２０２〜Ｓ１２０３に対応する。なお、追加対象のデータ型は１つに限定される必要はなく、例えば、カウント値の大きい順に、複数個（複数種類）のデータ型が追加対象のデータ型として決定されても良い。あるいは、カウント値に対して閾値が設定され、閾値以上のカウント値となったデータ型を追加対象のデータ型として決定することとしても良い。また、例えば、カウント値１２３３に代えて、単位時間当たりの検索クエリの受信頻度が記録されることとしても良い。
【００８３】
そして、タグ「／ｒｏｏｔ／ｃｏｓｔ」のデータに対応する型変換データとして、ｉｎｔ型のデータ値を生成する。例えば、図５のＸＭＬデータ５０１の場合は、タグ「／ｒｏｏｔ／ｃｏｓｔ」のデータの値が「１００円」である。ｉｎｔ型のデータ値を生成するにあたり、データ管理部１１２は、数値である「１００」のバイナリデータを生成する。この工程は、上述したステップＳ１２０４に対応する。
【００８４】
次に、データ管理部１１２は、型変換データの生成に応じて、タグ管理情報記憶部１２２に記憶された情報の更新について例示を用いて説明する。この工程は、上述したステップＳ１２０５に対応する。
【００８５】
図１３は、ステップＳ１２０５の例示における更新後のタグ管理情報記憶部１２２に記憶された情報の態様を示す図である。タグ情報１２２１、タグＩＤ１２２２、については、図６に示した態様と同様であるが、タグＩＤ（型変換）１２２３、データ型情報１２２４がさらに含まれる点に差分がある。
【００８６】
タグＩＤ（型変換）１２２３は、生成された型変換データに対して付与されるタグに対応するタグＩＤを示すデータ列である。
【００８７】
データ型情報１２２４は、型変換データのデータ型を示すデータ列である。
【００８８】
タグＩＤ（型変換）１２２３は、タグ情報１２２１に示されるタグ（またはタグＩＤ１２２２に示されるタグＩＤ）と追加対象のデータ型との組み合わせに対して、タグＩＤ１２２２のデータ列に存在する値と重複しない値が一意に付与される。図１３の場合は、タグ「／ｒｏｏｔ／ｃｏｓｔ」（またはタグＩＤ「３」）と、追加対象のデータ型であるｉｎｔ型との組み合わせについて、タグＩＤ（型変換）１２２３として「５」の値が付与される。
【００８９】
その後、データ管理部１１２は、生成された型変換データと、型変換データの格納位置を示す情報とを対応付けて、検索補助データ記憶部２２１に記憶する。この工程は、上述したステップＳ１２０６に対応する。
【００９０】
図１４は、生成された型変換データと、型変換データの格納位置を示す情報とが記憶された検索補助データ記憶部２２１の態様を示す図である。ステップＳ１２０４〜Ｓ１２０６によって、図７に示した状態から、生成された型変換データについての情報が追加されている。
【００９１】
具体的には、図１４の態様では、図７の状態と比較して、データ行２２２−＃２が新たに生成されている。データ行２２２−＃２は、ＸＭＬデータＩＤ２２２１の値が「Ｒｅｃ＿＃１」であり、タグＩＤ２２２２の値が「５」であり、また、データ値２２２３が数値「１００」のバイナリデータであるデータ行である。タグＩＤ２２２２の値である「５」は、図１３を用いて説明したタグＩＤ（型変換）１２２３の値である「５」と対応している。
【００９２】
なお、例示においては、数値「１００」のバイナリデータが記憶されることとなるが、図１４の図示においては説明のため、四角枠に囲まれた数値が、囲まれた数値に対応するバイナリデータを示すものとする。図１４のデータ行２２２−＃２は、「Ｒｅｃ＿＃１」に示されるＸＭＬデータに含まれる値として、タグＩＤ「５」、データ値「１００（バイナリデータ）」という値を含むことを示す。これにより、検索補助データ記憶部２２１には、ステップＳ１２０３で決定された追加対象のデータ型に対応する新たな検索用データが生成されたことになる。
【００９３】
ここで、例えば、検索補助データ記憶部２２１に記憶された情報の更新は、例えば、管理装置１と検索処理装置２とが連携して動作することにより実現される。
【００９４】
具体例としては、ステップＳ１２０５で更新されたタグ管理情報記憶部１２２内の情報に基づき、まず、管理装置１のデータ管理部１１２が、型変換データを埋め込んだＸＭＬデータを生成する。型変換データを埋め込んだＸＭＬデータとは、例えば上述の例示の場合は、「Ｒｅｃ＿＃１」に示されるＸＭＬデータ５０１に、タグＩＤ「５」（またはタグＩＤ「５」に対応するタグ）とデータ値「１００（バイナリデータ）」とを関連付けた情報が追記された新たなＸＭＬデータである。
【００９５】
データ管理部１１２は、生成した新たなＸＭＬデータを検索処理装置２に送信する。ここで検索処理装置２に送信されるＸＭＬデータは、新たなＸＭＬデータ全体であっても良いし、新たなＸＭＬデータのうち、追記された情報を含む一部分であっても良い。
【００９６】
新たなＸＭＬデータを受信した検索処理装置２の処理部２１０は、受信した新たなＸＭＬデータを走査、解析し、検索補助データ記憶部２２１に記憶される種々の情報を取得する。ここで取得される情報には、型変換データに対応する情報（例えば、図１４の例示でデータ行２２２−＃２に相当する情報）を含む。そして、処理部２１０は、取得した情報に基づいて、検索補助データ記憶部２２１に記憶される情報を更新する。ここで、検索処理装置２は、受信した新たなＸＭＬデータについては、検索補助データ記憶部２２１に記憶される情報を更新した後は必ずしも保持しなくても良い。
【００９７】
以上の処理の流れにより、検索補助データ記憶部２２１に記憶された情報の更新が行なわれる。ただし、上述の処理の流れはあくまでも更新処理の一態様であり、検索補助データ記憶部２２１に記憶された情報の更新は、管理装置１と検索処理装置２のいずれか一方が主体となって実行されることとしても良い。
【００９８】
例示の態様においては、ステップＳ１２０５〜Ｓ１２０６の処理が実行されることで、検索補助データ記憶部２２１、タグ管理情報記憶部１２２の情報がそれぞれ図１３、図１４のように更新される。
【００９９】
図１２の説明に戻ると、ステップＳ１２０６の実行後、データ管理部１１２は、解析情報記憶部１２３に情報が記憶された全てのタグについて処理済であるか否かを判定する（ステップＳ１２０７）。処理済みとは、上述したステップＳ１２０１〜Ｓ１２０６の処理が実行済みであることを意味する。全てのタグについて処理済でない、すなわちステップＳ１２０１〜Ｓ１２０６の処理が未処理であるタグが存在する場合（ステップＳ１２０７、ＮＯ）、データ管理部１１２は未処理のタグのいずれかについてステップＳ１２０１からの処理を実行する。全てのタグについて処理済である場合（ステップＳ１２０７、ＹＥＳ）、図１２に示す一連の処理は終了する。
【０１００】
〔データの検索処理〕
本実施例におけるデータの検索処理（以降、データ検索処理と記載）について説明する。図１５はデータ検索処理の一連の処理の流れを示すフローチャートである。
【０１０１】
まず、管理装置１が端末装置３から検索クエリを受信すると（ステップＳ１５０１）、クエリ解析部１１１は、検索クエリに指定される検索条件を特定する（ステップＳ１５０２）。そして、クエリ解析部１１１は、検索条件に指定されたタグとデータの型（データ型）を特定する（ステップＳ１５０３）。ステップＳ１５０１〜Ｓ１５０３の具体的な処理は、例えば、図８のステップＳ８０２〜Ｓ８０４と同様に実行されても良い。
【０１０２】
続いて、クエリ解析部１１１は、タグ管理情報記憶部１２２を参照する（ステップＳ１５０４）。
【０１０３】
そして、クエリ解析部１１１は、ステップＳ１５０３で特定したタグに関連付けて、ステップＳ１５０３で特定したデータ型に一致するデータ型がタグ管理情報記憶部１２２に記憶されているか否かを判定する（ステップＳ１５０５）。具体的には、クエリ解析部１１１は、タグ管理情報記憶部１２２のタグ情報１２２１について、ステップＳ１５０３で特定したタグを示すデータ行を検索する。ステップＳ１５０３で特定したタグを示すデータ行が見つかった場合、クエリ解析部１１１は、見つかったデータ行のデータ型情報１２２４に値が記憶されているかを判定する。データ型情報１２２４に値が記憶されている場合は、ステップＳ１５０３で特定したデータ型に一致するデータ型がタグ管理情報記憶部１２２に記憶されていると判定される（ステップＳ１５０５、ＹＥＳ）。一方、データ型情報１２２４に値が記憶されていない場合は、ステップＳ１５０３で特定したデータ型に一致するデータ型がタグ管理情報記憶部１２２に記憶されていないと判定される（ステップＳ１５０５、ＮＯ）。
【０１０４】
ステップＳ１５０５の判定結果がＹＥＳの場合、ステップＳ１５０１で受信した検索クエリを変換する処理（クエリ変換処理）を実行する（ステップＳ１５０６）。具体的には、例えば、クエリ解析部１１１は、ステップＳ１５０５で見つかったデータ行のタグＩＤ（型変換）１２２３の値を取得する。そして、受信した検索クエリのタグを、取得したタグＩＤ（型変換）１２２３の値に示されるタグに変更した検索クエリ（変換後検索クエリ）を生成する。
【０１０５】
ここで、変換後検索クエリでは、テキストデータに対するタグ（ステップＳ１５０１で受信した検索クエリにおいて指定されていたタグ）が、型変換データに対するタグに変更されている。また、型変換データに対するタグと関連付けて、型変換データが検索補助データ記憶部２２１に記憶されている。
【０１０６】
したがって、変換後検索クエリによるデータ検索処理が実行されると、テキストデータに代えて、データ型が変更された型変換データが取得されることとなる。この場合、データ検索処理の間に実行されるデータの型変換の処理を不要とすることができる。
【０１０７】
変換後検索クエリを生成後は、ステップＳ１５０７の処理が実行される。
【０１０８】
一方、ステップＳ１５０５の判定結果がＮＯの場合、ステップＳ１５０６の処理は実行されることなく、ステップＳ１５０７の処理が実行される。
【０１０９】
ステップＳ１５０６では、検索制御部１１４が、検索クエリを検索処理装置２に送信し、検索処理を実行させる（ステップＳ１５０７）。ステップＳ１５０７で送信される検索クエリは、ステップＳ１５０５の判定結果がＹＥＳであった場合は、ステップＳ１５０６で生成された変換後検索クエリである。一方、ステップＳ１５０５の判定結果がＮＯであった場合は、ステップＳ１５０６の処理は実行されないので、ステップＳ１５０７で送信される検索クエリはステップＳ１５０１で受信した検索クエリとなる。ステップＳ１５０７で送信された検索クエリに応じて、検索処理装置２の検索処理部２１１がデータ検索処理を実行する。
【０１１０】
そして、管理装置１は、ステップＳ１５０７で送信された検索クエリに応じて、検索処理装置２から送信された検索結果を受信する。そして、検索制御部１１４は、受信した検索結果に基づいて、端末装置３に、検索クエリに対する応答の検索結果を送信する（ステップＳ１５０８）。
【０１１１】
〔本実施例の技術的効果〕
以上で述べた本実施例について、技術的効果を説明する。例えば、本実施例においては、情報処理システムは、ＸＭＬ形式、すなわちテキスト形式のデータを格納するデータベースとなっている。
【０１１２】
ここで、テキスト形式で格納されたデータに対して、例えば、数値での大小比較を要する検索処理が実行されることとする。大小比較を行なうためには、検索範囲のデータが数値形式であることが必要となるため、テキスト形式のデータの型変換が行なわれ、データの型が数値形式のデータが生成される。そして、生成された数値形式のデータを用いて、検索条件に合致するデータの検索が行なわれる。このとき、データ検索時のデータの型変換のため、検索性能、すなわち検索要求に対する応答性能が低下するという問題がある。
【０１１３】
本実施例においては、解析情報記憶部１２３は、端末装置３から受信した検索クエリを解析した解析結果を記憶（蓄積）する。具体的には、例えば、解析情報記憶部１２３は、所定期間内に受信した検索クエリを対象として、検索クエリに指定されたタグとデータ型との組み合わせの出現回数を解析結果として記録する。そして、タグそれぞれについて、解析結果における出現回数の多いデータ型に変換した型変換データを、検索補助データ記憶部２２１に記憶する。
【０１１４】
これにより、解析結果における出現回数の多いデータ型が検索クエリに指定された場合には、予め生成された型変換データを利用してデータ検索処理が実行されるため、データ検索処理の間にデータの型変換を実行する必要が無くなる。そのため、データの型変換に起因する検索性能の低下を抑止することができる。
【０１１５】
追加対象のデータ型の決定については、例えば、ＸＭＬデータ記憶部１２１に記憶されるＸＭＬデータの値に基づいて決定する態様も考えられる。例えば、ＸＭＬデータのタグごとにテキスト形式のデータの値を参照し、データの内容から、どのようなデータ型の指定で検索されるかを推定する態様である。
【０１１６】
しかし、例えば、データの値としては数値を示すデータに見えるデータであっても、データの検索処理においてはテキスト型が指定されるといったことが考えられる。また例えば、データの値としては日付を示すデータと推定されたとしても、和暦形式の日付で検索される可能性もあれば、西暦形式の日付で検索される可能性もあり、あるいは単にテキスト型のデータとして検索が行なわれる可能性もある。このように、記憶されたデータの値に基づいて追加対象のデータ型が決定される場合には、実際にはほとんど検索に利用されないデータ型を追加対象のデータ型として決定してしまったり、追加対象のデータ型を絞り込めないおそれがある。
【０１１７】
一方、本実施例では、実際に受信した検索条件を解析することで追加対象のデータ型の決定が決定されるため、追加後にもデータ検索で指定される可能性がより高いデータ型を追加対象のデータ型とすることができる。また、解析の結果、検索条件において指定されたデータ型の中から、指定された回数や頻度の多い所定数のデータ型が追加対象のデータ型として決定される。したがって、データの追加によってタグ管理情報記憶部１２２や検索補助データ記憶部２２１に記憶される情報が際限なく増加してしまうことが抑止される。
【０１１８】
〔データ追加時の処理〕
図１６は、ＸＭＬデータ記憶部１２１に追加のデータが記憶された場合に実行される一連の処理を示すフローチャートである。以降の説明ではＸＭＬデータ記憶部１２１に追加で記憶されることとなるデータを、「新規データ」と記載することがある。
【０１１９】
まず、データ管理部１１２は、新規データを受信する（ステップＳ１６０１）。次に、データ管理部１１２は、タグ管理情報記憶部１２２を参照する（ステップＳ１６０２）とともに、新規データについての解析を実行する（ステップＳ１６０３）。ここで、データ管理部１１２は、タグ管理情報記憶部１２２を参照することで、タグ管理情報記憶部１２２に情報が登録されているタグの一覧を取得しておく。新規データについての解析とは、新規データに含まれるタグを特定する処理である。
【０１２０】
その後、データ管理部１１２は、ステップＳ１６０３の解析の結果特定された新規データに含まれるタグの中から、タグを１つ選択する（ステップＳ１６０４）。そして、ステップＳ１６０４で選択されたタグを示す情報が、検索補助データ記憶部２２１に登録済みであるか否かを判定する（ステップＳ１６０５）。言い換えれば、データ管理部１１２は、ステップＳ１６０４で選択されたタグを示すデータ値が、検索補助データ記憶部２２１に記憶されたタグ情報１２２１に含まれるか否かを判定する。
【０１２１】
ステップＳ１６０４で選択されたタグを示す情報が登録済みでない場合（ステップＳ１６０５、ＮＯ）、データ管理部１１２は、ステップＳ１６０４で選択されたタグについての情報をタグ管理情報記憶部１２２に記憶する（ステップＳ１６０６）。具体的には、データ管理部１１２は、ステップＳ１６０４で選択されたタグを示すデータ値をタグ情報１２２１に新たに記憶するとともに、新たに記憶したデータ値に関連付けて、一意のタグＩＤをタグＩＤ１２２２として記憶する。
【０１２２】
一方、ステップＳ１６０４で選択されたタグを示す情報が登録済みの場合（ステップＳ１６０５、ＹＥＳ）、データ管理部１１２は、ステップＳ１６０４で選択されたタグについてのデータ型情報１２２４がタグ管理情報記憶部１２２に記憶されているか否かを判定する（ステップＳ１６０７）。
【０１２３】
データ型情報１２２４がタグ管理情報記憶部１２２に記憶されている場合（ステップＳ１６０７、ＹＥＳ）、データ管理部１１２は、新規データに含まれる、ステップＳ１６０４で選択されたタグに対応するデータ値についての型変換データを生成する（ステップＳ１６０８）。例えば、タグ管理情報記憶部１２２に図１３に示す情報が記憶されており、ステップＳ１６０４で選択されたタグがタグ「／ｒｏｏｔ／ｃｏｓｔ」であった場合を例とする。この場合、データ管理部１１２は、ステップＳ１６０４で選択されたタグに対応するデータ値を、データ型情報１２２４に示されるデータ型、すなわち数値型のデータ値である型変換データを生成する。そして、データ管理部１１２は、生成した型変換データを、受信した新規データ（ＸＭＬデータ）に埋め込む。これにより、追加対象のデータ型が決定されているタグのデータが新規データに含まれている場合は、新規データが追加される時点で型変換データが生成される。なお、ステップＳ１６０７においてデータ型情報１２２４がタグ管理情報記憶部１２２に記憶されていない場合（ステップＳ１６０７、ＮＯ）は、ステップＳ１６０８の処理は省略される。
【０１２４】
その後、ステップＳ１６０９において、データ管理部１１２は、ステップＳ１６０３の解析の結果特定された新規データに含まれるタグを、ステップＳ１６０４で全て選択済みであるか否かを判定する（ステップＳ１６０９）。未選択のタグが存在する場合（ステップＳ１６０９、ＮＯ）は、ステップＳ１６０４に戻り、データ管理部１１２は、未選択のタグの中からタグを１つ選択して、以降の処理を繰り返し実行する。新規データに含まれるタグが全て選択済みである場合（ステップＳ１６０９、ＹＥＳ）、図１６に示す一連の処理は終了される。
【０１２５】
新規データが記憶される場合に、以上の処理が実行されることで、新規データについても、型変換データを予め生成し、型変換データを記憶しておくことができる。
【０１２６】
そして、例えばステップＳ１２０６において例示した処理等により、型変換データが埋め込まれた新規データ（ＸＭＬデータ）がＸＭＬデータを走査、解析されることで、検索補助データ記憶部２２１に記憶される、新規データに対応した種々の情報が取得される。
【０１２７】
〔ハードウェア構成〕
図１７は、本実施例における管理装置１のハードウェア構成の一例である。なお、図１７では、管理装置１のハードウェア構成の一例を示すが、後述のように、検索処理装置２−１〜２−ｎ、端末装置３等についても同様の構成が採用可能である。
【０１２８】
管理装置１は、例えば、それぞれがバス１７０１で相互に接続された、ＣＰＵ（Central Processing Unit）１７０２、メモリ１７０３、記憶装置１７０４、ＮＩＣ１７０５、媒体読取装置１７０６、入力装置１７０７、表示装置１７０８、を備える情報処理装置である。
【０１２９】
ＣＰＵ１７０２は、管理装置１における種々の動作制御を行なう。メモリ１７０３、記憶装置１７０４は、本実施例で説明した各種の処理を実行するプログラムや、各種の処理に利用される種々のデータを記憶する。記憶装置１７０４は、例えば、ＨＤＤ（Hard Disk Drive）や、ＳＳＤ（Solid State Drive）等の記憶媒体である。
【０１３０】
ＣＰＵ１７０２は、メモリ１７０３あるいは記憶装置１７０４に記憶されたプログラムを読み出して処理、制御を実行することで、図２に示す処理部１１０に含まれる各機能部が実現されても良い。また、メモリ１７０３、記憶装置１７０４のそれぞれは、例えば、図２に記載した記憶部１２０として機能することができる。なお、ＣＰＵ１７０２は、ＭＰＵ（Micro Processing Unit）、ＡＳＩＣ（Application Specific Integrated Circuit）などのハードウェア回路で代替されても良い。
【０１３１】
ＮＩＣ１７０５は、有線または無線のネットワークを介したデータの送受信に用いられるハードウェアである。ＮＩＣ１７０５は、ＣＰＵ１７０２の制御の下で、通信部１０１として機能することができる。
【０１３２】
媒体読取装置１７０６は、記録媒体からデータを読み取るための装置であり、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のディスク媒体に記憶されたデータを読み取るディスクドライブや、メモリカードに記憶されたデータを読み取るカードスロット等である。前述した記憶部１２０に記憶されるデータの一部または全部は、媒体読取装置１７０６を用いて読み取り可能な記録媒体に記憶されることとしても良い。
【０１３３】
入力装置１７０７は、ユーザー（システム管理者を含む）からの入力や指定を受け付ける装置である。入力装置１７０７の例としては、例えばキーボードやマウス、タッチパッドが挙げられる。表示装置１７０８は、ＣＰＵ１７０２の制御の下で、種々の情報の表示を行なう。表示装置１７０８は、例えば液晶ディスプレイである。
【０１３４】
本実施例の検索処理装置２−１〜２−ｎ、端末装置３については、図１７と同様のハードウェア構成のコンピュータを用いることが可能であるため、説明を省略する。ただし、ＣＰＵ、メモリ、記憶装置、ＮＩＣ、媒体読取装置、入力装置、出力装置の具体的なハードウェア（型式や性能等）は、それぞれの装置で異なって構わない。
【０１３５】
また、本実施例では、情報処理システムとして、ハードウェアとして１台の管理装置１と、複数台の検索処理装置２とを含むシステムを例としたが、検索処理装置２の台数は、１台の場合も含めて、一意に限定される必要はない。また、例えば、情報処理システムが管理装置１と検索処理装置２の機能を有する単体のハードウェアで実現されることとしても構わない。
【符号の説明】
【０１３６】
１  管理装置
２−１〜２−ｎ  検索処理装置
３  端末装置
４  ネットワーク
１７０１  バス
１７０２  ＣＰＵ
１７０３  メモリ
１７０４  記憶装置
１７０５  ＮＩＣ
１７０６  媒体読取装置
１７０７  入力装置
１７０８  表示装置
【図１】
2019021238.tif 000003
【図２】
2019021238.tif 000004
【図３】
2019021238.tif 000005
【図４】
2019021238.tif 000006
【図５】
2019021238.tif 000007
【図６】
2019021238.tif 000008
【図７】
2019021238.tif 000009
【図８】
2019021238.tif 000010
【図９】
2019021238.tif 000011
【図１０】
2019021238.tif 000012
【図１１】
2019021238.tif 000013
【図１２】
2019021238.tif 000014
【図１３】
2019021238.tif 000015
【図１４】
2019021238.tif 000016
【図１５】
2019021238.tif 000017
【図１６】
2019021238.tif 000018
【図１７】
2019021238.tif 000019