(57)【特許請求の範囲】
【請求項１】
検索対象キーと通信品質状態の値とを有するレコードの集合を格納するデータベースと、
入力された検索キーに基づき前記データベースに対する検索を行って、検索結果を出力する検索処理手段と、を有する検索処理装置であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索処理手段は、前記データベースに前記検索キーと完全一致する検索対象キーがある場合に当該検索対象キーに対応する通信品質状態の値を出力し、完全一致する検索対象キーがない場合に、前記検索キーの一部に完全一致する検索対象キーのうち、最長の検索対象キーに対応する通信品質状態の値を出力する
ことを特徴とする検索処理装置。
【請求項２】
前記データベースは、いずれの検索対象キーにも対応しないデフォルト値を有し、前記検索処理手段は、前記検索キーのいずれの部分とも一致する検索対象キーがない場合に、前記デフォルト値を出力する
ことを特徴とする請求項１に記載の検索処理装置。
【請求項３】
前記検索キーのデータ形式は、前記データベースにおける検索対象キーのうち、最下位の階層の検索対象キーと同じデータ形式である
ことを特徴とする請求項１又は２に記載の検索処理装置。
【請求項４】
検索対象キーと通信品質状態の値とを有するレコードの集合を格納するためのデータベースを構築するデータベース構築装置であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索対象に相当するデータと当該データに対応する通信品質状態の値とを有する元データを取得する取得手段と、
前記元データから、対象としている階層の検索対象キーに該当する複数のデータを抽出し、当該複数のデータにおける通信品質状態の値の代表値を当該検索対象キーに対応する通信品質状態の値とし、当該検索対象キーと当該通信品質状態の値とを前記データベースに格納する処理を、階層毎に実行するデータ作成手段と
を備えることを特徴とするデータベース構築装置。
【請求項５】
検索対象キーと通信品質状態の値とを有するレコードの集合を格納するデータベースを備え、入力された検索キーに基づき前記データベースに対する検索を行って、検索結果を出力する検索処理装置が実行する検索処理方法であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索キーを取得し、前記データベースに当該検索キーと完全一致する検索対象キーがある場合に当該検索対象キーに対応する通信品質状態の値を出力し、完全一致する検索対象キーがない場合に、前記検索キーの一部に完全一致する検索対象キーのうち、最長の検索対象キーに対応する通信品質状態の値を出力する
ことを特徴とする検索処理方法。
【請求項６】
検索対象キーと通信品質状態の値とを有するレコードの集合を格納するためのデータベースを構築するデータベース構築装置が実行するデータベース構築方法であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索対象に相当するデータと当該データに対応する通信品質状態の値とを有する元データを取得する取得ステップと、
前記元データから、対象としている階層の検索対象キーに該当する複数のデータを抽出し、当該複数のデータにおける通信品質状態の値の代表値を当該検索対象キーに対応する通信品質状態の値とし、当該検索対象キーと当該通信品質状態の値とを前記データベースに格納する処理を、階層毎に実行するデータ作成ステップと
を備えることを特徴とするデータベース構築方法。
【請求項７】
コンピュータを、請求項１ないし３のうちいずれか１項に記載の検索処理装置の検索処理手段として機能させるためのプログラム。
【請求項８】
コンピュータを、請求項４に記載のデータベース構築装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索キーを用いてデータベースを検索する技術に関連するものである。
【背景技術】
【０００２】
ユーザ端末に対して、当該ユーザ端末の通信品質の状態に応じたサービスを提供するために、例えば、通信品質の状態を格納したデータベース（以下、通信品質状態データベース）を構築し、当該通信品質状態データベースを参照してサービス内容を動的に変える技術がある。
【０００３】
通信品質状態データベースは、例えば、場所・時間毎の過去の通信品質の状態や、その他各種の直近の通信品質の状態の情報を加工し、場所・時間帯等をキーとして、そのキーに対応する通信品質の状態を格納するという形で構築される。通信品質状態データベースの構築にあたっては、ユーザ端末からの散発的なログを用いる場合もあり、全てのキーに対応するデータが入力されるわけではなく、データ欠損を含む通信品質状態データベースになる場合がある。例えば、場所について(市町村単位でなく県単位等に)粒度を粗くしたデータベースであれば、全国どこの情報でもなにかしらマッチするが、粒度の細かいもの(例：市町村単位)では、常に各エントリごとに十分な入力データが確保できるわけではなくデータ欠損が発生する。
【０００４】
上記のような通信品質の状態に応じたサービスを提供するためには、通信品質状態データベースにおける精度（粒度）は高いほど良いが、全ての通信品質状態データベースを高精度に構築することは難しく、実際には、高精度の通信品質状態データベースと低精度の通信品質状態データベースとが混在する状況になる。
【０００５】
高精度(細粒度)の通信品質状態データベースにはデータの欠損が多くあり、データベースとしては不完全である場合が多い。一方、低精度（荒粒度）の通信品質状態データベースは、粒度は荒いが欠損は少ない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】http://pizyumina.hatenablog.com/entry/2014/03/25/232725
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のように、高精度の通信品質状態データベースと低精度の通信品質状態データベースがある場合に、従来技術では、優先順位の高い高精度の通信品質状態データベースを先に検索し、検索結果があれば検索結果を返し、検索結果がない場合は改めて低精度の通信品質状態データベースの検索を行い、その結果を返すという処理が必要であり、処理負荷の増加、処理遅延等の問題があった。また、２回の検索を実施する時間的な余裕がない場合は、最初から低精度の通信品質状態データベースの検索を行う場合もあるが、その場合、高精度の通信品質状態データベースを活用できないという問題がある。
【０００８】
本発明は上記の点に鑑みてなされたものであり、粒度及び欠損度合の異なるデータ群に対する検索を行う場合に、粒度毎の複数のデータベースを構築することなく、効率的にデータ群に対する検索を行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の実施の形態によれば、検索対象キーと通信品質状態の値とを有するレコードの集合を格納するデータベースと、
入力された検索キーに基づき前記データベースに対する検索を行って、検索結果を出力する検索処理手段と、を有する検索処理装置であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索処理手段は、前記データベースに前記検索キーと完全一致する検索対象キーがある場合に当該検索対象キーに対応する通信品質状態の値を出力し、完全一致する検索対象キーがない場合に、前記検索キーの一部に完全一致する検索対象キーのうち、最長の検索対象キーに対応する通信品質状態の値を出力する
ことを特徴とする検索処理装置が提供される。
【００１０】
また、本発明の実施の形態によれば、検索対象キーと通信品質状態の値とを有するレコードの集合を格納するためのデータベースを構築するデータベース構築装置であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索対象に相当するデータと当該データに対応する通信品質状態の値とを有する元データを取得する取得手段と、
前記元データから、対象としている階層の検索対象キーに該当する複数のデータを抽出し、当該複数のデータにおける通信品質状態の値の代表値を当該検索対象キーに対応する通信品質状態の値とし、当該検索対象キーと当該通信品質状態の値とを前記データベースに格納する処理を、階層毎に実行するデータ作成手段と
を備えることを特徴とするデータベース構築装置が提供される。
【００１１】
また、本発明の実施の形態によれば、検索対象キーと通信品質状態の値とを有するレコードの集合を格納するデータベースを備え、入力された検索キーに基づき前記データベースに対する検索を行って、検索結果を出力する検索処理装置が実行する検索処理方法であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索キーを取得し、前記データベースに当該検索キーと完全一致する検索対象キーがある場合に当該検索対象キーに対応する通信品質状態の値を出力し、完全一致する検索対象キーがない場合に、前記検索キーの一部に完全一致する検索対象キーのうち、最長の検索対象キーに対応する通信品質状態の値を出力する
ことを特徴とする検索処理方法が提供される。
【００１２】
また、本発明の実施の形態によれば、検索対象キーと通信品質状態の値とを有するレコードの集合を格納するためのデータベースを構築するデータベース構築装置が実行するデータベース構築方法であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索対象に相当するデータと当該データに対応する通信品質状態の値とを有する元データを取得する取得ステップと、
前記元データから、対象としている階層の検索対象キーに該当する複数のデータを抽出し、当該複数のデータにおける通信品質状態の値の代表値を当該検索対象キーに対応する通信品質状態の値とし、当該検索対象キーと当該通信品質状態の値とを前記データベースに格納する処理を、階層毎に実行するデータ作成ステップと
を備えることを特徴とするデータベース構築方法が提供される。
【発明の効果】
【００１３】
本発明の実施の形態によれば、粒度及び欠損度合の異なるデータ群に対する検索を行う場合に、粒度毎の複数のデータベースを構築することなく、効率的にデータ群に対する検索を行うことを可能とする技術が提供される。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係るシステムの構成図である。
【図２】通信品質状態データベース１０２の構成を示す図である。
【図３】通信品質状態データベース１０２の構築手順を示すフローチャートである。
【図４】検索処理部１０１の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、以下で説明する実施の形態では、構築するデータベースの例として通信品質状態データベースを用いているが、これは一例に過ぎず、本発明は様々な分野のデータベース検索に適用可能である。
【００１６】
（システム構成）
図１に、本発明の実施の形態に係るシステム構成を示す。図１に示すように、本発明の実施の形態に係るシステムは、検索処理装置１００、データベース構築装置２００、及び元データ収集装置３００を有する。本システムにおいて、各装置は図示のように、ネットワークを介して接続されている。
【００１７】
図１に示すように、検索処理装置１００は、検索処理部１０１と通信品質状態データベース１０２を有する。検索処理部１０１は、検索キーの入力を受けて、通信品質状態データベース１０２を検索し、検索キーに該当する値を取得して、当該値を検索結果として出力する。通信品質状態データベース１０２には、通信品質状態データが格納されている。通信品質状態データベース１０２の構成、及び検索処理部１０１による検索方法の詳細については後述する。
【００１８】
データベース構築装置２００は、通信品質状態データベース１０２を構成するデータを作成し、通信品質状態データベース１０２に登録（格納）することにより、通信品質状態データベース１０２を構築（更新を含む）する装置であり、元データ取得部２０１とデータ作成部２０２を有する。元データ取得部２０１は、元データ収集装置３００から元データを取得する。データ作成部２０２は、当該元データから、通信品質状態データベース１０２に登録するためのデータを作成し、当該データを通信品質状態データベース１０２に登録する。データベース構築方法の詳細については後述する。
【００１９】
元データ収集装置３００は元データを収集する装置である。元データ収集装置３００が元データを収集する方法は、特定の方法に限定されないが、本実施の形態では、一例として、クラウドソーシングを利用して、各地に所在する携帯端末を有するモニタユーザから、当該モニタユーザの位置情報と通信品質の値を収集することを想定している。ただし、このようにして元データを収集することは一例に過ぎず、元データはどのような方法で収集してもよい。
【００２０】
検索処理装置１００における検索処理部１０１は、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、当該機能部が有する機能は、コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、当該機能部で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００２１】
通信品質状態データベース１０２は、上記コンピュータにおける記憶装置（メモリ、ハードディクス等）に格納されるデータにより構成されている。
【００２２】
また、データベース構築装置２００は、１つ又は複数のコンピュータに、本発明の実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、当該装置が有する機能は、コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００２３】
なお、図１の例では、検索処理装置１００とデータベース構築装置２００が別々の装置として示されているが、データベース構築装置２００を別装置として備えずに、データベース構築装置２００の機能を検索処理装置１００内に備えることとしてもよい。
【００２４】
（通信品質状態データベース１０２の構成について）
本発明の実施の形態に係る通信品質状態データベース１０２は、最長一致検索を可能とするデータベースである。通信品質状態データベース１０２において、最長一致検索を可能とするデータベースの実装技術自体は既存技術であり、特定の技術に限定されないが、例えば"patricia trie" [https://pypi.python.org/pypi/patricia-trie]を利用できる。なお、一例として、最長一致検索を可能とするデータベースの実装レベルでは、データベースにおけるデータは木構造を有し、木の探索によって検索が行われる。ただし、このような木構造等の実装技術自体は既存技術であるため、本実施の形態における説明では、「レコード」等の表現を用いることとする。
【００２５】
本発明の実施の形態における通信品質状態データベース１０２の要件は、（１）可変長のキーを検索キーとして用いることができる、（２）検索時には検索キーに完全一致するレコードがあればそれを返し、一致するキーがなければ、他のレコードのキーの中で、検索キーに部分一致するもののうち、キーが最も長い(もっとも一致する部分が長い)キーに対応する値を返す、ということである。
【００２６】
なお、（１）の要件に関して、キー長に実装等の制約で上限はあってもよいが、用いる各階層のキー（後述する荒粒度キー、中粒度キー等）の最大長の和までは少なくとも対応できるようにする。
【００２７】
通信品質状態データベース１０２に格納されるデータ（検索対象キー）は階層関係を有している。当該データの要件は、各階層の上下関係が明確であるということである。階層の上下関係が明確であるとは、例えば、市区町村名階層のレコードは上位の都道府県名階層の特定の１レコードに必ず対応することである。なお、例外的に対応しない場合がある場合には、重複登録をすることで回避する。一例として、「町田市」が東京都と神奈川県両方にまたがっていたとすると町田市のレコードについては、"東京.町田"と"神奈川.町田"の２つのレコードを作成すればよい。
【００２８】
本実施の形態に係る通信品質状態データベース１０２の構成例を図２に示す。図２に示すように、本実施の形態に係る通信品質状態データベース１０２は、検索キーと照合する対象となる検索対象キーと、検索対象キーに対応する値とからなるレコードの集合を格納している。通信品質状態データベース１０２における「値」は、検索対象キーに対応する通信品質状態の値である。
【００２９】
本実施の形態に係る通信品質状態データベース１０２における各検索対象キーは文字列で格納されている。例えば、「都道府県:東京、区名:渋谷、基地局ID:3567」の検索対象キーの場合、区切り文字を"."とすると、"東京.渋谷.3567"というデータが検索対象キーとして格納される。
【００３０】
本実施の形態における検索対象キーは、検索対象（検索キーとマッチングを行う対象）の粒度に基づき階層化されており、本例では、荒粒度キー：都道府県名、中粒度キー：市区町村名、細粒度キー：基地局IDとして階層化されている。この場合、荒粒度キーが最上位階層であり、基地局IDが最下位階層である。
【００３１】
ただし、図２に示すように、通信品質状態データベース１０２においては、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有している。例えば、図２における中位階層の"東京.渋谷"という検索対象キーは、これよりも上位の検索対象キーである"東京"に対して、"渋谷"というキーデータが追加された構成を有している。
【００３２】
なお、本例では、階層数が３であるが、これは例に過ぎず、階層数は３より大きくても３より小さくてもよい。また、本例では、検索対象として場所のパラメータを用いた通信品質状態データベース１０２の例を示しているが、検索対象として時間のパラメータを用いて通信品質状態データベース１０２を構成してもよい。例えば、時間のパラメータとして「時間帯」を用いる場合、一例として、「低粒度キー：平日・休日、中粒度キー：平日(朝昼夕夜) 休日(朝昼夕夜)、高粒度キー：各日1時間単位」という階層構成を使用することができる。
【００３３】
また、上記の都道府県名、市区町村名、基地局IDに加えて、時間帯等のデータをより細粒度の階層に追加してもよい。
【００３４】
なお、検索対象キーのデータ型を文字列とすることは一例に過ぎず、データ型がバイナリであってもよい。バイナリのキーとする場合であれば事前にバイナリと決めて、各フィールドを固定長とし、区切り文字はなしでよい。より詳細には、各フィールドに対応する部分は固定長であるが、後述のどの階層までのデータを対象とするかでキー長が可変となる部分はバイナリキーについても適用対象であり、対象とする階層に応じて「可変長のバイナリキー」となる。
【００３５】
（通信品質状態データベース１０２の構築処理）
次に、通信品質状態データベース１０２に、検索対象キーと値を格納して通信品質状態データベース１０２を構築する処理について、図３のフローチャートに示す手順に沿って説明する。この処理は、データベース構築装置２００により実行される。
【００３６】
ステップＳ１０１において、データベース構築装置２００における元データ取得部２０１が、元データ収集装置３００から、各地で測定された通信品質状態のデータ「 (場所，通信品質状態の数値)の組の集合」を取得する。ここでの「場所」は、緯度・経度、エリア名、エリアID、地名、駅名等、「場所」がわかるものであればどのようなデータでもよい。また、「場所」が基地局IDであってもよい。また、当該データは、全ての場所・基地局IDを網羅したデータでなくてよい。
【００３７】
既に説明したように、本実施の形態の通信品質状態データベース１０２では、検索対象キーとして、荒粒度キー：都道府県名、中粒度キー：市区町村名、細粒度キー：基地局IDを使用するが、データベース構築装置２００のデータ作成部２０２は、この階層構成に従って、取得した「場所」の粒度に応じて、当該「場所」から、都道府県名、都道府県名.市区町村名、又は、都道府県名.市区町村名.基地局IDを判別（変換）できる。
【００３８】
ステップＳ１０２において、データ作成部２０２は、一番細かい第３階層のデータを作成し、通信品質状態データベース１０２に登録する。具体的には、データ作成部２０２は、元データ「 (場所，通信品質状態の数値)の組の集合」の中で、「場所」により基地局IDまで判別できる組のデータに対し、当該判別できた「都道府県.市区町村.基地局ID」をキーとし、キーが共通となるデータを抽出し、抽出したデータの「通信品質状態の数値」の代表値を算出する。
【００３９】
データ作成部２０２は、上記判別した「都道府県.市区町村.基地局ID」を検索対象キーとし、上記代表値を当該検索対象キーに対応する値とし、これらを１つのレコードとして、通信品質状態データベース１０２に登録する。
【００４０】
上記の処理を、判別できた各「都道府県.市区町村.基地局ID」に対して行うことで、第３階層のデータを登録する。なお、複数の数値から代表値をとる方法については、特定の方法に限られず、例えば、平均、中央値、特定パーセンタイルを取る方法等がある。ここでの例では以下「平均」を用いるものとする。
【００４１】
ステップＳ１０３において、データ作成部２０２は、市区町村名単位でのレコードである第２階層のデータを作成し、通信品質状態データベース１０２に登録する。具体的には、データ作成部２０２は、元データから判別できる「都道府県.市区町村」をキーとし、キーが共通となるデータを抽出し、当該データの「通信品質状態の数値」の平均をとり、当該「都道府県.市区町村」を検索対象キーとし、当該平均値を当該検索対象キーに対応する値とし、これらを１つのレコードとして、通信品質状態データベース１０２に登録する。この処理を各「都道府県.市区町村」に対して行うことで、第２階層のデータを登録する。
【００４２】
言い換えると、データ作成部２０２は、元データから、基地局IDに関わらずに、対象とする「都道府県名.市区町村名」にマッチするデータを抽出し、当該データにおける通信品質状態の値の平均を算出し、当該「都道府県名.市区町村名」を検索対象キーに、平均値を「通信品質状態の数値」として通信品質状態データベース１０２に登録する。この処理を各「都道府県名.市区町村名」に対して行う。
【００４３】
上記のように登録を行うことで、検索時に、都道府県名・市区町村名までは一致するが、基地局IDの粒度で一致するものがない場合に市区町村名単位での平均値を検索結果として利用できるようになる。
【００４４】
なお、上記の例では、ステップＳ１０２と同じ元データを利用して、市区町村名単位の平均を算出しているが、別の元データとして「市区町村名単位の値」の元データを取得できる場合には、当該別の元データを利用して通信品質状態データベース１０２を構成してもよい。
【００４５】
ステップＳ１０４において、データ作成部２０２は、都道府県名単位でのレコードである第１階層のデータを作成し、通信品質状態データベース１０２に登録する。具体的には、データ作成部２０２は、元データから判別できる「都道府県名」をキーとし、キーが共通となるデータを抽出し、当該データにおける「通信品質状態の数値」の平均をとり、当該「都道府県名」を検索対象キーとし、平均値を当該検索対象キーに対応する値とし、これらを１つのレコードとして、通信品質状態データベース１０２に登録する。この処理を各「都道府県名」に対して行うことで、第１階層のデータを登録する。
【００４６】
上記のように登録を行うことで、検索時に、都道府県名までは一致するが、市区町村名の粒度で一致するものがない場合に都道府県名での平均値を検索結果として利用できるようになる。
【００４７】
なお、上記の例でも、別の元データとして「都道府県名単位の値」の元データを取得できる場合には、当該別の元データを利用して通信品質状態データベース１０２を構成してもよい。
【００４８】
ステップＳ１０５において、データ作成部２０２は、都道府県名階層でも一致するものがない場合向けのデフォルト値を求め、当該デフォルト値を通信品質状態データベース１０２に登録する。ここでは全レコードの代表値として全体平均値（元データ全体の平均値）を用いる。
【００４９】
なお、上記の例において、最長一致検索を行うためのデータ構造とする処理（例：木構造への変換等）については、データベース構築装置２００が行ってもよいし、検索処理装置が行ってもよい。
【００５０】
（検索処理）
次に、検索処理装置１００において、通信品質状態データベース１０２の検索を行う場合の処理を図４を参照して説明する。
【００５１】
ステップＳ２０１において、検索処理部１０１は、検索キーを取得する。本例における検索キーの発出元は特定の主体に限られないが、例えば、発出元は、ユーザの所在地の通信状況に応じて適切な通信サービスを当該ユーザに提供しようとする通信事業者のサーバである。また、発出元がユーザ端末であってもよい。また、ユーザが手入力で検索処理装置１００に対して検索キーを入力する形態であってもよい。
【００５２】
ここでの検索キーのデータ形式は、通信品質状態データベース１０２における最長の検索対象キーと同じデータ形式であり、「都道府県名.市区町村名.基地局ID」というデータ形式である。なお、発信元から送信される検索キーが上記のデータ形式でなく、特定の場所を指定する情報である場合、検索処理部１０１において、当該情報を「都道府県名.市区町村名.基地局ID」の形式に変換することとしてもよい。以下、検索キーは「都道府県名.市区町村名.基地局ID」の形式であるとする。
【００５３】
次に、検索処理部１０１は、検索キーを用いて、通信品質状態データベース１０２に対する最長一致検索を行う。
【００５４】
これにより、検索キーと完全に一致する検索対象キーを有するレコードがあれば（ステップＳ２０２のＹｅｓ）、検索処理部１０１は、当該レコードの値を検索結果として出力する（ステップＳ２０６）。
【００５５】
検索キーと完全に一致する検索対象キーを有するレコードがない場合（ステップＳ２０２のＮｏ）、ステップＳ２０３に進み、検索キーの市区町村名まで（つまり、「都道府県名.市区町村名」）と完全一致する検索対象キー（「都道府県名.市区町村名」のキー）を有するレコードがあれば（ステップＳ２０３のＹｅｓ）、当該レコードの値を検索結果として出力する（ステップＳ２０６）。当該レコードがなければステップＳ２０４に進む。
【００５６】
検索キーの都道府県名と一致する検索対象キー（「都道府県名」のキー）を有するレコードがあれば（ステップＳ２０４のＹｅｓ）、当該レコードの値を検索結果として出力する（ステップＳ２０６）。当該レコードがなければステップＳ２０５に進み、デフォルト値を検索結果として出力する。
【００５７】
上記のように、本実施の形態における検索処理部１０１は、最長一致検索を行うことにより、検索キーに複数の階層の検索対象キーが一致する場合に、最も長い検索対象キーのレコードの値を出力するので、一度の検索で、最適なデータ粒度の値を適切に返すことができる。
【００５８】
なお、図４におけるステップＳ２０２〜Ｓ２０４（点線枠で囲んだ部分）は実際の最長一致検索の処理手順を表しているわけではなく、階層に応じた出力を分かり易く説明するためのものである。すなわち、本実施の形態で用いている最長一致検索では、実装の一例として、検索キーにおいて上位階層から階層毎に順にデータを区切って、探索木（図２に示すデータベースを木構造にしたもの）のノードとの照合を行うことで、探索木を探索（遷移）して葉ノードに到達したら検索完了となり、当該葉ノードに対応する値が検索結果となる。このような手順による検索結果として、例えば、最上位階層の検索対象キーに対応する値が瞬時に得られること等が考えられる。
【００５９】
ただし、実際の検索手順として、図４に示す手順で検索を行うこととしてもよい。
【００６０】
（実施の形態のまとめ）
以上、説明したように、本実施の形態により、検索対象キーと値とを有するレコードの集合を格納するデータベースと、入力された検索キーに基づき前記データベースに対する検索を行って、検索結果を出力する検索処理手段と、を有する検索処理装置であって、前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、前記検索処理手段は、前記データベースに前記検索キーと完全一致する検索対象キーがある場合に当該検索対象キーに対応する値を出力し、完全一致する検索対象キーがない場合に、前記検索キーの一部に完全一致する検索対象キーのうち、最長の検索対象キーに対応する値を出力することを特徴とする検索処理装置が提供される。
【００６１】
前記データベースは、例えば、いずれの検索対象キーにも対応しないデフォルト値を有し、前記検索処理手段は、前記検索キーのいずれの部分とも一致する検索対象キーがない場合に、前記デフォルト値を出力する。
【００６２】
また、前記検索キーのデータ形式は、例えば、前記データベースにおける検索対象キーのうち、最下位の階層の検索対象キーと同じデータ形式である。
【００６３】
また、本実施の形態によれば、検索対象キーと値とを有するレコードの集合を格納するためのデータベースを構築するデータベース構築装置であって、前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、前記検索対象に相当するデータと当該データに対応する値とを有する元データを取得する取得手段と、前記元データから、対象としている階層の検索対象キーに該当する複数のデータを抽出し、当該複数のデータにおける値の代表値を当該検索対象キーに対応する値とし、当該検索対象キーと当該値とを前記データベースに格納する処理を、階層毎に実行するデータ作成手段とを備えることを特徴とするデータベース構築装置が提供される。
【００６４】
本実施の形態によれば、粒度及び欠損度合の異なるデータ群に対する検索を行う場合に、粒度毎の複数のデータベースを構築することなく、効率的にデータ群に対する検索を行うことが可能となる。
【００６５】
また、本実施の形態によれば、全国のエリアをカバーするような検索を実現するには低精度データとなってしまい、高精度データを活用するには欠損が生じてしまう状況において、高精度データがある場所では高精度データを活用し、高精度データがない場所では低精度データで補完するという検索を一度の検索で実現でき、一度の検索で高速・簡便に必要な品質データを得ることが可能となる。
【００６６】
（第１項）
検索対象キーと値とを有するレコードの集合を格納するデータベースと、
入力された検索キーに基づき前記データベースに対する検索を行って、検索結果を出力する検索処理手段と、を有する検索処理装置であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索処理手段は、前記データベースに前記検索キーと完全一致する検索対象キーがある場合に当該検索対象キーに対応する値を出力し、完全一致する検索対象キーがない場合に、前記検索キーの一部に完全一致する検索対象キーのうち、最長の検索対象キーに対応する値を出力する
ことを特徴とする検索処理装置。
（第２項）
前記データベースは、いずれの検索対象キーにも対応しないデフォルト値を有し、前記検索処理手段は、前記検索キーのいずれの部分とも一致する検索対象キーがない場合に、前記デフォルト値を出力する
ことを特徴とする第１項に記載の検索処理装置。
（第３項）
前記検索キーのデータ形式は、前記データベースにおける検索対象キーのうち、最下位の階層の検索対象キーと同じデータ形式である
ことを特徴とする第１項又は第２項に記載の検索処理装置。
（第４項）
検索対象キーと値とを有するレコードの集合を格納するためのデータベースを構築するデータベース構築装置であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索対象に相当するデータと当該データに対応する値とを有する元データを取得する取得手段と、
前記元データから、対象としている階層の検索対象キーに該当する複数のデータを抽出し、当該複数のデータにおける値の代表値を当該検索対象キーに対応する値とし、当該検索対象キーと当該値とを前記データベースに格納する処理を、階層毎に実行するデータ作成手段と
を備えることを特徴とするデータベース構築装置。
（第５項）
検索対象キーと値とを有するレコードの集合を格納するデータベースを備え、入力された検索キーに基づき前記データベースに対する検索を行って、検索結果を出力する検索処理装置が実行する検索処理方法であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索キーを取得し、前記データベースに当該検索キーと完全一致する検索対象キーがある場合に当該検索対象キーに対応する値を出力し、完全一致する検索対象キーがない場合に、前記検索キーの一部に完全一致する検索対象キーのうち、最長の検索対象キーに対応する値を出力する
ことを特徴とする検索処理方法。
（第６項）
検索対象キーと値とを有するレコードの集合を格納するためのデータベースを構築するデータベース構築装置が実行するデータベース構築方法であって、
前記データベースにおける検索対象キーは、検索対象の粒度に基づき階層化されており、ある階層の検索対象キーは、当該階層の上位の階層の検索対象キーにキーデータが追加された構成を有し、
前記検索対象に相当するデータと当該データに対応する値とを有する元データを取得する取得ステップと、
前記元データから、対象としている階層の検索対象キーに該当する複数のデータを抽出し、当該複数のデータにおける値の代表値を当該検索対象キーに対応する値とし、当該検索対象キーと当該値とを前記データベースに格納する処理を、階層毎に実行するデータ作成ステップと
を備えることを特徴とするデータベース構築方法。
（第７項）
コンピュータを、第１項ないし第３項のうちいずれか１項に記載の検索処理装置の検索処理手段として機能させるためのプログラム。
（第８項）
コンピュータを、第４項に記載のデータベース構築装置の各手段として機能させるためのプログラム。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００６７】
１００  検索処理装置
１０１  検索処理部
１０２  通信品質状態データベース
２００  データ作成装置
２０１  元データ取得部
２０２  階層データ作成部
３００  元データ収集装置
【図１】
0006402076.tif 000002
【図２】
0006402076.tif 000003
【図３】
0006402076.tif 000004
【図４】
0006402076.tif 000005