【文献】
加藤 弘之,“集約演算の構成子による構造化文書ビューに対する問合せの最適化手法”,情報処理学会研究報告,日本,社団法人情報処理学会,1999年 5月17日,第99巻,第39号,P.49-56
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、本発明の実施形態に係る検索システムについて、図面を参照しながら詳しく説明する。
【0011】
<1.検索システムの構成>
図1は、本発明の一実施形態に係る検索システムを概略的に示すブロック図である。
図1に示す検索システムは、クライアント端末10に接続されたアプリケーションサーバ20と、アプリケーションサーバ20に接続されたデータベースサーバ30と、を含んでいる。クライアント端末10、アプリケーションサーバ20、データベースサーバ30は、いずれも、CPU、メモリ、記憶装置等を備えたコンピュータ装置である。
【0012】
なお、ここでは、検索システムは、複数のコンピュータ装置を含むものとして図示したが、これらのコンピュータ装置の機能が1台のコンピュータ装置に組み込まれていても良い。
【0013】
クライアント端末10は、入力装置11と、検索要求部12と、検索結果受信部16と、表示装置17と、を備えている。入力装置11は、検索条件(検索キーW、検索対象x1)を入力するキーボードやマウス等を含んでいる。検索要求部12は、入力装置11によって入力された検索条件を含む検索要求を作成し、アプリケーションサーバ20に送信する機能を有している。検索結果受信部16は、アプリケーションサーバ20から検索結果を受信する機能を有している。表示装置17は、入力装置11によって入力された検索条件等の入力データや、検索結果受信部16によって受信した検索結果のデータを表示するディスプレイ装置を含んでいる。
【0014】
アプリケーションサーバ20は、検索要求受付部22と、検索要求部23と、検索結果受信部25と、検索結果出力部26と、を備えている。検索要求受付部22は、クライアント端末10からの検索要求を受付ける機能を有している。検索要求部23は、検索要求受付部22によって受付けた検索要求に基づいて、検索条件(検索キーW、仮想テーブルの定義情報X)を含む検索要求を作成し、この作成した検索要求をデータベースサーバ30に送信する機能を有している。検索結果受信部25は、データベースサーバ30から検索結果を受信する機能を有している。検索結果出力部26は、検索結果受信部25によって受信した検索結果(出力テーブルZ)の少なくとも一部をクライアント端末10に出力する機能を有している。
【0015】
データベースサーバ30は、検索要求受付部33と、検索部34と、検索結果出力部35と、を備えている。検索要求受付部33は、アプリケーションサーバ20からの検索要求を受付ける機能を有している。検索部34は、検索要求受付部33によって受付けた検索要求に基づき、検索キーWを用いて仮想テーブルYの検索を実行し、検索結果(出力テーブルZ)を作成する機能を有している。検索結果出力部35は、検索部34によって作成された検索結果をアプリケーションサーバ20に出力する機能を有している。
【0016】
仮想テーブルYは、定義情報Xに従って定義されるテーブルである。仮想テーブルYのデータは、そのまま実存のデータとして格納されているのではなく、実存のデータとしては、データベースサーバ30に接続された記憶装置40に、各種データテーブル41〜43が格納されている。仮想テーブルYは、定義情報Xに従って、データテーブル41〜43(実存テーブル)のデータを眺めたものである。定義情報Xは、データテーブル41〜43の見方を定義したものと言える。
【0017】
<2.検索システムの動作>
まず、
図1に示すように、クライアント端末10は、入力装置11によって入力された検索条件(検索キーW、検索対象x1)を含む検索要求を、アプリケーションサーバ20に送信し、アプリケーションサーバ20はこれを受付ける(S1)。
【0018】
次に、アプリケーションサーバ20は、クライアント端末10から受付けた検索要求に基づいて、検索条件(検索キーW、仮想テーブルの定義情報X)を含む検索要求を作成し、この作成した検索要求をデータベースサーバ30に送信する(S2)。仮想テーブルの定義情報Xは、検索対象x1に対応付けられて、アプリケーションサーバ20の記憶装置に格納されている。
【0019】
次に、データベースサーバ30は、アプリケーションサーバ20から受付けた検索要求に基づき、検索キーWを用いて仮想テーブルYの検索を実行し、検索結果(出力テーブルZ)を作成する(S3)。仮想テーブルYは、定義情報Xに従って定義されている。
【0020】
定義情報Xの具体的な例については後述するが、定義情報Xは、仮想テーブルYにおいて2つのフィールド(Y1、Y2)を定義してもよい。そして、データベースサーバ30は、そのうちの1つのフィールド(Y1)における検索を実行し、当該検索の結果として抽出されたレコードに含まれる第2のフィールド(Y2)を用いて出力テーブルZを作成してもよい。
また、定義情報Xは、仮想テーブルYにおいて少なくとも3つのフィールド(Y1、Y2、Y3、…)を定義してもよい。そして、データベースサーバ30は、そのうちの1つのフィールド(Y1)における検索を実行し、当該検索の結果として抽出されたレコードに含まれる残りのフィールド(Y2、Y3、…)を用いて出力テーブルZを作成してもよい。
【0021】
次に、データベースサーバ30は、作成した検索結果(出力テーブルZ)をアプリケーションサーバ20に出力する(S4)。
次に、アプリケーションサーバ20は、データベースサーバ30から受信した検索結果(出力テーブルZ)の少なくとも一部をクライアント端末10に出力する(S5)。また、出力テーブルZの一部をクライアント端末10に出力した後、クライアント端末10において新たな検索キーWが入力された場合は、上述のS1〜S5の処理を繰り返す。
【0022】
なお、出力テーブルZの各レコードが少なくとも2つのフィールド(Z2、Z3)を有する場合、アプリケーションサーバ20は、各レコードに含まれる1つのフィールド(Z2)のデータをクライアント端末10に出力してもよい。そして、クライアント端末10において出力テーブルZの1つのレコードが選択され、その選択された情報がアプリケーションサーバ20に送られてきた場合に、アプリケーションサーバ20は、当該選択されたレコードのもう1つのフィールド(Z3)のデータをクライアント端末10に出力してもよい。
また、出力テーブルZの各レコードが少なくとも2つのフィールド(Z2、Z4)を有する場合、アプリケーションサーバ20は、各レコードに含まれる少なくとも2つのフィールド(Z2、Z4)のデータをクライアント端末10に出力してもよい。
【0023】
<3.第1の実施例>
次に、
図2〜
図5を参照しながら第1の実施例について説明する。第1の実施例は、オペレータが7桁の郵便番号を入力するための入力支援に用いられる検索機能に関係している。第1の実施例は、郵便番号の一部、郵便番号に対応する住所の一部、或いは住所の読み仮名の一部を、オペレータがタイプするだけで、該当する郵便番号の一覧を出力するものである。
【0024】
<3−1.データテーブル41>
図2は、第1の実施例において、記憶装置40に格納されたデータテーブルのデータ構成例を示す図である。第1の実施例においては、記憶装置40に格納されたデータテーブル41が用いられる。
【0025】
図2に示すデータテーブル41は郵便番号のデータテーブルであり、1つのレコードにつき1つの郵便番号のデータが格納されている。データテーブル41の各レコードは、郵便番号の「最初の3桁」を格納するフィールドaと、郵便番号の「最後の4桁」を格納するフィールドbと、郵便番号に対応する「住所」を格納するフィールドcと、郵便番号に対応する住所の「読み仮名」を格納するフィールドdと、を有する。
【0026】
第1の実施例においては、上述のデータテーブル41を利用して、検索対象である「郵便番号」を得るために「住所」等を検索キーとした検索ができるように、検索システムを構成する。
【0027】
<3−2.仮想テーブルの定義情報X>
図3は、第1の実施例において、仮想テーブルを定義した情報の例を示す図である。仮想テーブルの定義情報Xは、アプリケーションサーバ20の記憶装置に格納されており、検索要求部23によって、検索要求とともにデータベースサーバ30に送られる。
図3に示すように、検索対象x1が「郵便番号」である場合に、仮想テーブルYの各レコードの「検索項目」のフィールドには、データテーブル41の郵便番号の「最初の3桁」のフィールドa、郵便番号の「最後の4桁」のフィールドb、郵便番号に対応する「住所」のフィールドc、及び郵便番号に対応する住所の「読み仮名」のフィールドdのデータが含まれるように、仮想テーブルYが定義される。
【0028】
また、定義情報Xにおいて、仮想テーブルYの各レコードの「表示項目」のフィールドには、データテーブル41のフィールドa、b及びcのデータが含まれるように、仮想テーブルYが定義される。また、仮想テーブルYの「戻り値」のフィールドには、データテーブル41のフィールドa及びbのデータが含まれるように、仮想テーブルYが定義される。また、仮想テーブルYの「情報」のフィールドには、「住所」という文字列が含まれるように、仮想テーブルYが定義される。
【0029】
<3−3.仮想テーブルY>
図4は、第1の実施例において、仮想テーブルの例を示す図である。仮想テーブルYの各レコードは、
図2に示したデータテーブル41の各レコードに対応している。仮想テーブルYの各レコードは、
図3に示した仮想テーブルの定義情報Xに従い、「検索項目」のフィールドY1と、「表示項目」のフィールドY2と、「戻り値」のフィールドY3と、「情報」のフィールドY4とを含んでいる。
【0030】
「検索項目」のフィールドY1には、データテーブル41の郵便番号の「最初の3桁」、郵便番号の「最後の4桁」、郵便番号に対応する「住所」、及び郵便番号に対応する住所の「読み仮名」が、互いにハイフン又はスペース等の区切り文字で区切られた文字列のデータとして含まれている。
【0031】
「表示項目」のフィールドY2には、データテーブル41の郵便番号の「最初の3桁」、郵便番号の「最後の4桁」、及び郵便番号に対応する「住所」が、互いにハイフン又はスペース等の区切り文字で区切られた文字列のデータとして含まれている。
「戻り値」のフィールドY3には、データテーブル41の郵便番号の「最初の3桁」及び郵便番号の「最後の4桁」が含まれている。
「情報」のフィールドY4には、「住所」という文字列が含まれている。
【0032】
<3−4.出力テーブルZ>
図5は、第1の実施例において、検索結果の例を示す図である。
図5(A)は、出力テーブルZの例を示している。
図5(A)に示す出力テーブルZは、検索部34が、検索キーWを「札幌 十条」とし、仮想テーブルYの「検索項目」のフィールドY1を検索した結果を示している。
【0033】
図5(A)に示すように、出力テーブルZにおいては、
図4に示す仮想テーブルYのうち「検索項目」のフィールドY1に「札幌」「十条」という2つの検索キーWが含まれるレコードすべて(第2及び第12レコード)を抽出している。出力テーブルZの各レコードは、仮想テーブルYのフィールドY2に相当する「表示項目」のフィールドZ2と、仮想テーブルYのフィールドY3に相当する「戻り値」のフィールドZ3と、仮想テーブルYのフィールドY4に相当する「情報」のフィールドZ4とを含んでいる。なお、出力テーブルZには、仮想テーブルYのフィールドY1に相当する「検索項目」のフィールドは含まれていなくてもよい。出力テーブルZは、検索結果出力部35からアプリケーションサーバ20に出力される。
【0034】
<3−5.検索画面>
図5(B)及び
図5(C)は、クライアント端末10の表示装置17に出力される検索画面の一部を示している。
図5(B)の画面171に示すように、検索対象x1「郵便番号」の表示位置の右側に表示された入力欄に、オペレータが検索キーWとして「札幌 十条」と入力すると、住所に「札幌」及び「十条」の文字列を含む郵便番号及び住所の一覧が表示される。
【0035】
具体的には、入力装置11を用いて入力された検索キーW「札幌 十条」の情報と、その画面における入力位置からクライアント端末10が判定した検索対象x1(郵便番号)の情報とが、アプリケーションサーバ20に送られる(S1)。そして、アプリケーションサーバ20から、検索キーWの情報と、検索対象x1に対応付けられた定義情報Xの情報とが、データベースサーバ30に送られる(S2)。さらに、データベースサーバ30において、検索キーWを用いて仮想テーブルYの検索が行われる(S3)。データベースサーバ30において作成された出力テーブルZはアプリケーションサーバ20に出力され(S4)、出力テーブルZの各レコードに含まれる「表示項目」のフィールドZ2のデータが、アプリケーションサーバ20からクライアント端末10に送られ(S5)、画面171に表示される。
【0036】
併せて、出力テーブルZの「情報」のフィールドZ4のデータ(住所)が画面171に表示されるようにすれば、オペレータは、「住所」を入力欄に入力すれば検索結果が絞り込めることを理解できる。
なお、画面171の入力欄に何も入力しなくても、入力欄にカーソルを移動させただけで、上述のS1〜S5に従って「検索キーなし」の検索を行い、「情報」のフィールドZ4のデータが表示されるようにしてもよい。
【0037】
オペレータは、画面171に表示された「表示項目」のフィールドZ2のデータの中から、入力したい郵便番号をマウスポインタ111で選択することができる。
図5(B)に示すように、「001-0010 北海道札幌市北区北十条西」がマウスポインタ111で選択された場合には、
図5(C)に示す画面172に遷移する。画面172において、郵便番号の入力欄には、
図5(B)において選択されたレコードに含まれる「戻り値」のフィールドZ3のデータ(すなわち、「0010010」)が表示される。
【0038】
具体的には、「001-0010 北海道札幌市北区北十条西」がマウスポインタ111で選択されたことを示す情報がアプリケーションサーバ20に送られる。そして、アプリケーションサーバ20に存在する出力テーブルZの該当レコードのうち、「戻り値」のフィールドZ3のデータがクライアント端末10に送られ、画面172に表示される。
以上のようにして、郵便番号が検索され、クライアント端末10の表示装置17に出力される。
【0039】
<4.第2の実施例>
次に、
図6〜
図9を参照しながら第2の実施例について説明する。第2の実施例は、オペレータが企業の担当者コードを入力するための入力支援に用いられる検索機能に関係している。第2の実施例は、担当者コードの一部、担当者名の一部、或いは担当者の所属部門名の一部を、オペレータがタイプするだけで、該当する担当者コードの一覧を出力するものである。
【0040】
<4−1.データテーブル42、43>
図6は、第2の実施例において、記憶装置40に格納されたデータテーブルのデータ構成例を示す図である。第2の実施例においては、記憶装置40に格納された2つのデータテーブル42及び43が用いられる。
【0041】
図6(A)に示す第1のデータテーブル42は担当者のデータテーブルであり、1つのレコードにつき1人の担当者のデータが格納されている。第1のデータテーブル42の各レコードは、「会社コード」を格納するフィールドaと、「担当者コード」を格納するフィールドbと、「担当者名」を格納するフィールドcと、「部門コード」を格納するフィールドdと、を有する。
【0042】
図6(B)に示す第2のデータテーブル43は会社の部門のデータテーブルであり、1つのレコードにつき1つの部門のデータが格納されている。第2のデータテーブル43の各レコードは、「会社コード」を格納するフィールドeと、「部門コード」を格納するフィールドfと、「部門名」を格納するフィールドgと、を有する。
【0043】
第2の実施例においては、上述の2つのデータテーブル42及び43を利用して、検索対象である「担当者コード」を得るために「部門名」等を検索キーとした検索ができるように、検索システムを構成する。
【0044】
<4−2.仮想テーブルの定義情報X>
図7は、第2の実施例において、仮想テーブルを定義した情報の例を示す図である。仮想テーブルの定義情報Xは、アプリケーションサーバ20の記憶装置に格納されており、検索要求部23によって、検索要求とともにデータベースサーバ30に送られる。
図7に示すように、検索対象x1が「担当者コード」である場合に、仮想テーブルYの各レコードの「検索項目」のフィールドには、第1のデータテーブル42の「担当者コード」のフィールドb及び「担当者名」のフィールドcのデータと、第2のデータテーブル43の「部門名」のフィールドgのデータとが含まれるように、仮想テーブルYが定義される。
【0045】
さらに、第1のデータテーブル42と第2のデータテーブル43とを結合するにあたって、以下の規則が定義される。すなわち、第1のデータテーブル42の1つのレコードに含まれる「部門コード」(フィールドd)のデータに、第2のデータテーブル43のいずれかのレコードに含まれる「部門コード」(フィールドf)のデータが一致する場合に、第1のデータテーブル42の当該レコードに、第2のデータテーブル43の当該レコードを関連付ける。
【0046】
また、定義情報Xにおいて、仮想テーブルYの各レコードの「表示項目」のフィールドには、第1のデータテーブル42のフィールドb及びcのデータが含まれるように、仮想テーブルYが定義される。また、仮想テーブルYの「戻り値」のフィールドには、第1のデータテーブル42のフィールドbのデータが含まれるように、仮想テーブルYが定義される。また、仮想テーブルYの「情報」のフィールドには、「担当者CD、担当者名、部門名」という文字列が含まれるように、仮想テーブルYが定義される。
【0047】
<4−3.仮想テーブルY>
図8は、第2の実施例において、仮想テーブルの例を示す図である。仮想テーブルYの各レコードは、
図6(A)に示した第1のデータテーブル42の各レコードに対応している。仮想テーブルYの各レコードは、
図7に示した仮想テーブルの定義情報Xに従い、「検索項目」のフィールドY1と、「表示項目」のフィールドY2と、「戻り値」のフィールドY3と、「情報」のフィールドY4とを含んでいる。
【0048】
「検索項目」のフィールドY1には、第1のデータテーブル42の「担当者コード」及び「担当者名」と、第2のデータテーブル43の「部門名」とが、互いにスペース等の区切り文字で区切られた文字列のデータとして含まれている。
【0049】
例えば、第1のデータテーブル42の第1レコード(TAN344 一嶺俊明)には、部門コード「001」が格納されているので、第2のデータテーブル43において部門コード「001」が格納された第1レコード(マーケティンググループ)に関連付けられる。その結果、仮想テーブルYの第1レコードの「検索項目」のフィールドY1には、「TAN344 一嶺俊明 マーケティンググループ」という文字列が含まれる。第2レコード以下においても、それぞれ、部門コードの一致によって関連付けられた第1のデータテーブル42及び第2のデータテーブル43の各レコードのデータが含まれる。
【0050】
「表示項目」のフィールドY2には、第1のデータテーブル42の「担当者コード」及び「担当者名」が、互いにスペース等の区切り文字で区切られた文字列のデータとして含まれている。
「戻り値」のフィールドY3には、第1のデータテーブル42の「担当者コード」が含まれている。
「情報」のフィールドY4には、「担当者CD、担当者名、部門名」という文字列が含まれている。
【0051】
<4−4.出力テーブルZ>
図9は、第2の実施例において、検索結果の例を示す図である。
図9(A)は、出力テーブルZの例を示している。
図9(A)に示す出力テーブルZは、検索部34が、検索キーWを「マーケティング」とし、仮想テーブルYの「検索項目」のフィールドY1を検索した結果を示している。
【0052】
図9(A)に示すように、出力テーブルZにおいては、
図8に示す仮想テーブルYのうち「検索項目」のフィールドY1に「マーケティング」という検索キーWが含まれるレコードすべて(第1、第2、第3及び第7レコード)を抽出している。出力テーブルZの各レコードは、仮想テーブルYのフィールドY2に相当する「表示項目」のフィールドZ2と、仮想テーブルYのフィールドY3に相当する「戻り値」のフィールドZ3と、仮想テーブルYのフィールドY4に相当する「情報」のフィールドZ4とを含んでいる。なお、出力テーブルZには、仮想テーブルYのフィールドY1に相当する「検索項目」のフィールドは含まれていなくてもよい。出力テーブルZは、検索結果出力部35からアプリケーションサーバ20に出力される。
【0053】
<4−5.検索画面>
図9(B)及び
図9(C)は、クライアント端末10の表示装置17に出力される検索画面の一部を示している。
図9(B)の画面171に示すように、検索対象x1「担当者コード」の表示位置の右側に表示された入力欄に、オペレータが検索キーWとして「マーケティング」と入力すると、部門名に「マーケティング」の文字列を含む「担当者コード」及び「担当者名」の一覧が表示される。
【0054】
具体的には、入力装置11を用いて入力された検索キーW「マーケティング」の情報と、その画面における入力位置からクライアント端末10が判定した検索対象x1(担当者コード)の情報とが、アプリケーションサーバ20に送られる(S1)。そして、アプリケーションサーバ20から、検索キーWの情報と、検索対象x1に対応付けられた定義情報Xの情報とが、データベースサーバ30に送られる(S2)。さらに、データベースサーバ30において、検索キーWを用いて仮想テーブルYの検索が行われる(S3)。データベースサーバ30において作成された出力テーブルZはアプリケーションサーバ20に出力され(S4)、出力テーブルZの各レコードに含まれる「表示項目」のフィールドZ2のデータが、アプリケーションサーバ20からクライアント端末10に送られ(S5)、画面171に表示される。
【0055】
併せて、出力テーブルZの「情報」のフィールドZ4のデータ(担当者コード、担当者名、部門名)が画面171に表示されるようにすれば、オペレータは、「担当者コード、担当者名、部門名」のいずれかを入力欄に入力すれば検索結果が絞り込めることを理解できる。
なお、画面171の入力欄に何も入力しなくても、入力欄にカーソルを移動させただけで、上述のS1〜S5に従って「検索キーなし」の検索を行い、「情報」のフィールドZ4のデータが表示されるようにしてもよい。
【0056】
オペレータは、画面171に表示された「表示項目」のフィールドZ2のデータの中から、入力したい担当者名をマウスポインタ111で選択することができる。
図9(B)に示すように、「TAN349 三村紗希」がマウスポインタ111で選択された場合には、
図9(C)に示す画面172に遷移する。画面172において、「担当者コード」の入力欄には、
図9(B)において選択されたレコードに含まれる「戻り値」のフィールドZ3のデータ(すなわち、「TAN349 三村紗希」の担当者コード)が表示される。
【0057】
具体的には、「TAN349 三村紗希」がマウスポインタ111で選択されたことを示す情報がアプリケーションサーバ20に送られる。そして、アプリケーションサーバ20に存在する出力テーブルZの該当レコードのうち、「戻り値」のフィールドZ3のデータがクライアント端末10に送られ、画面172に表示される。
以上のようにして、担当者コードが検索され、クライアント端末10の表示装置17に出力される。
【0058】
<5.実施形態による効果>
本実施形態によれば、データテーブルの複数のフィールドb、c等のデータを仮想テーブルYの1つのフィールドY1(検索項目)が含むように、仮想テーブルYが定義される。従って、仮想テーブルYの1つのフィールドY1を検索すれば、データテーブルの複数のフィールドb、c等を検索することができる。そして、データテーブルの検索しようとするフィールドb、c等を増減したい場合には、定義情報Xにおいて仮想テーブルYの1つのフィールドY1の定義を変更するだけで済む。
【0059】
また、本実施形態によれば、仮想テーブルYにおいて、上記1つのフィールドY1とは別に、第2のフィールドY2(表示項目)を定義し、検索結果として抽出されたレコードから、この第2のフィールドY2のデータ(出力テーブルZのフィールドZ2のデータ)を出力する。このように、検索項目とは別に、検索結果の表示項目を設定できる。このような「表示項目」を変更したい場合も、同様に定義情報Xを変更するだけで済む。
【0060】
また、本実施形態によれば、仮想テーブルYにおいて、上記1つのフィールドY1及び第2のフィールドY2とは別に、第3のフィールドY3(戻り値)を定義する。そして、検索結果として第2のフィールドY2のデータが表示された複数のレコードの中から、特定のレコードが選択された場合に、当該レコードの第3のフィールドY3のデータ(出力テーブルZのフィールドZ3のデータ)をさらに出力する。このように、検索項目及び表示項目とは別に、戻り値を設定できる。このような「戻り値」を変更したい場合も、同様に定義情報Xを変更するだけで済む。
【0061】
従って、本実施形態によれば、ユーザの多様なニーズにも、容易に対応することができる。