(57)【要約】【課題】  タームインデックスをデータベースマネージメントシステム（ＤＢＭＳ）に格納することで、検索処理を高速に行うことのできるＳＱＬ分割式並列検索装置および方法を提供することを目的とする。【解決手段】  第１のサーバは、ターム分解したＳＱＬを第２のサーバの数に依存して分割し、分割されたＳＱＬをいずれかの第２のサーバに分配することを行い、第２のサーバは分配された各ＳＱＬで並列してタームインデックス格納手段に問合せを行って各ＳＱＬに該当する文書ＩＤの返信を受けて文書スコアの並列計算を行う。そして、文書ＩＤを第１のサーバに送信することを行い、更に第１のサーバは、文書情報ＤＢに文書ＩＤを送信して該文書ＩＤに該当する文書情報を受信することを行う。【選択図】図１
2006252102.tif 000002
【特許請求の範囲】
【請求項１】
タームインデックスからなるタームインデックス群を文書ＩＤと関連して格納するタームインデックス格納手段（ＤＢＭＳ）と、文書情報を格納する文書情報データベース（ＤＢ）と、を有し、
クライアント端末から送信された検索語句を受信して該検索語句をタームに分解してＳＱＬを生成する第１のサーバを有し、
前記ターム格納手段に前記ＳＱＬによる問合せを送信して、各ＳＱＬによる問合せに該当する文書ＩＤの返信を受ける並列処理を行う複数の第２のサーバを有し、
第１のサーバは、前記分解したＳＱＬを第２のサーバに分割し、分割されたＳＱＬをいずれかの第２のサーバに分配することを行い、
第２のサーバは、前記分配された各ＳＱＬによる問合せを並列して前記タームインデックス格納手段に行って各ＳＱＬの問合せに該当する文書ＩＤの返信を受けて該文書ＩＤを第１のサーバに送信することを行い、
更に、第１のサーバは、前記文書情報ＤＢに前記文書ＩＤを送信して該文書ＩＤに該当する文書情報を受信することを行うこと
を特徴とするＳＱＬ分割式並列検索装置。
【請求項２】
請求項１において、第１のサーバは、第２のサーバの前述の機能を兼用することを特徴とするＳＱＬ分割式並列検索装置。
【請求項３】
タームインデックスからなるタームインデックス群を文書ＩＤと関連して格納するタームインデックス格納手段と、文書情報を格納する文書情報ＤＢと、を有して文書情報について並列検索を行うＳＱＬ分割式並列検索方法において、
第１のサーバによってクライアント端末から送信された検索語句を受信して該検索語句をタームに分解してＳＱＬを生成し、
第２のサーバによって前記ターム格納手段に前記ＳＱＬを送信して問合せし、各ＳＱＬに該当する文書ＩＤの返信を受け、
第１のサーバは、前記分解したＳＱＬを複数の第２のサーバに分割し、分割されたＳＱＬをいずれかの第２のサーバに分配し、
第２のサーバは、前記分配された各ＳＱＬによる問合せを並列して前記タームインデックス格納手段に行って各ＳＱＬによる問合せに該当する文書ＩＤの返信を受けて該文書ＩＤを第１のサーバに送信し、
更に、第１のサーバは、前記文書ＤＢに前記文書ＩＤを送信して該文書ＩＤに該当する文書情報を受信すること
を特徴とするＳＱＬ分割式並列検索方法。
【請求項４】
請求項３において、第２のサーバは、前記ＳＱＬによる問合せに返信された文書ＩＤについて文書スコアの並列計算を行うことを特徴とするＳＱＬ分割式並列検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書検索処理を高速に行うことのできる並列検索装置および並列検索方法に関する。
【背景技術】
【０００２】
従来、文書検索の手段として、同一の文書データベースを複数のコンピュータに登録し、各コンピュータに異なる検索範囲を割り当てて検索させ、各コンピュータの検索結果を結合して最終的な検索結果を得るという並列検索装置、方法がある。
【０００３】
特許文献１には、検索コーディネータは、分割情報または集合セット情報を参照して、クライアントからの検索要求または２次処理要求を分析して使用するサーバを得、そのサーバのみに検索要求や２次処理要求を出し、そのサーバは、分割データベースに対する処理を行い、検索結果に基づいて集合セットを作成して保持し、検索コーディネータは、サーバから受け取った検索結果（集合セット）や処理結果をまとめて集合セット情報あるいは表示情報を作成して保存し、こうして、該当するサーバのみによって処理を行うことによって、並列データベースに対する効果的な検索処理と迅速な２次処理とを実現することが記載されている。
【０００４】
特許文献２には、文書の集合を分割して複数の部分検索プロセッサで部分検索を並列して高速化するとともに各部分検索プロセッサでは分割された文書の部分集合のみを格納して記憶容量の低減化を図った並列型情報検索装置および方法と並列型情報検索プログラムおよび該プログラムを記憶した記憶媒体が記載されている。
【０００５】
【特許文献１】特開平１０−１５４１６０号公報
【特許文献２】特開２００３−３０２３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
文書検索において、従来は、タームインデックスを夫々の検索処理システムがファイル形式で独自に実装しており、また、基本的にタームインデックスのファイルを全てメモリに格納しようとするため、実装メモリを超えるファイルサイズのタームインデックスを扱うことは困難であった。さらに、実装メモリを超えるファイルサイズのタームインデックスを扱うため、あるいは、検索処理を高速化するためにサーバを並列化させるためには、検索処理システム独自のファイル形式をサーバ毎に分割したり、サーバ間で他のサーバが所持するタームインデックスを参照するための通信処理を独自に実装する必要があった。本発明は、実装メモリを超えるタームインデックスを扱うことを容易にして、また検索処理システムの処理性能を状況に応じて柔軟に向上させることを容易にして、検索処理を高速に行うことのできるＳＱＬ分割式並列検索装置および方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、タームインデックスからなるタームインデックス群を文書ＩＤと関連して格納するタームインデックス格納手段と、文書情報を格納する文書情報データベース（ＤＢ）と、を有し、
クライアント端末から送信された検索語句を受信して該検索語句をタームに分解してＳＱＬを生成する第１のサーバを有し、
前記ターム格納手段に前記ＳＱＬを送信して問合せし、各ＳＱＬによる問合せに該当する文書ＩＤの返信を受ける並列処理を行う複数の第２のサーバを有し、
第１のサーバは、前記分解したＳＱＬを第２のサーバに分割し、分割されたＳＱＬをいずれかの第２のサーバに複数個分配することを行い、
第２のサーバは、前記分配された各ＳＱＬによる問合せを並列して前記タームインデックス格納手段に行って各ＳＱＬの問合せに該当する文書ＩＤの返信を受けて該文書ＩＤを第１のサーバに送信することを行い、
更に、第１のサーバは、前記文書情報ＤＢに前記文書ＩＤを送信して該文書ＩＤに該当する文書情報を受信することを行うこと
を特徴とするＳＱＬ分割式並列検索装置およびこの装置を使用した検索方法を提供する。
【０００８】
上記の文書ＩＤには文書、文書の章あるいは／および段落等のＩＤを含むものとする。
【発明の効果】
【０００９】
文書検索において、従来は、タームインデックスを夫々の検索処理システムがファイル形式で独自に実装しており、また、基本的にタームインデックスのファイルを全てメモリに格納しようとするため、実装メモリを超えるファイルサイズのタームインデックスを扱うことは困難であった。さらに、実装メモリを超えるファイルサイズのタームインデックスを扱うため、あるいは、検索処理を高速化するためにサーバを並列化させるためには、検索処理システム独自のファイル形式をサーバ毎に分割したり、サーバ間で他のサーバが所持するタームインデックスを参照するための通信処理を独自に実装する必要があった。本発明は、データベースマネージメントシステム（ＤＢＭＳ）をタームインデックスの格納手段として使用することで、実装メモリを超えるタームインデックスを扱うことを容易にして、またタームインデックス格納サーバとタームインデックスへの問合せ及び文書スコア計算を行うサーバとを分離し、文書データの増加や検索の高速化の要求に応じて、タームインデックス格納サーバの追加と、タームインデックスへの問合せ及び文書スコア計算を行うサーバの追加とを、夫々分離して行うことで検索処理システムの処理性能を状況に応じて柔軟に向上させることを容易にする。このようにして、ＳＱＬを分割することによる問合せの並列化が可能となり、さらに文書スコアを並列計算することで、検索処理を高速に行うことのできるＳＱＬ分割式並列検索装置および方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
本発明の実施例であるＳＱＬ分割式並列検索装置および方法は、タームインデックスからなるタームインデックス群を文書ＩＤと関連して格納するターム格納手段と、文書情報を格納する文書情報データベース（ＤＢ）と、を有し、
クライアント端末から送信された検索語句を受信して該検索語句をタームに分解してＳＱＬを生成する第１のサーバを有し、
前記ターム格納手段に前記ＳＱＬを送信して問合せし、各ＳＱＬに該当する文書ＩＤの返信を受ける並列処理を行う複数の第２のサーバを有し、
第１のサーバは、前記分解したＳＱＬを第２のサーバに分割し、分割されたＳＱＬをいずれかの第２のサーバに分配することを行い、
第２のサーバは、前記分配された各ＳＱＬによる問合せを並列して前記タームインデックス格納手段に行って各ＳＱＬによる問合せに該当する文書ＩＤの返信を受けて該文書ＩＤを第１のサーバに送信することを行い、
更に、第１のサーバは、前記文書情報ＤＢに前記文書ＩＤを送信して該文書ＩＤに該当する文書情報を受信することを行うように構成され、
また、第２のサーバは、ＳＱＬによる問合せに対して返信された文書ＩＤについて文書スコアの並列計算を行うように構成される。
【実施例】
【００１１】
以下、本発明にかかる実施例を図面に基づいて説明する。
【００１２】
図１は、ＳＱＬ分割式並列検索装置の構成を示す図であり、図２はＳＱＬ分割式並列検索装置のブロック図である。これらの図において、ＳＱＬ分割式並列検索装置１００は、クライアント端末（ユーザ端末）１，第１のサーバ２，第２のサーバ３からなるサーバ群３（Ａ），３（Ｂ）…，タームインデックス格納手段（データベースマネージメントシステムＤＢＭＳ）４，文書情報ＤＢ５，収集プログラム手段６，文書ＤＢ７，電子文書手段８、ネットワーク１０を備える。
【００１３】
クライアントは、クライアント端末１から検索語句を第１のサーバ２に検索語句の送信を行う（１）。クライアント端末１は、検索式の入力と電子検索の代行、検索結果の配信を行うことのできる電子検索代行処理装置としてもよい。
【００１４】
第１のサーバ２は、検索語句を受信し、検索語句をタームに分解し、ＳＱＬの生成を行う（２）。第２のサーバ３は複数のサーバ３（Ａ），３（Ｂ）…からなり、検索について並列処理を行うことが可能で、第２のサーバ３は複数使用され、第１のサーバ２に登録されている。
【００１５】
第１のサーバ２は、ＳＱＬを第２のサーバ３の数に合わせて分割してＳＱＬ（タームＳＱＬ）を生成することを行う（３）。
【００１６】
分割したＳＱＬを第２のサーバ３に配布、すなわち分配を行う（４）。分割されたＳＱＬはいずれかの第２のサーバ３に分配される。
【００１７】
第２のサーバ３は、分配されたＳＱＬでタームインデックス格納手段４に並列して問合せを行う（５）。そして、タームインデックス格納手段４から各ＳＱＬに該当する文書ＩＤの返信を受ける（６）。そして、文書スコアの計算を行い（７）、文書ＩＤと文書スコアを第１のサーバ２に送信する（８）。
【００１８】
第１のサーバ２は、文書ＩＤと文書スコアの返信を受けると、文書スコアの合計を行う（９）。このように、文書検索を行う際に、タームインデックスをタームインデックス格納手段４に格納し、タームＳＱＬによる問合せを並列化することで文書スコアの並列計算を行う。そして、文書ＩＤを文書情報ＤＢ５に送信することを行う（１０）。その結果、文書情報ＤＢ５から文書ＩＤに該当する文書情報の返信を受ける（１１）。第１のサーバ２は、この文書情報の返信を受け、文書情報の整形を行って（１２）、検索された検索情報を結果としてクライアント端末１に出力することを行う（１３）。
【００１９】
第１のサーバ２の機能役割（２）（３）（９）（１２）を第２のサーバ３が行っても良い。また、クライアント端末１とサーバ２，３の間に負荷分散装置を設置してクライアント端末１からの検索語句の送信（１）の送信先がサーバ２，３のいずれかに分散されるようにしてもよい。第１のサーバ２は第２のサーバ３の機能を兼用し、第２のサーバ３は第１のサーバ２の機能を兼用するようにしてもよい。図１では機能別表示としてある。
【００２０】
収集プログラム手段６は、収集プログラムを格納し、収集プログラムが事前に文書ＤＢ７および電子文書手段８から文書ＩＤおよび電子文書を収集し、タームインデックス格納手段４にタームの集合体として、および文書情報ＤＢ５に文書情報を格納することを行う。
【００２１】
図２に基づいて、クライアント端末１からの検索語句を基に分割されたＳＱＬを生成し、並列処理を行う第２のサーバ３に分配する状況を説明する。
【００２２】
図２において、クライアント端末１からの検索語句の入力を行い（入力，（１））、検索語句をタームに分解し（ターム分解）、ＳＱＬを生成し（ＳＱＬ生成，（２））、生成したＳＱＬを例えばサーバ３の数に合わせて分割を行う（分割，（３））。本例の場合、ＳＱＬを１０個のＳＱＬに分割している。分割したＳＱＬは、第２のサーバ３に分配する（分配，（４））。本例の場合、サーバの数は３（Ａ），３（Ｂ），３（Ｃ）の３個としている。そして、本例の場合、サーバ３（Ａ）にはＳＱＬ（１），（２），（３）の３個が、サーバ３（Ｂ）にはＳＱＬ（４），（５）の２個が、そしてサーバ３（Ｃ）にはＳＱＬ（６），（７），（８），（９），（１０）の５個が分配される。この例は１例であって、各サーバ３に平均的に分配されるようにしてもよい。いずれかのサーバ３には、１つのＳＱＬを分配することを妨げるものではない。
【００２３】
分配を受けたサーバ３（Ａ），３（Ｂ），３（Ｃ）はＳＱＬによる問合せの並列処理を行う（並列処理）。従って、分配されたＳＱＬでの問合せ、ＳＱＬに該当する文書ＩＤの返信（問合せ、返信（５），（６））が並列して行われることになる。
【００２４】
以上のように、ＳＱＬ分割式並列検索装置１００は、タームからなるターム群を格納するタームインデックス格納手段４と、文書情報を格納する文書情報データベース（ＤＢ）５と、を有し、
クライアント端末１から送信された検索語句を受信して該検索語句をタームに分解してＳＱＬを生成する第１のサーバ２を有し、
タームインデックス格納手段４にＳＱＬを送信して問合せし、各ＳＱＬに該当する文書ＩＤの返信を受ける並列処理を行う複数の第２のサーバ３を有し、
第１のサーバ２は、ターム分解したＳＱＬを第２のサーバ３に分割し、分割されたＳＱＬをいずれかの第２のサーバ３に分配することを行い、
第２のサーバ３は、分配された各ＳＱＬでタームインデックス格納手段４に問合せを行って各ＳＱＬによる問合せに該当する文書ＩＤの返信を受けて該文書ＩＤを第１のサーバ２に送信することを行い、
更に、第１のサーバ２は、文書情報ＤＢ５に文書ＩＤを送信して該文書ＩＤに該当する文書情報を受信することを行うことで構成される。
【００２５】
また、タームインデックスからなるタームインデックス群を文書ＩＤと関連して格納するタームインデックス格納手段４と、文書情報を格納する文書情報ＤＢ５と、を有して文書情報について並列検索を行うＳＱＬ分割式並列検索方法において、
第１のサーバ２によってクライアント端末１から送信された検索語句を受信して該検索語句をタームに分解してＳＱＬを生成し、
第２のサーバ３によってタームインデックス格納手段４にＳＱＬを送信して問合せし、各ＳＱＬに該当する文書ＩＤの返信を受け、
第１のサーバ２は、ターム分解したＳＱＬを複数の第２のサーバ３に分割し、分割されたＳＱＬをいずれかの第２のサーバ３に分配し、
第２のサーバ３は、分配された各ＳＱＬで並列してタームインデックス格納手段４に問合せを行って各ＳＱＬに該当する文書ＩＤの返信を受けて該文書ＩＤを第１のサーバ２に送信し、
更に、第１のサーバ２は、文書情報ＤＢ５に前記文書ＩＤを送信して該文書ＩＤに該当する文書情報を受信すること
を特徴とするＳＱＬ分割式並列検索方法が構成される。
【００２６】
以上のように本実施例によれば、タームインデックスをタームインデックス格納手段（ＤＢＭＳ）に格納するため、実装メモリを超えるタームインデックスを扱うことが容易になる。また、ＤＢＭＳにタームインデックスを格納することで、ＳＱＬによる問合せを行うサーバを複数設置することが容易になり、その結果、ＳＱＬを分割することによる問合せの並列化が可能となり、さらに各サーバが文書スコアを並列計算することで、検索処理を高速に行うことができるようになる。
【００２７】
図３は、タームインデックス格納手段４に格納されるタームインデックスの構成法を示す。図３において、タームインデックスの収集２１を行い、形態素９ａもしくはＮグラム９ｂの方式による解析を行い、ターム１〜ｎ９ｃに切り出し２３を行う。ターム９ｄ，文書ＩＤ９ｅおよび出現頻度９ｆを参照して特徴ベクトル化２４を行い、タームインデックス格納手段４にタームインデックス１２として蓄積２５を行う。
【００２８】
図４は、収集プログラム手段によるタームインデックス１２の収集方法を示す。収集プログラム手段６は、収集プログラムによってネットワーク１０を介して文書ＤＢ７、電子文書手段８から文書ＤＢ、電子文書を収集して内蔵する文書ＩＤ毎格納手段１４に格納すると共に、図３に示す手法に従ってタームインデックス１２を構成する。
【００２９】
図５は、タームの分解法の概要を示す。クライアント端末または検索代行処理装置のウェブサイト表示部内の検索語句入力部より、検索語句として「山太サンバ」を入力し、前記入力された「山太サンバ」をタームの分解によって、「山」、「山太」、「太」、「太サンバ」、「サンバ」というように分解し、ＳＱＬの生成によって、「SELECT depid FROM doc_index WHERE char IN (’山’,’山太’,’太’,’太サンバ’,’サンバ’)」が生成され、さらに第２のサーバ数に依存して「SELECT depid FROM doc_index WHERE char IN (’山’,’山太’)」、「SELECT depid FROM doc_index WHERE char IN (’太’,’太サンバ’)」、「SELECT depid FROM doc_index WHERE char IN (’サンバ’)」というようにＳＱＬに分割され、分割されたＳＱＬ「SELECT depid FROM doc_index WHERE char IN (’山’,’山太’)」、「SELECT depid FROM doc_index WHERE char IN (’太’,’太サンバ’)」、「SELECT depid FROM doc_index WHERE char IN (’サンバ’)」をタームインデックスに送信し、ＳＱＬによる問合せを並列して行い、各タームに該当する文書ＩＤ「山 1.101,2.101,3.102」「山太 1.101,2.101」、「太 1.101,2.101,3.102」「太サンバ 1.101,2.101」、「サンバ 1.101,2.101,3.102,4.101」を返信するものである。
【００３０】
図６は、図５中の各タームによる問合せの返信例の概要を示す。検索語句である「山太サンバ」による文書ＩＤ毎のスコアとおよび(contents)内容について、(contents)にある「山太サンバの秘密」、「歌番組に山太サンバ登場」、「山太郎がサンバを踊る」、「サンバ講習会」のうち下線の「・・山太サンバ・・」が含まれるものが文書スコアが高いということを示すものである。
【００３１】
文書ＩＤ（depid）は、did（文書）＋eid（章）＋pid（段落）による構成と、did（文書）＋eid（章）＋pid（段落）に“＋（頻度）”を加えた構成によることもある。
【００３２】
図７は、本実施例のフローチャートを示す。図７において、検索語句の入力（Ｓ１）を行い、入力情報の送信（Ｓ２）、すなわち検索語句の送信を行う。検索語句をタームに分解し（Ｓ３）、ＳＱＬの生成を行う（Ｓ４）。生成されたＳＱＬからＳＱＬ分割（Ｓ５）を行い、分割されたＳＱＬを第２のサーバ３（Ａ），３（Ｂ），３（Ｃ）に配分（分配）し（Ｓ６）、各サーバからタームインデックス格納手段への問合せを並列して行って（Ｓ７）、該当文書の返信を受けて該当文書ＩＤを取得する（Ｓ８）。文書スコアの計算を並列して行い（Ｓ９）、文書スコアを合計する（Ｓ１０）。文書情報の返信を受け、文書情報ＤＢへの問合せ（Ｓ１１）を行い、文書ＩＤに該当する文書情報を取得する（Ｓ１２）。検索結果の整形（Ｓ１３）を行って、検索結果をクライアント端末に出力する（Ｓ１４）。
【００３３】
以上の手法によれば、上述のように予めサーバ単位に、また分配されたＳＱＬ単位毎に問合せを行うことができるようになり、それぞれ分配されたＳＱＬ単位での問合せが高速化し、サーバの数に応じて文書スコア計算が並列化できることから、検索結果が瞬時に提供できるようになる。
【００３４】
さらに本実施例では、タームインデックスをタームインデックス格納手段（ＤＢＭＳ）に格納することで、従来のファイル形式よりもタームインデックスの差分更新を容易にした。その結果、文書収集プログラムを頻繁に動作させることによって、発信されて間もない情報についても検索可能になる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施例の構成を示す図。
【図２】図１の構成の主要部をブロックで示す図。
【図３】タームインデックス問合せの流れを示す図。
【図４】タームインデックス作成手段の概要を示す図。
【図５】ターム分解法を説明する図。
【図６】図６は、図５中の各タームによる問合せの返信から文書スコアを計算した一例を示す図。
【図７】実施例のフローチャート図。
【符号の説明】
【００３６】
１…クライアント端末、２…第１のサーバ、３…第２のサーバ、４…タームインデックス格納手段（データベースマネージメントシステムＤＢＭＳ）、５…文書情報ＤＢ、６…収集プログラム手段、７…文書ＤＢ、８…電子文書手段、１０…ネットワーク、
１００…ＳＱＬ分割式並列検索装置。
【図１】
2006252102.tif 000003
【図２】
2006252102.tif 000004
【図３】
2006252102.tif 000005
【図４】
2006252102.tif 000006
【図５】
2006252102.tif 000007
【図６】
2006252102.tif 000008
【図７】
2006252102.tif 000009
【手続補正書】
【提出日】平成17年3月10日(2005.3.10)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2006252102.tif 000010