(57)【要約】【課題】非構造化データベースを用いた検索を高速化すること。【解決手段】検索装置１は、記憶部１ａと検索部１ｂとを有する。記憶部１ａは、子要素名と子要素内容とを含む子要素を複数有する親要素を、複数格納する非構造化データベース１ａａを記憶する。検索部１ｂは、要素名と要素内容とを示す検索情報２を取得し、非構造化データベース１ａａから、検索情報２が示す要素名と要素内容とに一致する子要素名と子要素内容とを含む第１子要素を有する親要素１ａ１を検索し、親要素１ａ１が有する子要素のうち、第１子要素以外の第２子要素を取得し、非構造化データベース１ａａから、第２子要素と一致する子要素名と子要素内容とを含む子要素を有する、親要素１ａ１以外の親要素１ａ２を検索し、親要素１ａ１または親要素１ａ２が有する子要素を出力する。【選択図】図１
2018073116.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
要素名と要素内容とを示す検索情報を取得し、
子要素名と子要素内容とを含む子要素を複数有する親要素が、複数格納されている非構造化データベースから、前記検索情報が示す前記要素名と前記要素内容とに一致する前記子要素名と前記子要素内容とを含む第１子要素を有する第１親要素を検索し、
前記第１親要素が有する前記子要素のうち、前記第１子要素以外の第２子要素を取得し、
前記非構造化データベースから、前記第２子要素と一致する前記子要素名と前記子要素内容とを含む前記子要素を有する、前記第１親要素以外の第２親要素を検索し、
前記第１親要素または前記第２親要素が有する前記子要素を出力する、
処理を実行させる検索プログラム。
【請求項２】
前記コンピュータに、さらに、
関係データベースに基づいて、前記関係データベースと同じ正規化レベルの前記非構造化データベースを作成する処理を実行させる、請求項１に記載の検索プログラム。
【請求項３】
前記非構造化データベースの生成では、前記関係データベースに含まれるテーブル内のレコードに対応する前記親要素を生成し、前記レコードに設定された値に対応する前記子要素を作成し、作成した前記子要素を、前記レコードに対応する前記親要素に含める、請求項２に記載の検索プログラム。
【請求項４】
前記親要素は、親要素名を含み、
前記第１親要素の検索では、
前記親要素名と前記子要素名とを対応付けた第１定義を参照し、前記検索情報が示す前記要素名と一致する前記子要素名に対応する前記親要素名を特定し、
特定した前記親要素名と一致する前記親要素名を有する前記親要素の中から、前記第１親要素を検索する、請求項１乃至３の何れか１項に記載の検索プログラム。
【請求項５】
前記第２親要素の検索では、
同じ前記子要素名の前記子要素をそれぞれが有する複数の前記親要素の前記親要素名を関係付けた第２定義を参照し、
前記第１親要素の前記親要素名と関係を有し、前記第２子要素が示す前記要素名と一致する前記子要素名を有する前記親要素の前記親要素名を特定し、
特定した前記親要素名と一致する前記親要素名を有する前記親要素の中から、前記第２親要素を検索する、請求項４に記載の検索プログラム。
【請求項６】
複数の前記親要素に含まれる前記親要素名と前記子要素とに基づいて、前記第１定義と前記第２定義とを作成する、請求項５に記載の検索プログラム。
【請求項７】
子要素名と子要素内容とを含む子要素を複数有する親要素を、複数格納する非構造化データベースを記憶する記憶部と、
要素名と要素内容とを示す検索情報を取得し、前記非構造化データベースから、前記検索情報が示す前記要素名と前記要素内容とに一致する前記子要素名と前記子要素内容とを含む第１子要素を有する第１親要素を検索し、前記第１親要素が有する前記子要素のうち、前記第１子要素以外の第２子要素を取得し、前記非構造化データベースから、前記第２子要素と一致する前記子要素名と前記子要素内容とを含む前記子要素を有する、前記第１親要素以外の第２親要素を検索し、前記第１親要素または前記第２親要素が有する前記子要素を出力する検索部と、
有する検索装置。
【請求項８】
コンピュータが、
要素名と要素内容とを示す検索情報を取得し、
子要素名と子要素内容とを含む子要素を複数有する親要素が、複数格納されている非構造化データベースから、前記検索情報が示す前記要素名と前記要素内容とに一致する前記子要素名と前記子要素内容とを含む第１子要素を有する第１親要素を検索し、
前記第１親要素が有する前記子要素のうち、前記第１子要素以外の第２子要素を取得し、
前記非構造化データベースから、前記第２子要素と一致する前記子要素名と前記子要素内容とを含む前記子要素を有する、前記第１親要素以外の第２親要素を検索し、
前記第１親要素または前記第２親要素が有する前記子要素を出力する、
検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索プログラム、検索装置および検索方法に関する。
【背景技術】
【０００２】
コンピュータで使用するデータベースの１つとして、関係データベースが知られている。関係データベースは、ＥＲ図（Entity Relationship Diagram）などに基づくデータモデルを正規化することで作成される。関係データベースは、データがテーブルの中に配置されており、データの検索時には、例えば、検索性能を向上させるためのインデックスを使用した検索が行われる。ただし、関係データベースに対する検索には、日本語文章に対する部分一致検索のように、インデックスが有効に機能しない検索がある。関係データベースに対するこのような検索は、処理が過大となり、実行が困難である。
【０００３】
関係データベースを用いて検索をすることが困難な場合、非構造化データベースを用いることができる。非構造化データベースは、例えば、関係データベースを基に正規化の解除または正規化レベルを下げることにより作成される。非構造化データベースに対する検索では、検索性能が、インデックスではなく、検索対象の日本語文章のデータサイズに依存する。従って、関係データベースを基に非構造化データベースを作成しておくことで、関係データベースに対する実行が困難な検索を、非構造化データベースに対して実行することができる。
【０００４】
ここで、データベースに関する技術が提案されている。例えば、ワークフロー処理システムは、電子帳票の全データ項目に関する情報を抽出して案件属性テーブルを作成する。また、例えば、共通情報抽出装置は、ｎ個（ｎは３以上の正の整数）のソフトウェア生産支援装置の内から２以上、ｎ−１個以下のソフトウェア生産支援装置を抽出し、抽出したソフトウェア生産支援装置に共通する情報を共通情報ファイルとして生成する。共通情報抽出装置は、共通情報ファイルを含む共通データベースを構成する。局所化転送装置は、抽出したソフトウェア生産支援装置のいずれかに共通データベースを転送する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１６３４９５号公報
【特許文献２】特開２０００−３３０７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非構造化データベースは、関係データベースに対して実行が困難な検索を実行できる一方、正規化レベルが低いため、冗長な情報を含む。そのため、非構造化データベースは関係データベースに比べてデータ量が多く、データ量の増大が、検索時間短縮の妨げとなっている。
【０００７】
１つの側面では、本発明は、非構造化データベースを用いた検索を高速化することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、検索プログラムが提供される。この検索プログラムは、コンピュータに、要素名と要素内容とを示す検索情報を取得し、子要素名と子要素内容とを含む子要素を複数有する親要素が、複数格納されている非構造化データベースから、検索情報が示す要素名と要素内容とに一致する子要素名と子要素内容とを含む第１子要素を有する第１親要素を検索し、第１親要素が有する子要素のうち、第１子要素以外の第２子要素を取得し、非構造化データベースから、第２子要素と一致する子要素名と子要素内容とを含む子要素を有する、第１親要素以外の第２親要素を検索し、第１親要素または第２親要素が有する子要素を出力する、処理を実行させる。
【０００９】
また、１つの態様では、検索装置が提供される。この検索装置は記憶部と検索部とを有する。記憶部は、子要素名と子要素内容とを含む子要素を複数有する親要素を、複数格納する非構造化データベースを記憶する。検索部は、要素名と要素内容とを示す検索情報を取得し、非構造化データベースから、検索情報が示す要素名と要素内容とに一致する子要素名と子要素内容とを含む第１子要素を有する第１親要素を検索し、第１親要素が有する子要素のうち、第１子要素以外の第２子要素を取得し、非構造化データベースから、第２子要素と一致する子要素名と子要素内容とを含む子要素を有する、第１親要素以外の第２親要素を検索し、第１親要素または第２親要素が有する子要素を出力する。
【００１０】
また、１つの態様では、検索方法が提供される。この検索方法は、コンピュータが、要素名と要素内容とを示す検索情報を取得し、子要素名と子要素内容とを含む子要素を複数有する親要素が、複数格納されている非構造化データベースから、検索情報が示す要素名と要素内容とに一致する子要素名と子要素内容とを含む第１子要素を有する第１親要素を検索し、第１親要素が有する子要素のうち、第１子要素以外の第２子要素を取得し、非構造化データベースから、第２子要素と一致する子要素名と子要素内容とを含む子要素を有する、第１親要素以外の第２親要素を検索し、第１親要素または第２親要素が有する子要素を出力する。
【発明の効果】
【００１１】
１つの側面では、非構造化データベースを用いた検索を高速化できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の検索装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】サーバのハードウェア例を示す図である。
【図４】サーバの機能例を示す図である。
【図５】非構造文書の作成処理の具体例を示す図（その１）である。
【図６】非構造文書の作成処理の具体例を示す図（その２）である。
【図７】非構造化データベースの具体例を示す図である。
【図８】入力定義情報の例を示す図である。
【図９】文書関係定義情報の例を示す図である。
【図１０】非構造文書の作成処理の例を示すフローチャートである。
【図１１】定義情報の作成処理の例を示すフローチャート（その１）である。
【図１２】定義情報の作成処理の例を示すフローチャート（その２）である。
【図１３】検索処理の例を示すフローチャートである。
【図１４】検索処理の具体例を示す図である。
【図１５】検索結果の具体例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の検索装置を示す図である。検索装置１は、記憶部１ａおよび検索部１ｂを有する。記憶部１ａは、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置でもよい。検索部１ｂは、例えば、プロセッサである。プロセッサには、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。また、検索部１ｂは、マルチプロセッサであってもよい。
【００１４】
記憶部１ａは、非構造化データベース１ａａを記憶する。非構造化データベース１ａａは、子要素名と子要素内容とを含む子要素を複数有する親要素を複数格納している。例えば、非構造化データベース１ａａは、親要素１ａ１，１ａ２を格納する。親要素１ａ１は、子要素名“顧客名”と子要素内容“Ｘ１”とを含む子要素を有する。また、親要素１ａ１は、子要素名“オーダ番号”と子要素内容“Ｙ１”とを含む子要素を有する。親要素１ａ２は、子要素名“オーダ番号”と子要素内容“Ｙ１”とを含む子要素を有する。また、親要素１ａ２は、子要素名“製品ＩＤ（identifier）”と子要素内容“Ｚ１”とを含む子要素を有する。
【００１５】
また、非構造化データベース１ａａは、正規化レベルが高い状態で複数の親要素を格納する。すなわち、非構造化データベース１ａａの冗長性は、少ない。なお、非構造化データベース１ａａは、ユーザが検索装置１または他の装置を用いて作成されたものでもよいし、検索装置１が関係データベースを基に作成したものでもよい。
【００１６】
検索部１ｂは、検索情報２を取得する（ステップＳ１）。例えば、検索部１ｂは、ユーザが検索装置１に直接入力した検索情報２を取得する。または、検索部１ｂは、ネットワークを介して検索装置１に接続可能な他の装置から送信された検索情報２を取得する。検索情報２は、要素名と要素内容とを示す。例えば、検索情報２は、要素名“顧客名”と要素内容“Ｘ１”とを示す。
【００１７】
検索部１ｂは、非構造化データベース１ａａから、検索情報２が示す要素名と要素内容とに一致する子要素名と子要素内容とを含む第１子要素を有する第１親要素を検索する。例えば、検索部１ｂは、検索情報２が示す要素名“顧客名”と要素内容“Ｘ１”とに一致する子要素名と子要素内容とを含む子要素を有する親要素を検索する。そして、検索部１ｂは、親要素１ａ１を特定する（ステップＳ２）。
【００１８】
検索部１ｂは、第１親要素が有する子要素のうち、第１子要素以外の第２子要素を取得する。例えば、検索部１ｂは、親要素１ａ１が有する子要素のうち、子要素名“顧客名”と子要素内容“Ｘ１”とを含む子要素以外の子要素を取得する。これにより、検索部１ｂは、子要素名“オーダ番号”と子要素内容“Ｙ１”とを含む子要素を取得する（ステップＳ３）。
【００１９】
検索部１ｂは、非構造化データベース１ａａから、第２子要素と一致する子要素名と子要素内容とを含む子要素を有する、第１親要素以外の第２親要素を検索する。例えば、検索部１ｂは、子要素名“オーダ番号”と子要素内容“Ｙ１”とを含む子要素と一致する要素名と要素内容とを含む子要素を有する親要素を検索する。また、検索部１ｂは、検索対象から親要素１ａ１を除く。そして、検索部１ｂは、親要素１ａ２を特定する（ステップＳ４）。
【００２０】
検索部１ｂは、第１親要素または第２親要素が有する子要素を出力する（ステップＳ５）。例えば、検索部１ｂは、親要素１ａ１または親要素１ａ２が有する子要素を含む検索結果３を出力する。出力先は、検索装置１が有するディスプレイでもよいし、検索情報２を送信した他の装置でもよい。なお、検索部１ｂは、第１親要素および第２親要素が有する子要素を出力してもよい。
【００２１】
ここで、非構造化データベースは、関係データベースに対して実行が困難な検索を実行できる一方、正規化レベルが低いため、冗長な情報を含む。そのため、非構造化データベースは関係データベースに比べてデータ量が多く、データ量の増大が、検索時間短縮の妨げとなっている。
【００２２】
第１の実施の形態によれば、非構造化データベース１ａａは、正規化レベルが高い状態で複数の親要素を格納する。そのため、非構造化データベース１ａａは、正規化レベルが低い非構造化データベースに比べて冗長性が少ない。すなわち、非構造化データベース１ａａは、正規化レベルが低い非構造化データベースに比べてデータ量が少ない。検索装置１は、データ量が少ない非構造化データベース１ａａを用いて検索することで、非構造化データベースを用いた検索を高速化できる。
【００２３】
また、検索部１ｂは、上記で記載したように関係データベースに基づいて、関係データベースと同じ正規化レベルの非構造化データベース１ａａを作成してもよい。例えば、検索部１ｂは、関係データベースに含まれるテーブル内のレコードに対応する親要素を生成し、レコードに設定された値に対応する子要素を作成し、作成した子要素を、レコードに対応する親要素に含める。これにより、検索装置１は、正規化レベルが高い状態の非構造化データベース１ａａを保持することができる。
【００２４】
親要素は、親要素名を含んでもよい。例えば、親要素名は、親要素のタイトル名（例えば、図１の顧客情報や出荷情報）でもよいし、関係データベースを基に親要素が作成されている場合はテーブル名でもよい。記憶部１ａは、親要素名と子要素名とを対応付けた第１定義を記憶してもよい。例えば、検索部１ｂは、第１親要素を検索する場合、第１定義を参照し、検索情報２が示す要素名と一致する子要素名に対応する親要素名を特定する。検索部１ｂは、特定した親要素名と一致する親要素名を有する親要素の中から、第１親要素を検索する。このように、非構造化データベース１ａａに対する検索条件に親要素名が加わる。検索装置１は、非構造化データベース１ａａに対する検索条件が多くなることで、的確な検索結果を得ることができる。
【００２５】
記憶部１ａは、同じ子要素名の子要素をそれぞれが有する複数の親要素の親要素名を関係付けた第２定義を記憶してもよい。例えば、検索部１ｂは、第２親要素を検索する場合、第２定義を参照し、第１親要素の親要素名と関係を有し、第２子要素が示す要素名と一致する子要素名を有する親要素の親要素名を特定する。検索部１ｂは、特定した親要素名と一致する親要素名を有する親要素の中から、第２親要素を検索する。このように、検索装置１は、第２定義を有することで、第２親要素を特定できる。また、検索装置１は、第２定義を参照し、第１親要素の親要素名と関係を有し、第２子要素が示す要素名と一致する子要素名を有する親要素の親要素名を特定できない場合、第２子要素が示す要素名に基づく、親要素の検索を実行しない。これにより、検索装置１は、余計な検索処理を行わなくて済む。
【００２６】
検索部１ｂは、複数の親要素に含まれる親要素名と子要素に基づいて、第１定義と第２定義とを作成してもよい。検索装置１が第１定義と第２定義を自動で作成することで、ユーザが第１定義と第２定義を作成する手間を省くことができる。
【００２７】
［第２の実施の形態］
次に、第２の実施の形態について説明する。第２の実施の形態は、サーバが記憶する関係データベースに基づいて非構造化データベースを作成し、非構造化データベースを用いて検索を可能とする。
【００２８】
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、サーバ１００および端末装置２００を含む。サーバ１００および端末装置２００は、ネットワーク３００を介して接続されている。ネットワーク３００は、ＬＡＮ（Local Area Network）でもよいし、ＷＡＮ（Wide Area Network）やインターネットなどの広域ネットワークでもよい。
【００２９】
サーバ１００は、関係データベースを記憶する。サーバ１００は、関係データベースに基づいて非構造化データベースを作成する。サーバ１００は、端末装置２００から検索依頼を受信した場合、非構造化データベースを用いて検索を行う。サーバ１００は、検索結果を端末装置２００に送信する。
【００３０】
なお、サーバ１００は、ユーザがサーバ１００に直接入力した検索依頼に応じて、非構造化データベースを用いて検索を行ってもよい。
端末装置２００は、ユーザが使用するクライアントコンピュータである。端末装置２００は、サーバ１００から取得した検索結果を自装置に表示することができる。
【００３１】
次に、サーバ１００のハードウェアについて、説明する。
図３は、サーバのハードウェア例を示す図である。サーバ１００は、プロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、読み取り装置１０６および通信インタフェース１０７を有する。各ユニットがサーバ１００のバスに接続されている。
【００３２】
プロセッサ１０１は、サーバ１００全体を制御する。プロセッサ１０１は、例えば、ＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。また、プロセッサ１０１は、複数のプロセッシング要素を含むマルチプロセッサであってもよい。さらに、プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００３３】
ＲＡＭ１０２は、サーバ１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００３４】
ＨＤＤ１０３は、サーバ１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。サーバ１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００３５】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、サーバ１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（Electro-Luminescence）ディスプレイなど各種のディスプレイを用いることができる。
【００３６】
入力信号処理部１０５は、サーバ１００に接続された入力デバイス１２から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス１２としては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。サーバ１００には、複数の種類の入力デバイスが接続されてもよい。
【００３７】
読み取り装置１０６は、記録媒体１３に記録されたプログラムやデータを読み取る装置である。記録媒体１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１３として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１０６は、例えば、プロセッサ１０１からの命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００３８】
通信インタフェース１０７は、ネットワーク３００を介して端末装置２００と通信を行う。通信インタフェース１０７は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
【００３９】
なお、端末装置２００もサーバ１００と同様のハードウェアにより実現できる。
次に、サーバ１００の機能について説明する。
図４は、サーバの機能例を示す図である。サーバ１００は、記憶部１１０、非構造化処理部１２０、定義情報作成部１３０、登録部１４０および検索部１５０を有する。
【００４０】
記憶部１１０は、例えば、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域として実装される。記憶部１１０は、関係データベース群１１１、非構造化データベース１１２、入力定義情報１１３および文書関係定義情報１１４を記憶する。
【００４１】
関係データベース群１１１は、複数の関係データベースを含む。非構造化データベース１１２は、関係データベース群１１１を基に作成されたデータベースである。入力定義情報１１３および文書関係定義情報１１４については、後で詳細に説明する。
【００４２】
非構造化処理部１２０、定義情報作成部１３０、登録部１４０および検索部１５０は、例えば、プロセッサ１０１が実行するプログラムのモジュールとして実装される。
非構造化処理部１２０は、関係データベース群１１１を基に非構造文書を作成する。定義情報作成部１３０は、非構造文書に基づいて、入力定義情報１１３および文書関係定義情報１１４を作成する。登録部１４０は、非構造文書を非構造化データベース１１２に登録する。検索部１５０は、端末装置２００から検索依頼を受信した場合、非構造化データベース１１２を用いて検索を行う。
【００４３】
次に、非構造化処理部１２０が関係データベース群１１１を基に非構造文書を作成する処理について、具体例を用いて説明する。
図５は、非構造文書の作成処理の具体例を示す図（その１）である。図５は、顧客情報１１１ａと出荷情報１１１ｂとが関係データベース群１１１に含まれることを示している。
【００４４】
顧客情報１１１ａは、顧客ＩＤ、顧客名、オーダ番号の項目を含む。顧客ＩＤの項目は、顧客の識別子を示す。顧客名の項目は、顧客の名称を示す。オーダ番号の項目は、オーダ番号の識別子を示す。
【００４５】
出荷情報１１１ｂは、オーダ番号、製品ＩＤの項目を含む。オーダ番号の項目は、オーダ番号の識別子を示す。製品ＩＤの項目は、製品の識別子を示す。
非構造化処理部１２０は、正規化レベルを変えずに、顧客情報１１１ａの各レコードを基に非構造文書４００ａ，４００ｂを作成する。例えば、非構造化処理部１２０は、顧客情報１１１ａの顧客ＩＤ“Ｃ００１”、顧客名“Ａ社”、オーダ番号“ＯＲＤＥＲ００１”のレコードを基に非構造文書４００ａを作成する。非構造文書４００ａ，４００ｂは、ＸＭＬ（Extensible Markup Language）形式で作成される。非構造化処理部１２０は、非構造文書４００ａ，４００ｂの開始タグと終了タグとに顧客情報１１１ａのテーブル名“顧客情報”を追加する。
【００４６】
非構造化処理部１２０は、正規化レベルを変えずに、出荷情報１１１ｂの各レコードを基に非構造文書４０１ａ〜４０１ｅを作成する。非構造文書４０１ａ〜４０１ｅは、ＸＭＬ形式で作成される。非構造化処理部１２０は、非構造文書４０１ａ〜４０１ｅの開始タグと終了タグとに出荷情報１１１ｂのテーブル名“出荷情報”を追加する。
【００４７】
図６は、非構造文書の作成処理の具体例を示す図（その２）である。図６は、製品情報１１１ｃと問合せ履歴１１１ｄとが関係データベース群１１１に含まれることを示している。
【００４８】
製品情報１１１ｃは、製品ＩＤ、製品名の項目を含む。製品ＩＤの項目は、製品の識別子を示す。製品名の項目は、製品の名称を示す。
問合せ履歴１１１ｄは、問合せＩＤ、顧客ＩＤ、オーダ番号、製品ＩＤ、問合せ内容の項目を含む。問合せＩＤの項目は、問合せの識別子を示す。顧客ＩＤの項目は、顧客の識別子を示す。オーダ番号の項目は、オーダ番号の識別子を示す。製品ＩＤの項目は、製品の識別子を示す。問合せ内容の項目は、製品に対する質問や製品故障などを示す。
【００４９】
非構造化処理部１２０は、正規化レベルを変えずに、製品情報１１１ｃの各レコードを基に非構造文書４０２ａ〜４０２ｅを作成する。非構造文書４０２ａ〜４０２ｅは、ＸＭＬ形式で作成される。非構造化処理部１２０は、非構造文書４０２ａ〜４０２ｅの開始タグと終了タグとに製品情報１１１ｃのテーブル名“製品情報”を追加する。
【００５０】
非構造化処理部１２０は、正規化レベルを変えずに、問合せ履歴１１１ｄの各レコードを基に非構造文書４０３ａ〜４０３ｅを作成する。非構造文書４０３ａ〜４０３ｅは、ＸＭＬ形式で作成される。非構造化処理部１２０は、非構造文書４０３ａ〜４０３ｅの開始タグと終了タグとに問合せ履歴１１１ｄのテーブル名“問合せ履歴”を追加する。
【００５１】
次に、非構造化データベース１１２について、具体例を用いて説明する。
図７は、非構造化データベースの具体例を示す図である。登録部１４０は、非構造化処理部１２０が作成した非構造文書を非構造化データベース１１２に登録する。例えば、非構造化データベース１１２は、非構造文書４００ａに登録されていた情報（枠１１２ａの内側）を有する。
【００５２】
図７の非構造化データベース１１２に示している枠１１２ａ〜１１２ｅ内のそれぞれを以下、文書と表現する。なお、文書は、第１の実施の形態の親要素の一例である。文書は、項目と項目内容とを含む。なお、項目は、第１の実施の形態の子要素名の一例である。項目内容は、第１の実施の形態の子要素内容の一例である。図７は、非構造化データベース１１２が５つ以上の文書を有していることを示している。なお、非構造化データベース１１２上に示している枠１１２ａ〜１１２ｅは、１つの文書を説明するためのものであるため、非構造化データベース１１２に含まれない。
【００５３】
また、文書内の上位タグを以下、文書名と表現する。例えば、枠１１２ａ内の文書の文書名は、顧客情報である。
非構造化データベース１１２は、順序性を有していなくてもよい。例えば、枠１１２ａ内の顧客情報を示す文書と枠１１２ｃ内の顧客情報を示す文書とが、非構造化データベース１１２に連続して登録されない。
【００５４】
ここで、非構造化処理部１２０は、関係データベースと同じ正規化レベルで非構造文書を作成する。登録部１４０は、関係データベースと同じ正規化レベルの非構造文書を非構造化データベース１１２に登録する。そのため、非構造化データベース１１２は、関係データベースと同じ正規化レベルの文書を有する。これにより、非構造化データベース１１２のデータ量は、正規化レベルが低い非構造化データベースのデータ量に比べて少なくなる。
【００５５】
次に、入力定義情報１１３と文書関係定義情報１１４とについて、説明する。
図８は、入力定義情報の例を示す図である。入力定義情報１１３は、入力項目、検索対象文書名／項目を含む。入力項目は、サーバ１００が端末装置２００から取得した検索依頼に含まれる入力項目に対応する。検索対象文書名／項目は、検索対象の文書名と当該文書名の文書に含まれる項目が検索対象の項目であることを示す。
【００５６】
例えば、入力定義情報１１３は、入力項目“顧客ＩＤ”、検索対象文書名“顧客情報”／項目“顧客ＩＤ”、検索対象文書名“問合せ履歴”／項目“顧客ＩＤ”を示す。これは、サーバ１００が端末装置２００から取得した検索依頼に含まれる入力項目が“顧客ＩＤ”の場合、“顧客情報”の“顧客ＩＤ”、“問合せ履歴”の“顧客ＩＤ”を検索対象の項目にすることを示す。
【００５７】
図９は、文書関係定義情報の例を示す図である。文書関係定義情報１１４は、検索対象文書名／項目、検索対象文書名（関係文書名）／項目を含む。検索対象文書名／項目は、検索対象とされた文書名と当該文書名の文書に含まれる項目を示す。検索対象文書名（関係文書名）／項目は、検索対象文書名／項目の検索対象文書名と関係のある文書名と当該文書名の文書に含まれる項目を示す。
【００５８】
例えば、文書関係定義情報１１４は、検索対象文書名“顧客情報”／項目“顧客ＩＤ”、検索対象文書名（関係文書名）“問合せ履歴”／項目“顧客ＩＤ”を示す。これは、“顧客情報”と関係のある文書名が“問合せ履歴”であることを示す。また、“顧客情報”の“顧客ＩＤ”と“問合せ履歴”の“顧客ＩＤ”が関係を有することを示す。
【００５９】
次に、サーバ１００が実行する処理について、フローチャートを用いて説明する。
図１０は、非構造文書の作成処理の例を示すフローチャートである。例えば、非構造化処理部１２０は、端末装置２００から非構造文書の作成指示を受信することで図１０の処理を実行する。以下、図１０に示す処理をステップ番号に沿って説明する。
【００６０】
（Ｓ１１）非構造化処理部１２０は、関係データベース群から１つのテーブルを選択する。例えば、非構造化処理部１２０は、関係データベース群から顧客情報１１１ａを選択する。
【００６１】
（Ｓ１２）非構造化処理部１２０は、テーブルから１つのレコードを選択する。例えば、非構造化処理部１２０は、顧客情報１１１ａの顧客ＩＤ“Ｃ００１”、顧客名“Ａ社”、オーダ番号“ＯＲＤＥＲ００１”を含むレコードを選択する。
【００６２】
（Ｓ１３）非構造化処理部１２０は、レコードの情報をＸＭＬ形式に変換した非構造文書を作成する。
（Ｓ１４）非構造化処理部１２０は、テーブル名の開始タグとテーブル名の終了タグとを非構造文書に追加する。
【００６３】
（Ｓ１５）非構造化処理部１２０は、ＸＭＬ形式の非構造文書を記憶部１１０に格納する。
（Ｓ１６）非構造化処理部１２０は、全てのレコードを選択したか否かを判定する。全てのレコードを選択した場合、非構造化処理部１２０は、処理をステップＳ１７に進める。全てのレコードを選択していない場合、非構造化処理部１２０は、処理をステップＳ１２に進める。
【００６４】
（Ｓ１７）非構造化処理部１２０は、全てのテーブルを選択したか否かを判定する。全てのテーブルを選択した場合、非構造化処理部１２０は、処理を終了する。全てのテーブルを選択していない場合、非構造化処理部１２０は、処理をステップＳ１１に進める。
【００６５】
図１１は、定義情報の作成処理の例を示すフローチャート（その１）である。定義情報作成部１３０は、登録部１４０が非構造文書を非構造化データベース１１２に登録する前に図１１の処理を実行する。以下、図１１に示す処理をステップ番号に沿って説明する。
【００６６】
（Ｓ２１）定義情報作成部１３０は、非構造文書を読み込む。
（Ｓ２２）定義情報作成部１３０は、非構造文書内から１つの項目を選択する。例えば、定義情報作成部１３０は、非構造文書４００ａ内から“顧客ＩＤ”を選択する。なお、定義情報作成部１３０は、非構造文書内から項目を選択する場合、文書名を除外する。例えば、定義情報作成部１３０は、非構造文書４００ａ内の文書名“顧客情報”を除外する。
【００６７】
（Ｓ２３）定義情報作成部１３０は、選択した項目が入力定義情報１１３の入力項目に存在し、かつ、ステップＳ２１で読み込んだ非構造文書の文書名が入力定義情報１１３の検索対象文書に存在するか否かを判定する。判定条件を満たす場合、定義情報作成部１３０は、処理をステップＳ３１に進める。判定条件を満たさない場合、定義情報作成部１３０は、処理をステップＳ２４に進める。
【００６８】
（Ｓ２４）定義情報作成部１３０は、選択した項目が入力定義情報１１３の入力項目に存在するか否かを判定する。選択した項目が入力定義情報１１３の入力項目に存在する場合、定義情報作成部１３０は、処理をステップＳ２５に進める。選択した項目が入力定義情報１１３の入力項目に存在しない場合、定義情報作成部１３０は、処理をステップＳ２６に進める。
【００６９】
（Ｓ２５）定義情報作成部１３０は、同一の項目の行末に項目を追加する。例えば、ステップＳ２１で読み込んだ非構造文書が非構造文書４０３ａ、ステップＳ２２で選択した項目が“顧客ＩＤ”の場合、定義情報作成部１３０は、入力定義情報１１３の“顧客ＩＤ，顧客情報／顧客ＩＤ”の後に、“問合せ履歴／顧客ＩＤ”を追加する。
【００７０】
定義情報作成部１３０は、処理をステップＳ３１に進める。
（Ｓ２６）定義情報作成部１３０は、入力定義情報１１３に入力項目、検索対象文書名／項目を登録する。例えば、ステップＳ２１で読み込んだ非構造文書が非構造文書４００ａ、ステップＳ２２で選択した項目が“顧客名”の場合、定義情報作成部１３０は、入力定義情報１１３に“顧客名，顧客情報／顧客名”を登録する。
【００７１】
定義情報作成部１３０は、処理をステップＳ３１に進める。
図１２は、定義情報の作成処理の例を示すフローチャート（その２）である。以下、図１２に示す処理をステップ番号に沿って説明する。
【００７２】
（Ｓ３１）定義情報作成部１３０は、選択した項目とステップＳ２１で読み込んだ非構造文書の文書名とが文書関係定義情報１１４に存在するか否かを判定する。判定条件を満たす場合、定義情報作成部１３０は、処理をステップＳ３５に進める。判定条件を満たさない場合、定義情報作成部１３０は、処理をステップＳ３２に進める。
【００７３】
（Ｓ３２）定義情報作成部１３０は、記憶部１１０に設けられた退避領域に退避されている非構造文書の項目とステップＳ２２で選択した項目とが同じであるか否かを判定する。同じ場合、定義情報作成部１３０は、処理をステップＳ３３に進める。異なる場合、定義情報作成部１３０は、処理をステップＳ３４に進める。
【００７４】
（Ｓ３３）定義情報作成部１３０は、退避領域に退避されている非構造文書の項目とステップＳ２２で選択した項目とを関係付けて、文書関係定義情報１１４に登録する。例えば、退避領域に退避されている非構造文書の項目が、“顧客情報”の“顧客ＩＤ”であるとする。ステップＳ２１で読み込んだ非構造文書が非構造文書４０３ａ、ステップＳ２２で選択した項目が“顧客ＩＤ”の場合、定義情報作成部１３０は、“顧客情報／顧客ＩＤ＝問合せ履歴／顧客ＩＤ”を文書関係定義情報１１４に登録する。
【００７５】
定義情報作成部１３０は、処理をステップＳ３５に進める。
（Ｓ３４）定義情報作成部１３０は、ステップＳ２１で読み込んだ非構造文書の文書名とステップＳ２２で選択した項目とを対応付けて退避領域に格納する。そして、定義情報作成部１３０は、処理をステップＳ３５に進める。
【００７６】
（Ｓ３５）定義情報作成部１３０は、全ての項目を選択したか否かを判定する。全ての項目を選択した場合、定義情報作成部１３０は、処理を終了する。全ての項目を選択していない場合、定義情報作成部１３０は、処理をステップＳ２２に進める。
【００７７】
このように、定義情報作成部１３０が非構造文書に基づいて、入力定義情報１１３と文書関係定義情報１１４とを自動で作成することで、ユーザが入力定義情報１１３と文書関係定義情報１１４を作成する手間を省くことができる。
【００７８】
定義情報作成部１３０は、非構造化処理部１２０が非構造文書を作成する度に図１１，１２の処理を実行する。なお、登録部１４０は、定義情報作成部１３０による定義情報の作成処理が終了した非構造文書を非構造化データベース１１２に登録する。
【００７９】
図１３は、検索処理の例を示すフローチャートである。検索部１５０は、端末装置２００から検索依頼を受信した場合、図１３の処理を実行する。以下、図１３に示す処理をステップ番号に沿って説明する。
【００８０】
（Ｓ４１）検索部１５０は、端末装置２００から検索依頼を受信する。検索依頼は、入力項目と入力内容を含む。
（Ｓ４２）検索部１５０は、入力定義情報１１３を参照し、入力項目に対応する検索対象文書名を特定する。
【００８１】
（Ｓ４３）検索部１５０は、非構造化データベース１１２を参照し、検索対象文書名、入力項目および入力内容と、文書名、項目および項目内容とが一致する文書を検索する。
（Ｓ４４）検索部１５０は、ステップＳ４３の検索で条件を満たす文書を特定する。検索部１５０は、特定した文書に含まれる情報を取得する。
【００８２】
（Ｓ４５）検索部１５０は、文書関係定義情報１１４を参照し、１度検索した検索対象文書名を除外し、前回の検索対象文書名と関係のある検索対象文書名（関係文書名）が残っているか否かを判定する。残っている場合、検索部１５０は、処理をステップＳ４６に進める。残っていない場合、検索部１５０は、処理をステップＳ５１に進める。
【００８３】
（Ｓ４６）検索部１５０は、文書関係定義情報１１４を参照し、前回の検索対象文書名と関係のある検索対象文書名（関係文書名）を特定する。
（Ｓ４７）検索部１５０は、ステップＳ４４で取得した情報のうち、ステップＳ４３で検索した項目以外の他の項目と他の項目に対応する項目内容を特定する。また、ステップＳ４７を２回以上実行する場合、検索部１５０は、ステップＳ５０で取得した情報のうち、ステップＳ４９で検索した項目以外の他の項目と他の項目に対応する項目内容を特定する。
【００８４】
（Ｓ４８）検索部１５０は、文書関係定義情報１１４を参照し、ステップＳ４６で特定した検索対象文書名（関係文書名）のうち、ステップＳ４７で特定した他の項目と一致する関係文書名／項目を特定する。
【００８５】
（Ｓ４９）検索部１５０は、非構造化データベース１１２を参照し、検索対象文書名（関係文書名）、ステップＳ４８で特定した項目および当該項目に対応するステップＳ４７で特定した項目内容と、文書名、項目および項目内容とが一致する文書を検索する。
【００８６】
（Ｓ５０）検索部１５０は、ステップＳ４９の検索で条件を満たす文書を特定する。検索部１５０は、特定した文書に含まれる情報を取得する。そして、検索部１５０は、処理をステップＳ４５に進める。
【００８７】
（Ｓ５１）検索部１５０は、ステップＳ４４，５０で取得した文書の情報を結合して検索結果を作成する。検索部１５０は、作成した検索結果を端末装置２００に出力する。
次に、検索処理について、具体例を用いて説明する。
【００８８】
図１４は、検索処理の具体例を示す図である。検索部１５０は、端末装置２００から検索依頼５００を受信する（ステップＳＴ１）。検索依頼５００は、入力項目“顧客名”と入力内容“Ａ社”とを示す。
【００８９】
検索部１５０は、入力定義情報１１３を参照し、入力項目“顧客名”に対応する検索対象文書名“顧客情報”を特定する（ステップＳＴ２）。検索部１５０は、非構造化データベース１１２を参照し、検索対象文書名“顧客情報”、入力項目“顧客名”および入力内容“Ａ社”と、文書名、項目および項目内容とが一致する文書を検索する。検索部１５０は、条件を満たす文書を特定する（ステップＳＴ３）。検索部１５０は、特定した文書に含まれる情報を取得する。当該情報は、顧客情報、顧客ＩＤ“Ｃ００１”、顧客名“Ａ社”、オーダ番号“ＯＲＤＥＲ００１”である。
【００９０】
検索部１５０は、文書関係定義情報１１４を参照し、検索対象文書名“顧客情報”と関係のある検索対象文書名（関係文書名）“出荷情報”，“問合せ履歴”を特定する（ステップＳＴ４）。
【００９１】
検索部１５０は、文書名“顧客情報”を含む文書のうち、検索した項目“顧客名”以外の他の項目と他の項目に対応する項目内容を特定する。すなわち、検索部１５０は、顧客ＩＤ“Ｃ００１”、オーダ番号“ＯＲＤＥＲ００１”を特定する。
【００９２】
検索部１５０は、文書関係定義情報１１４を参照し、“顧客情報／顧客ＩＤ＝問合せ履歴／顧客ＩＤ”から問合せ履歴／顧客ＩＤを特定する。検索部１５０は、文書関係定義情報１１４を参照し、“顧客情報／オーダ番号＝出荷情報／オーダ番号”から出荷情報／オーダ番号を特定する。検索部１５０は、文書関係定義情報１１４を参照し、“顧客情報／オーダ番号＝問合せ履歴／オーダ番号”から問合せ履歴／オーダ番号を特定する。
【００９３】
検索部１５０は、非構造化データベース１１２を参照し、検索対象文書名（関係文書名）“問合せ履歴”、項目“顧客ＩＤ”および項目内容“Ｃ００１”と、文書名、項目および項目内容とが一致する文書を検索する。検索部１５０は、非構造化データベース１１２を参照し、検索対象文書名（関係文書名）“出荷情報”、項目“オーダ番号”および項目内容“ＯＲＤＥＲ００１”と、文書名、項目および項目内容とが一致する文書を検索する。また、検索部１５０は、非構造化データベース１１２を参照し、検索対象文書名（関係文書名）“問合せ履歴”、項目“オーダ番号”および項目内容“ＯＲＤＥＲ００１”と、文書名、項目および項目内容とが一致する文書を検索してもよい。また、検索部１５０は、“出荷情報”などを含む文書と“問合せ履歴”などを含む文書との検索を同時に実行する。
【００９４】
検索部１５０は、出荷情報、オーダ番号“ＯＲＤＥＲ００１”、製品ＩＤ“ＰＲＤ００１”を含む文書の情報を取得する（ステップＳＴ５）。また、検索部１５０は、問合せ履歴、問合せＩＤ“ＱＡ００１”、顧客ＩＤ“Ｃ００１”、オーダ番号“ＯＲＤＥＲ００１”、製品ＩＤ“ＰＲＤ００１”、問合せ内容“ＣＴ１”を含む文書の情報を取得する（ステップＳＴ５）。
【００９５】
検索部１５０は、文書関係定義情報１１４を参照し、検索対象文書名“出荷情報”または、検索対象文書名“問合せ履歴”と関係のある関係文書名“製品情報”を特定する（ステップＳＴ６）。
【００９６】
検索部１５０は、文書名“出荷情報”を含む文書のうち、検索した項目“オーダ番号”以外の他の項目と他の項目に対応する項目内容を特定する。すなわち、検索部１５０は、製品ＩＤ“ＰＲＤ００１”を特定する。検索部１５０は、文書名“問合せ履歴”を含む文書のうち、検索した項目“顧客ＩＤ”，“オーダ番号”以外の他の項目と他の項目に対応する項目内容を特定する。すなわち、検索部１５０は、問合せＩＤ“ＱＡ００１”、製品ＩＤ“ＰＲＤ００１”、問合せ内容“ＣＴ１”を特定する。
【００９７】
検索部１５０は、文書関係定義情報１１４を参照し、“出荷情報／製品ＩＤ＝製品情報／製品ＩＤ”または“問合せ履歴／製品ＩＤ＝製品情報／製品ＩＤ”から製品情報／製品ＩＤを特定する。なお、検索部１５０は、検索対象文書名（関係文書名）“製品情報”と関係のない項目“問合せＩＤ”、“問合せ内容”を除外する。
【００９８】
検索部１５０は、非構造化データベース１１２を参照し、関係文書名“製品情報”、項目“製品ＩＤ”および項目内容“ＰＲＤ００１”と、文書名、項目および項目内容とが一致する文書を検索する。これにより、検索部１５０は、製品情報、製品ＩＤ“ＰＲＤ００１”、製品名“製品Ａ”を含む文書の情報を取得する（ステップＳＴ７）。
【００９９】
検索部１５０は、１度検索した検索対象文書名を除外し、検索対象文書名“製品情報”と関係のある検索対象文書名（関係文書名）が残っていないと判定する。検索部１５０は、ステップＳＴ３，ＳＴ５，ＳＴ７で取得した文書の情報を結合して検索結果を作成する。検索部１５０は、作成した検索結果を端末装置２００に出力する。
【０１００】
図１５は、検索結果の具体例を示す図である。図１５は、図１４の検索処理によって出力された検索結果６００である。検索結果６００は、端末装置２００に表示される。
第２の実施の形態によれば、非構造化データベース１１２は、関係データベース群１１１に含まれるテーブルと同じ正規化レベルの複数の文書を含む。そのため、非構造化データベース１１２は、正規化レベルが低い非構造化データベースに比べて冗長性が少ない。すなわち、非構造化データベース１１２は、正規化レベルが低い非構造化データベースに比べてデータ量が少ない。サーバ１００は、データ量が少ない非構造化データベース１１２を用いて検索することで、非構造化データベースを用いた検索を高速化できる。
【０１０１】
サーバ１００は、入力定義情報１１３を参照し、検索対象文書名、入力項目および入力内容と、文書名、項目および項目内容とが一致する文書を検索する。このように、サーバ１００は、非構造化データベース１１２に対する検索条件が多くなることで、的確な検索結果を得ることができる。
【０１０２】
また、検索依頼に含まれる入力項目に対応する複数の検索対象文書名が入力定義情報１１３に登録されている場合、サーバ１００は、検索対象文書名を有する文書名を同時に検索する。例えば、検索依頼に含まれる入力項目“顧客ＩＤ”に対応する検索対象文書名“顧客情報”，“問合せ履歴”が入力定義情報１１３に登録されている場合、サーバ１００は、文書名“顧客情報”を有する文書と文書名“問合せ履歴”を有する文書とを同時に検索する。このように、サーバ１００は、検索対象文書名を有する文書名を同時に検索することで、検索時間を短くできる。
【０１０３】
また、サーバ１００は、文書関係定義情報１１４を参照し、検索対象の項目と検索対象外の項目を特定する。例えば、図１４のステップＳＴ６の後、サーバ１００は、“製品ＩＤ”を検索対象の項目として特定する。また、サーバ１００は、検索対象文書名（関係文書名）“製品情報”と関係のない項目“問合せＩＤ”、“問合せ内容”を検索対象から除外する。これにより、サーバ１００は、“問合せＩＤ”、“問合せ内容”を検索対象の項目として、非構造化データベース１１２に対して検索を行わなくて済む。すなわち、サーバ１００は、文書関係定義情報１１４を有することで、余計な検索処理を行わなくて済む。
【０１０４】
また、文書関係定義情報１１４は、異なる文書名を有する文書それぞれを、少なくとも１つの項目が共通する文書と当該文書以外の他の文書とが対応付けられた情報である。すなわち、異なる文書名で共通する項目を有する文書同士は、互いに関係を有することになる。これにより、サーバ１００は、異なる文書名を有する文書それぞれに設定された内容を出力することができる。例えば、サーバ１００は、異なる文書名“顧客情報”、“出荷情報”、“製品情報”、“問合せ履歴”それぞれに設定された内容を出力することができる。
【０１０５】
また、第１の実施の形態の情報処理は、検索装置１に用いられるプロセッサに、プログラムを実行させることで実現できる。第２の実施の形態の情報処理は、プロセッサ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体に記録できる。
【０１０６】
例えば、プログラムを記録した記録媒体は、プログラムを流通させることで配布することができる。また、非構造化処理部１２０、定義情報作成部１３０、登録部１４０および検索部１５０に相当する機能を実現するプログラムは、別個のプログラムとして各プログラムを別個に配布することができる。非構造化処理部１２０、定義情報作成部１３０、登録部１４０および検索部１５０の機能は、別個のコンピュータにより実現されてもよい。コンピュータは、例えば、記録媒体に記録されたプログラムを、ＲＡＭ１０２、ＨＤＤ１０３に格納し、プログラムを読み込んで実行してもよい。
【符号の説明】
【０１０７】
１  検索装置
１ａ  記憶部
１ａａ  非構造化データベース
１ａ１，１ａ２  親要素
１ｂ  検索部
２  検索情報
３  検索結果
Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５  ステップ
【図１】
2018073116.tif 000003
【図２】
2018073116.tif 000004
【図３】
2018073116.tif 000005
【図４】
2018073116.tif 000006
【図５】
2018073116.tif 000007
【図６】
2018073116.tif 000008
【図７】
2018073116.tif 000009
【図８】
2018073116.tif 000010
【図９】
2018073116.tif 000011
【図１０】
2018073116.tif 000012
【図１１】
2018073116.tif 000013
【図１２】
2018073116.tif 000014
【図１３】
2018073116.tif 000015
【図１４】
2018073116.tif 000016
【図１５】
2018073116.tif 000017