(57)【特許請求の範囲】
【請求項１】
検索式を含む検索要求に基づいてデータの所在を表すデータ識別子を含むデータリストを検索する検索方法において、
収集されたデータを入力する入力ステップと、
前記入力ステップにより入力される互いに重ならない入力時刻範囲のデータに対応して前記データリストをそれぞれ含み、かつ前記入力時刻範囲を示す情報を持つ複数の単位データベースを記憶する記憶ステップと、
前記複数の単位データベースに対して前記入力時刻範囲がより新しい単位データベースを優先的に順次検索対象として、決定された最大検索処理時間内で前記検索式に基づき検索を行う検索ステップと、
前記検索ステップにより検索対象の単位データベースから得られる複数の単位検索結果を統合して前記検索要求に対する検索結果を求める統合ステップとを有する検索方法。
【請求項２】
前記記憶ステップは、前記複数の単位データベースのうち前記入力時刻範囲が最も新しい第１の単位データベースを相対的に高速の記憶媒体に記憶し、他の第２の単位データベースを相対的に低速の記憶媒体に記憶することを特徴とする請求項１に記載の検索方法。
【請求項３】
前記最大検索処理時間を未処理の検索要求の個数に基づいて決定することを特徴とする請求項１に記載の検索方法。
【請求項４】
前記検索要求はエントリ範囲を指定する情報を含み、前記統合ステップは前記複数の単位検索結果のうち前記エントリ範囲に該当する単位検索結果のみを統合することを特徴とする請求項１に記載の検索方法。
【請求項５】
前記複数の単位検索結果のデータエントリはスコア順にソートされることを特徴とする請求項４に記載の検索方法。
【請求項６】
前記検索ステップが過去に行った検索における検索式と検索結果とを対応付けて検索結果記憶手段に記憶するステップと、
前記検索要求に含まれる検索式に該当する検索結果が前記検索結果記憶手段に記憶されている場合には、前記複数の単位データベースを検索せずに前記検索結果記憶手段から該当する検索結果を得るステップとをさらに有することを特徴とする請求項１に記載の検索方法。
【請求項７】
前記検索要求はさらにエントリ範囲を指定する情報を含み、前記検索ステップは前記エントリ範囲を越えるエントリ範囲について前記検索を行うことを特徴とする請求項１に記載の検索方法。
【請求項８】
前記記憶ステップは、前記入力されるデータを前記データリストの状態に変換し前記複数の単位データベースのうち前記入力時刻範囲が最も新しい単位データベースに追加することを特徴とする請求項１に記載の検索方法。
【請求項９】
検索式を含む検索要求に基づいてデータの所在を表すデータ識別子を含むデータリストを検索するためのデータベースを作成するデータベース作成方法において、
収集されたデータを入力する入力ステップと、
前記入力ステップにより入力されるデータを前記データリストの状態に変換し第１の記憶手段に記憶される第１の単位データベースに追加するステップと、
前記第１の単位データベースの一部または全部の内容を吐き出す条件が成立した場合に、前記入力ステップにより入力される互いに重ならない入力時刻範囲のデータに対応して第２の記憶手段に記憶される、前記データリストをそれぞれ含み、かつ前記入力時刻範囲を示す情報を持つ複数の第２の単位データベースのうち、前記入力時刻範囲が最も新しい吐き出し対象の単位データベースに前記内容を移動させるステップとを有することを特徴とするデータベース作成方法。
【請求項１０】
前記第１の単位データベースの一部または全部の内容を吐き出す条件が成立し、かつ前記第２の単位データベースを切り替える条件が成立した場合に、前記吐き出し対象の単位データベースを切り替えるステップをさらに有することを特徴とする請求項９に記載のデータベース作成方法。
【請求項１１】
前記第１の記憶手段は相対的に高速の記憶媒体であり、前記第２の記憶手段は相対的に低速の記録媒体であることを特徴とする請求項９に記載のデータベース作成方法。
【請求項１２】
検索式を含む検索要求に基づいてデータの所在を表すデータ識別子を含むデータリストを検索する検索装置において、
収集されたデータを入力する入力手段と、
前記入力手段により入力される互いに重ならない入力時刻範囲のデータに対応して前記データリストをそれぞれ含み、かつ前記入力時刻範囲を示す情報を持つ複数の単位データベースを記憶するデータベース記憶手段と、
前記複数の単位データベースに対して前記入力時刻範囲がより新しい単位データベースを優先的に順次検索対象として、決定された最大検索処理時間内で前記検索式に基づき検索を行う検索手段と、
前記検索手段により検索対象の単位データベースから得られる複数の単位検索結果を統合して前記検索要求に対する検索結果を求める手段とを有する検索装置。
【請求項１３】
検索式を含む検索要求に基づいてデータの所在を表すデータ識別子を含むデータリストを検索するためのデータベースを作成するデータベース作成装置において、
収集されたデータを入力する入力手段と、
前記入力手段により入力されるデータを前記データリストの状態に変換し第１の記憶手段に記憶される第１の単位データベースに追加する手段と、
前記第１の単位データベースの一部または全部の内容を吐き出す条件が成立した場合に、前記入力手段により入力される互いに重ならない入力時刻範囲のデータに対応して第２の記憶手段に記憶される、前記データリストをそれぞれ含み、かつ前記入力時刻範囲を示す情報を持つ複数の第２の単位データベースのうち、前記入力時刻範囲が最も新しい吐き出し対象の単位データベースに前記内容を移動させる手段とを有することを特徴とするデータベース作成装置。
【請求項１４】
コンピュータに、検索式を含む検索要求に基づいてデータの所在を表すデータ識別子を含むデータリストを検索させるためのプログラムであって、前記コンピュータに、収集されたデータを入力させ、入力される互いに重ならない入力時刻範囲のデータに対応して前記データリストをそれぞれ含み、かつ前記入力時刻範囲を示す情報を持つ複数の単位データベースを記憶させ、前記複数の単位データベースに対して前記入力時刻範囲がより新しい単位データベースを優先的に順次検索対象として、決定された最大検索処理時間内で前記検索式に基づき検索を行わせ、前記検索により検索対象の単位データベースから得られる複数の単位検索結果を統合して前記検索要求に対する検索結果を求めさせるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項１５】
コンピュータに、検索式を含む検索要求に基づいてデータの所在を表すデータ識別子を含むデータリストを検索するためのデータベースを作成させるためのプログラムであって、
収集されたデータを入力させ、入力されるデータを前記データリストの状態に変換し第１の記憶手段に記憶される第１の単位データベースに追加させ、前記第１の単位データベースの一部または全部の内容を吐き出す条件が成立した場合に、前記入力される互いに重ならない入力時刻範囲のデータに対応して第２の記憶手段に記憶される、前記データリストをそれぞれ含み、かつ前記入力時刻範囲を示す情報を持つ複数の第２の単位データベースのうち、前記入力時刻範囲が最も新しい吐き出し対象の単位データベースに前記内容を移動させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、検索要求された検索式に基づいてデータのリストを検索する検索方法及び検索装置並びに該検索のデータベースを作成するデータベース方法及びデータベース装置に関する。
【０００２】
【従来の技術】
近年、あらゆる分野で情報の電子化が進み、日々、大量のデジタルデータが生成されている。そして、これらの大量のデータの中から必要なデータを探すため、検索技術が発達してきた。
【０００３】
ここでは一例としてＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（ＷＷＷ）を考える。ＷＷＷでは、インターネットに継った世界中の多くのサーバにデータが置かれ、世界中の端末からそのデータを参照することができる。ＷＷＷ上のデータの数は年々倍増しており、そして頻繁に更新され、削除もされている。
【０００４】
これらＷＷＷ上の大量のデータから必要なデータを探すため、やはりＷＷＷ上にすでにいくつかの検索システムが存在する。これらの検索システムには世界中の端末からアクセスが来るため、大量の検索要求を高速に処理する必要がある。また、これらの検索システムはロボットと呼ばれる巡回型のデータ収集プログラムを利用し、新たに生成あるいは変更されたデータを収集すると同時に、削除されたデータも知ることができる。そして、そのように収集したデータを基に検索用のデータベースの生成を行っている。
【０００５】
ところで、データ収集結果をデータベースに反映させる際、データを一つ一つデータベースに追加するのは効率が悪いので、従来は、データがある程度まとまってからデータベースに追加していた。しかし、これではデータを取得してからデータベースとして利用できるまでに時間がかかってしまう。例えば、ＷＷＷ上で最も更新周期が短い検索サービスでも４時間に一回のデータベースの更新であり、他のＷＷＷ上の検索サービスでは一日に一回程度である。
【０００６】
以上のように、大量のデータを検索対象とし、大量の検索要求を高速に処理する必要のあるシステムにおいては、生成・更新・削除され変化するデータをある程度追随して収集することができても、収集されたデータを素早くデータベースに反映させ、検索対象とすることのできるシステムは存在しなかった。
【０００７】
【発明が解決しようとする課題】
以上述べたように、従来は、例えばＷＷＷ上の検索システムのような大量のデータを検索対象とし、大量の検索要求を高速に処理する必要のあるシステムにおいては、収集されたデータを素早く検索対象とできるようなシステムは存在しないという問題があった。
【０００８】
本発明は、上記事情を考慮してなされたものであり、大量のデータを検索対象とし、大量の検索要求を高速に処理しつつ、収集されたデータを素早く検索対象にすることのできる検索方法及び検索装置を提供することを目的とする。
【０００９】
また、本発明は、大量のデータを検索対象とし、大量の検索要求を高速に処理しつつ、収集されたデータを素早く検索対象にすることのできるデータベース方法及びデータベース装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明は、検索要求された検索式に基づいて収集したデータのリストを検索する検索方法において、収集したデータを、作成された時間範囲を示す範囲情報を持ち互いに該時間範囲が重ならないように作成された複数のデータベースに記憶させ、該範囲情報により示される時間範囲が新しいものから優先的に検索対象として、与えられた最大検索処理時間に従い、前記検索式に基づいた検索を行い、この検索により検索対象となったデータベースから得られる検索結果をもとにして、前記要求に対する検索結果を求めることを特徴とする。
【００１１】
好ましくは、前記複数のデータベースのうち最も新しい時間範囲を持つデータベースは高速な記憶媒体に記憶されたものであるようにしてもよい。
処理対象となった検索要求についての前記最大検索処理時間を、少なくともその時点での未処理の検索要求の個数に基づいて決定するようにしてもよい。
【００１２】
好ましくは、前記検索要求はエントリ範囲を指定する情報を含むものであり、前記検索対象となったデータベースから得た検索結果のうち、前記検索要求により指定されたエントリ範囲に該当するものを前記要求に対する検索結果とするようにしてもよい。
【００１３】
前記検索対象となったデータベースから得た検索結果のデータエントリはスコア順にソートされたものであるようにしてもよい。
好ましくは、過去に行った検索における検索式と検索結果とを対応付けて検索結果記憶手段に記憶しておき、検索要求された検索式に該当する検索結果が記憶されている場合には、前記複数のデータベースを検索せずに、前記検索結果記憶手段から該当する検索結果を得るようにしてもよい。
【００１４】
好ましくは、前記検索要求はエントリ範囲を指定する情報を含むものであり、前記複数のデータベースの検索の際には、前記検索要求により指定されたエントリ範囲を越えるエントリ範囲について検索するようにしてもよい。
【００１５】
好ましくは、入力されたデータを検索され得る状態に変換し前記複数のデータベースのうち最も新しい時間範囲を持つものとして追加するようにしてもよい。
また、本発明は、検索要求された検索式に基づいて収集したデータのリストを検索するためのデータベースを作成するデータベース作成方法において、収集したデータを検索され得る状態に変換し第１の記憶手段に記憶されるデータベースに追加していき、第１の条件が成立した場合に、第２の記憶手段に記憶された、作成された時間範囲を示す範囲情報を持ち互いに該時間範囲が重ならない複数のデータベースのうち、最も新しい時間範囲を持つものに、前記第１の記憶手段に記憶されたデータベースの一部または全部の内容を移動させることを特徴とする。
好ましくは、第２の条件が成立した場合に、前記第２の記憶手段に記憶されるデータベースとして、それまでより新しい時間範囲を持つデータベースを形成させるようにしてもよい。
好ましくは、前記第１の記憶手段は高速な記憶媒体で構成されたものであるようにしてもよい。
【００２１】
なお、以上の装置に係る発明は方法に係る発明としても成立し、方法に係る発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【００２２】
本発明によれば、作成された時間範囲を持ち互いに該時間範囲が重ならないように作成された複数のデータベースを検索対象とするとともに、許された検索時間において該複数のデータベースのうち時間範囲が新しいものほど優先して検索していくので、大量のデータを検索対象とし、大量の検索要求を高速に処理しつつ、収集されたデータを素早く検索対象にすることができる。
【００２３】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
以下では、本発明の一実施形態として、収集されたデータを素早く検索対象とすることを可能とする検索システムについて説明する。
【００２４】
最初に本実施形態に係る検索システムの概要等について説明する。
本検索システムは、大きく分けて、データベースを作成する機能（データベース作成装置としての機能）と、データベースを検索する機能（検索装置としての機能）の２つを持つ。データベースを作成する機能では外部から（例えばＷＷＷ上のサーバなどから）収集されたデータをもとに検索対象となるデータベースを作成し、データベースを検索する機能では要求元からの検索要求に応じて上記データベースを検索し検索結果をその要求元に提供する。
【００２５】
本検索システムでは、
（１）外部のデータを収集する手段（例えばＷＷＷ上の検索システムで利用される巡回型のデータ収集プログラムなど）により収集されたデータが入力されると、これを素早くデータベースに追加し検索の対象とすることができる。
（２）大量の検索要求に対しても高速に処理することができる。
（３）検索結果としては、一般に更新時間が新しいデータほど優先的に提示することができる。
【００２６】
なお、本実施形態では、検索対象のデータタイプとして主にテキスト文書を想定して説明を行うが、もちろん本発明は、テキスト文書を対象とする場合に限定されず、他のデータ、例えば、静止画、動画、音声、あるいはプログラムなどの種々のタイプのデータを対象とする場合でも同様に適用可能である。
【００２７】
次に、本検索システムに対する検索要求および検索結果について説明する。
本実施形態において、検索要求は、次の情報を含むものとする。
（１）検索式
（２）エントリ範囲
ただし、検索式は必須とし、エントリ範囲は省略可能とする。エントリ範囲が省略された場合にはデフォルトのエントリ範囲が指定されたものとする。
【００２８】
検索式とは、例えば「特許  ＡＮＤ  出願」のようにキーワードをＡＮＤ、ＯＲ、ＮＯＴなどの論理演算で結合した式であり、この具体例の場合は「特許」と「出願」の両方のキーワードを含むデータを検索するということを表す。もちろん、検索式に、検索対象に関する他の何らかの限定条件、例えば、時間に関する限定条件（例えばＷＷＷサーバ上におけるデータの作成／更新時刻のうち検索対象とする範囲など）や、検索対象の所在に関する限定条件（例えばそのデータを提供するＷＷＷサーバの持つＵＲＬの範囲）等の情報を付加できるようにしてもよい。
【００２９】
エントリ範囲とは、全検索結果のうちどのデータエントリを受けとりたいかを示す範囲である。
ここで、データエントリとは、データそのものではなく、そのデータに関する情報、例えばそのデータのデータ識別子やそのデータのタイトルなどを含んだ情報を指すものとする。
【００３０】
データ識別子とは、データの所在を一意に表すための識別子である。データ識別子の例としては、ファイルシステムにおけるファイル名やＷＷＷにおけるＵＲＬを挙げることができる。
【００３１】
ここで、一般に、検索を行ったとき検索結果の数が膨大になることがよくある。用途によっては全部の結果が必要となる場合があるが、検索結果の一部が参照できれば済む場合も非常に多い。そこで、検索結果の中でどの一部を参照するかが問題となる。
【００３２】
そこで、本実施形態では、全検索結果のデータそれぞれに検索式との適合度などを表す数値（評価値）であるスコアを付け、スコアの大きい順にソートし、ソートした結果の先頭から数えたときの範囲をエントリ範囲として指定できるようにした例を示している。
【００３３】
例えば、エントリ範囲として「２１番目から４０番目」という指定があったときは、全検索結果をスコア順にソートした後、先頭から数えて２１番目から４０番目のデータエントリを検索結果として送信する。ただし、検索結果が指定されたエンリトリ範囲の一部しか存在しなかった場合は、その一部のみを検索結果として返すことになる。検索結果が指定されたエントリ範囲に存在しない場合は、例えばデフォルトのエントリ範囲（例えば１番目から２０番目）の検索結果を返すなどすれば良い。
【００３４】
一般にエントリ範囲は上位の数十個程度以内を指定されることが多く、本検索システムではこの性質を利用して検索処理速度の向上を図っている。
なお、本実施形態では、検索結果としてデータそのものは送信せず、データエントリ列を送信するようにしている。
【００３５】
次に、上記のスコア付けについて説明する。
スコアとは、なんらかの基準に基づき各データに付けられた数値（評価値）である。
【００３６】
本実施形態では以下に例示する基準に基づきスコア付けを行うものとする。  （１）そのデータの情報が含まれる単位データベースの作成時刻が新しいほどスコアを高くする。
（２）同じ単位データベース内のときは、検索式中の単語がそのデータ内で出現する頻度とそのデータの含む全単語数の比が高いほど、スコアを高くする。
【００３７】
ここで、単位データベースとは、本検索システムで使用されるデータベースの一単位のことであるが、詳しくは後で説明する。
上記の（１）の基準は大雑把にデータの更新時刻が新しいほどスコアが高いことを意味する。なお、上記の（２）の基準については、上述のようにする代わりに、例えば検索式内の単語がそのデータに付随するタイトル中に存在するときはスコアを高くしたり、そのデータに関するキーワードがあらかじめ指定されているときは検索式内の単語がキーワード中に存在するときはスコアを高くするなど、適宜変形してもよい。
【００３８】
また、スコア付けの方法は、上記の他にも種々のものが考えられる。
続いて、本実施形態についてより詳しく説明する。
図１に、本実施形態に係る検索システムの構成を示す。
【００３９】
図１に示されるように、本検索システムは、検索インタフェース部１０１、検索制御部１０２、検索要求記憶部１０３、検索結果記憶部１０４、データベース一時記憶部１０５、データベース記憶部１０６、データベース作成部１０７、データ入力部１０８を備えている。
【００４０】
検索インタフェース部１０１は、外部からの検索要求を受信し、検索要求記憶部１０３に検索要求を記憶させる。ただし、検索要求記憶部１０３に、ある基準以上の数の検索要求がすでに記憶されていた場合には、記憶させずに検索要求が受け付けられない旨を示す信号を検索要求元に送信するのが好ましい。また、検索インタフェース部１０１は、検索結果を検索制御部１０２から受けとり、検索要求元に送信する。
【００４１】
検索制御部１０２は、検索要求記憶部１０３に記憶される検索要求に基づき、データベース一時記憶部１０５やデータベース記憶部１０６に記憶される情報から検索を行い、検索結果を検索インタフェース部１０１に送信する。
【００４２】
ここで、本実施形態では、データベース一時記憶部１０５やデータベース記憶部１０６を検索する際には、その検索要求のために費やす最大の検索処理時間を設定し、その時間内で検索を行うようにするものとする（もしくは最大検索処理時間に達したときに実行中の一纏まりの処理については完了させるようにしてもよい）。詳しくは後述するように、最大検索処理時間は、例えば、検索要求記憶部１０３に記憶されている検索要求の数に応じて設定される。
【００４３】
また、本実施形態では、検索制御部１０２がデータベース一時記憶部１０５やデータベース記憶部１０６を検索して得た検索結果は、検索結果記憶部１０４にも記憶させる。そして、検索要求に対応する検索結果がすでに検索結果記憶部１０４に記憶されていた場合には、データベース一時記憶部１０５やデータベース記憶部１０６を検索せずに、検索結果記憶部１０４から検索要求に対応する検索結果を得て要求元に送信する。ただし、この機能を設けないようにしても構わない。
【００４４】
検索要求記憶部１０３は、検索インタフェース部１０１が受信した検索要求を記憶する。
検索結果記憶部１０４は、検索制御部１０２によって検索された検索結果を記憶する。
【００４５】
データベース一時記憶部１０５は、データベース作成部１０７によって作成されるデータベースを記憶する。ここに記憶されるデータベースは、後に説明するタイミングによってデータベース記憶部１０６に吐き出される。このデータベース一時記憶部１０５は、高速な記憶媒体で構成するのが望ましい。これによって、システム全体の処理を効果的に高速化させることができる。
【００４６】
データベース記憶部１０６は、後に説明する複数の単位データベースを記憶する（初期的にはあるいは扱うデータ量やシステムの持つ記憶容量によっては０個または１個の状態になることもあり得る）。このデータベース記憶部１０６には、磁気ディスクのように比較的低速だが記憶容量の大きい記憶媒体を利用するのが望ましい。これによって、安価に大量のデータベースを記憶することができる。
【００４７】
データベース作成部１０７は、データベース入力部１０８から入力されたデータやデータ情報（例えばデータの所在に関する情報などデータのコンテンツ自体は含まないもの）からデータベースを作成し、データベース一時記憶部１０５に記憶させる。また、データベース一時記憶部１０５に記憶されたデータベースをデータベース記憶部１０６へ吐き出させたり、データベース記憶部１０６に記憶される単位データベースの削除（単位データベース自体の削除もしくは単位データベース内の一部のデータの削除）を行う。
【００４８】
データ入力部１０８は、外部からデータおよび／またはデータ情報を入力する。外部においてデータが新たに生成されたときあるいは更新されたときにはその生成あるいは更新されたデータまたはデータ情報が入力され、また外部においてデータが削除されたときにはその削除に関するデータ情報も入力される。具体的には、例えば、ＷＷＷにおける巡回型データ収集プログラムのようなデータ収集装置（もしくはデータ収集サービス）を通じてデータが入力される。なお、データ収集のタイミングあるいは頻度や対象範囲（例えばＷＷＷにおいて収集対象とするデータの所在の範囲など）等のデータ収集の条件は、データ収集装置（もしくはデータ収集サービス）側で定まる場合と、本検索システムから制御もしくは指定が可能な場合とが考えられる。後者の場合、データ収集の条件は、本検索システムの性能や目的あるいは利用状況などに応じて適宜決めればよい。
【００４９】
なお、データ入力部１０８に上記のようなデータ収集機能を内蔵してもよい。
このような本検索システムは、例えば、各種情報を提供する各種サーバ等が接続されたネットワーク（例えばインターネット）に接続され、ネットワーク上のデータやこれに関するデータ情報を収集してデータベースを作成し、そしてこのネットワーク（例えばインターネット）もしくは他のネットワーク（例えばＬＡＮ）を介して要求元となるユーザ端末あるいはプロキシ・サーバ等から検索要求を受け、該データベースを検索し、該要求元に検索結果を提供する。具体例としては、上記ネットワークはインターネットであり、上記サーバはＷＷＷサーバであり、上記要求元はインターネットに接続されたユーザ端末であり、この場合、本検索システムはインターネット上では情報検索サービス（情報検索サーバ）として機能する。
【００５０】
次に、データベース記憶部１０６およびデータベース一時記憶部１０５における記憶構造について説明する。
図２にデータベース記憶部１０６における記憶構造の一例を示す。
【００５１】
前述したようにデータベース記憶部１０６では、複数の単位データベース（４０１〜４０３）を記憶する。
単位データベースとは、ある時刻の範囲にデータ入力部１０８から入力されたデータを検索用にデータベース化したものであり、単位データベース単体で検索が可能である（１つの単位データベースに対する検索処理が一纏まりの処理すなわち検索の１単位となる）。単位データベースの構造は後に説明する。
【００５２】
各単位データベースの作られた時刻範囲（すなわち各単位データベースに属するデータのデータ入力部１０８からのデータ入力時刻の範囲）は、互いに重ならず、時刻順にソートされ管理されている。
【００５３】
本実施形態では、データ入力時刻が新しいものほど検索結果に優先的に反映させるようにすることから、このような記憶構造により、新しいデータを検索するための処理速度を向上させ、また、古いデータベースの削除を容易にするなどの利点がある。
【００５４】
次に、単位データベースおよびデータベース一時記憶部１０５の記憶構造を説明する。なお、データベース一時記憶部１０５の記憶構造は、１つの単位データベースの記憶構造と同様であり、以下、単位データベースの記憶構造という場合には、データベース記憶部１０６のそれぞれの単位データベースの記憶構造を指すと同時にデータベース一時記憶部１０５の記憶構造をも指すものとする。
【００５５】
図３に単位データベースの記憶構造の一例を示す。
単位データベースは、大別して、データ入力時刻範囲、追加データリスト、削除データリスト、単語・データ識別子表を記憶する。なお、図３における追加データリスト、データ情報、削除データリスト、および単語・データ識別子表と記述された４つのフィールドは説明のために記述したものであり、実際の記憶構造中に上記４つに相当するフィールド自体を設ける必要はない。
【００５６】
データ入力時刻範囲（５０１）とは、単位データベースに記憶される情報がデータ入力部１０８から入力された時刻の範囲を表す。
次に、追加データリスト（５０２）とは、この単位データベースで新たに追加されたデータを表す。追加データには、新たに作成されたもの（すなわち新規のデータ識別子を持つデータ）と更新されたもの（すなわち過去の単位データベースに同じデータ識別子を持つデータが存在する可能性のあるデータ）の両方が含まれる。
【００５７】
追加データリストはデータ情報のリストとして記憶される。追加データリストは主にデータ識別子からデータ情報を参照するときに使用される。
ここで、データ情報（５１１）とは、データに付随する情報であり、データがデータ入力部１０８から入力された時の時刻を表すデータ入力時刻（５１２）、データ識別子（５１３）、データがテキストか静止画か音声かなどを表すタイプ（５１４）、データが作成または更新された時刻を表す更新時刻（５１５）、サイズ（５１６）、タイトル（５１７）、説明文（５１８）の項目を含む。
【００５８】
次に、削除データリスト（５０４）とは、データ入力時刻範囲の間に削除されたデータを表し、データ識別子のリストで記憶される。
次に、単語・データ識別子表（５０６）とは、単語をキーにして、その単語を含むデータのデータ識別子のリストを引くための表（５０７）である。本実施形態では、この表は、高速化のためハッシュ表で構成されるものとする。
【００５９】
なお、本実施形態では単位データベースには元データ（データのコンテンツ自体）は記憶しないものとしているが、元データを同時に記憶し、検索結果に元データを（例えば常にあるいは要求に応じて）含めたりするようにしてもよい。
【００６０】
次に、本実施形態のデータベース作成部１０７における処理について詳しく説明する。
図４はデータベース作成部１０７の処理の流れの一例を示すフローチャートである。
【００６１】
図４において、ステップＳ１０１では全体の初期化を行なう。
この初期化以降の処理はループ処理となる。
まず、データ入力部１０８に入力があったかが調べられる（ステップＳ１０２）。入力があった場合にはそれがデータの追加か削除かによって処理が分岐する（ステップＳ１０３）。
【００６２】
データの追加の場合には、入力されたデータが解析され単語列に分解される（ステップＳ１０４）。この分解には形態素解析などの従来の技術が利用できる。次に、このデータに含まれる各単語をキーとしてデータ情報を参照できる形に変換し、データ情報と合わせてデータベース一時記憶部１０５に記憶する（ステップＳ１０５）。このとき、すでに同じデータ識別子をもつデータ情報がデータベース一時記憶部１０５に記憶されていたときは、重ね書きされる。
【００６３】
データの削除の場合は、削除するデータ識別子をデータベース一時記憶部１０５に記憶する（ステップＳ１０６）。このとき、すでに同じデータ識別子をもつデータ情報がデータベース一時記憶部１０５に記憶されていたときは、それは削除されるものとする。
【００６４】
次に、削除条件に達した単位データベースがあるか調べ（ステップＳ１０７）、削除条件に達した単位データベースがあった場合には、該当する単位データベースの一部または全部を削除する（ステップＳ１０８）。
【００６５】
削除条件とは、ある単位データベースの一部または全部を削除するかどうかを判断する条件である。削除を行うのは例えば次のような理由からである。すなわち、データベース記憶部１０６の記憶容量には一般に制限があるので、常にデータの追加をおこなっている状態では、いずれかの部分を削除しなければならない。また、ある程度古いデータに関しては価値が無くなったとみなし、削除するという考え方もできる。その他にも、データの更新がある程度の回数なされてくると、同じデータ識別子を持つデータ情報が複数の単位データベースに散らばってくることがあるので、あるタイミングで古い方のデータ情報を削除すると、記憶容量の省力化や検索処理速度の向上につながるという利点もある。
【００６６】
本実施形態では、このような記憶容量の残量やデータ入力時刻をパラメータとして、単位データベースの一部または全部を削除する条件を設定することが可能である。
【００６７】
次に、ステップＳ１０９では、データベース一時記憶吐き出し条件に達したかを調べる。
データベース一時記憶吐き出し条件とは、データベース一時記憶部１０５に記憶された情報をデータベース記憶部１０６に吐き出すかどうかを判断する条件である。
【００６８】
前述したようにデータベース一時記憶部１０５に少ない容量でも高速な記憶媒体を使えば、最新のデータに基づくデータベースを記憶することで検索処理の高速化を図ることができる。これは本実施形態では新しいデータほど検索結果に優先的に反映させるため、最新のデータベースが良く利用されるためである。しかし、このようにした場合、データを追加していくとデータベース一時記憶部１０５は、容量が少ないことから比較的すぐにあふれてしまう。そこで、あるタイミングで、データベース記憶部１０６（この場合、データベース記憶部１０６は磁気ディスクのように低速でも容量の大きい記憶媒体を利用して構成するものとする）にデータベースを移動する必要がある。この吐き出しもしくは移動のタイミングを決定するのがデータベース一時吐き出し条件である。
【００６９】
データベース一時記憶吐き出し条件としては、例えば、データベース一時記憶部１０５の記憶容量の残量が一定値を下回ったこと、検索要求が少なくなりシステムの処理能力に余裕ができたこと、もしくは一定時間ごと、またはこれらの組合せなどを指定することが可能である。
【００７０】
ステップＳ１０９でデータベース一時記憶吐き出し条件に達したときは、ステップＳ１１０にて単位データベース切替え条件に達したが調べられる。
単位データベース切替え条件とは、データベース一時記憶部１０５に記憶されていた情報を吐き出す対象となる単位データベースを、新しい単位データベースに切替えるかどうかを判断する条件である。一つの単位データベースにばかり吐き出していると、その単位データベースがどんどん膨らんでしまうため、あるタイミングで新しい単位データベースに切替えなければならない。
【００７１】
単位データベース切替え条件としては、例えば、一定時間ごと、もしくは単位データベースのサイズがある制限に達したこと、またはこれらの組合せなどを指定することが可能である。
【００７２】
単位データベース切替え条件が成立したときは、吐き出し対象の単位データベースを新たにオープンする（ステップＳ１１１）。
そして、対象となる単位データベースにデータベース一時記憶部１０５に記憶されるデータベースの一部または全部を移動させる（ステップＳ１１２）。
【００７３】
以上が、データベース作成部１０７における処理の流れである。
次に、検索要求記憶部１０３における記憶構造について説明する。
図５に検索要求記憶部１０３における記憶構造の一例を示す。
【００７４】
図５において、検索要求に関する情報は、受信した順にリスト構造として記憶される。
検索要求に関する情報は、要求元識別子（２０１）、検索式（２０２）、エントリ範囲（２０３）からなる。
【００７５】
要求元識別子とは、検索要求を発信した要求元を一意に示す識別子である。検索結果を送信する際に利用される。
検索式およびエントリ範囲については前述した通りである。
【００７６】
次に、検索結果記憶部１０４における記憶構造について説明する。
図６に検索結果記憶部１０４における記憶構造の一例を示す。
検索結果記憶部１０４は、検索式（３０１）をキーにして検索結果をすぐに参照できるように、本実施形態ではハッシュ表になっているものとする。
【００７７】
検索結果に関する情報としては、検索時刻（３０２）、検索中断フラグ（３０３）、検索結果全エントリ数（３０４）、検索結果エントリ数（３０５）、検索結果としてのデータ情報のリスト（３０６）がある。
【００７８】
検索時刻（３０２）とは、検索要求に基づき実際に検索を終了した時刻である。これは、後で古い検索結果を削除するときなどに、削除対象を決定するための指標として利用することができる。
【００７９】
検索中断フラグ（３０３）とは、データベース記憶部１０６に記憶される単位データベースすべてについて検索を行ったか、途中で切り上げたかを示すフラグである。本実施形態では、例えば未処理の検索要求の数などによって最大検索処理時間を変化させることができるものとしており、最大検索処理時間によっては単位データベースすべてにわたって検索できない場合がある。そのときには、検索中断フラグがたち、検索結果全エントリ数は推定値となる。なお、最大検索処理時間については後で詳しく述べる。
【００８０】
検索結果全エントリ数（３０４）とは、すべてのデータベース一時記憶部１０５および単位データベースから検索された全データエントリ数を指す。検索中断フラグが立っているときは、実際に検索した単位データベースの数と残りの数などから推定される値が代入される。
【００８１】
この推定値の求め方には種々の方法が考えられるが、例えば、検索式に該当するデータがどの単位データベースにも均一に含まれることを仮定すれば、全単位データベースの数をａ、検索されなかった単位データベースの数をｒ、実際に検索して得たデータエントリ数をｘとして、推定値ｙを、
ｙ＝ｘ×ａ／（ａ−ｒ）
で求めることができる。
【００８２】
あるいは、例えば、新しい単位データベースほど検索式に該当するデータを多く含むことを仮定して上記の推定値を求めることも可能である。
なお、検索中断フラグが立っていない状態で検索結果全エントリ数が０のときは、与えられた検索要求に該当するデータが存在しなかったことを表す。
【００８３】
検索結果エントリ範囲（３０５）とは、実際に記憶されている検索結果のデータエントリの範囲を表す。
検索結果のデータ情報（３０６）は、検索結果エントリ数の個数だけあり、前述したようにスコア順にソートされている。
【００８４】
次に、検索制御部１０２について詳しく説明する。
図７に検索制御部１０２の構成例を示す。図７に示す検索制御部１０２は、検索部１２１、検索時間決定部１２２、検索結果統合部１２３からなる。
【００８５】
検索部１２１は、検索要求記憶部１０３から受け取った検索要求に基づいて検索を行う。検索は、検索結果記憶部１０２、データベース一時記憶部１０５、データベース記憶部１０６の順に行う。
【００８６】
検索時間決定部１２２は、検索結果記憶部１０２からは該当する検索結果が得られなかった場合に、当該検索要求のためのデータベース一時記憶部１０５やデータベース記憶部１０６に対する検索処理に費やすことのできる最大検索処理時間を決定する。ここでは、検索要求記憶部１０３に記憶されている検索要求数が多いほど最大検索処理時間が短くなるように決定するものとする。なお、検索部１２１は、最大検索処理時間に達したならば直ちに検索を止めるようにしてもよいし、最大検索処理時間に達したときにある単位データベースの検索中であればその単位データベースの検索については完了させるようにしてもよい。
【００８７】
検索結果統合部１２３は、検索部１２１による各単位データベースに対する検索結果を取りまとめて、検索記憶部１０４に記憶させる検索結果と、要求元に往診する検索結果を作成する。
【００８８】
次に検索制御部１０２の動作について説明する。
図８は検索制御部１０２の処理の流れの一例を示すフローチャートである。
図８において、ステップＳ２０１では、全体の初期化を行なう。
【００８９】
この初期化以降の処理はループ処理となる。
まず、検索要求記憶部１０３に検索要求が存在するか調べる（ステップＳ２０２）。
【００９０】
検索要求が存在する場合はその検索要求を取得する（ステップＳ２０３）。そして、検索要求に合致する検索結果が検索結果記憶部１０４に存在するか調べる（ステップＳ２０４）。具体的には、以下の場合である。
（１）検索要求に含まれる検索式が検索結果記憶部１０４においてキーとして存在し、なおかつその検索式から参照された検索結果情報の検索中断フラグが立ってなくて、かつ検索結果全エントリ数が０の場合
（２）検索要求に含まれる検索式が検索結果記憶部１０４においてキーとして存在し、なおかつその検索式から参照された検索結果情報の検索結果エントリ範囲が検索要求にあるエントリ範囲を含む場合
これらのうちどちらかが成り立っている場合は、検索結果記憶部１０４に記憶される検索結果から検索要求に対する検索結果を得てこれを要求元に送信する（ステップＳ２０５）。すなわち、上記の（１）の場合は検索要求に対応するデータが存在しなかったことを送信する。上記の（２）の場合は該当するエントリ範囲を抜き出して送信する。これら処理により、過去に検索したときと同じ検索式の検索要求が来た場合は、実際にデータベース一時記憶部１０５やデータベース記憶部１０６を検索することなく高速に検索結果を返すことが可能となる。なお、ステップＳ２０５が終了した場合には、ステップＳ２０２に戻る。
【００９１】
ステップＳ２０４において検索結果記憶部１０４に該当する検索結果が存在しなかった場合は、次に最大検索処理時間を計算する（ステップＳ２０６）。
最大検索処理時間とは、その検索要求について許される最大の検索処理時間のことである。この処理時間を超過した時点で検索は中断され（もしくはその時点での単位データベースの検索を最後とし）、そこまでの検索結果が採用される。
【００９２】
最大検索処理時間は、検索が混んできたとき、すなわち検索要求記憶部１０３に記憶される検索要求の数が多くなるほど短くなるように設定される。この最大検索処理時間の決定方法には種々の方法が考えられる。例えば、簡単な方法としては、ある定数を検索要求数で除算したものを最大検索処理時間とする方法がある。なお、検索要求数に加えて、システムの負荷状態などを表すさまざまな数値を用いてさらに最大検索処理時間を最適化することも可能である。もちろん、検索要求数を用いず他のパラメータに基づいて最大検索処理時間を決定することも可能である。
【００９３】
なお、検索要求の混雑時においても最大検索処理時間内に少なくともデータベース一時記憶部１０５の検索だけは完了するように最大検索処理時間を調整するのが好ましい。
【００９４】
次に、検索要求にあるエントリ範囲からシステムエントリ範囲を決定する（ステップＳ２０７）。
システムエントリ範囲とは、検索要求にあるエントリ範囲を含むように、より広く取ったエントリ範囲のことである。これは、検索結果記憶部１０４におけるヒット率を上げるための工夫である。広くとったエントリ範囲での検索結果を検索結果記憶部１０４に記憶させることで、次に同じ検索式の検索要求を受信したときに、その検索要求に含まれるエントリ範囲がすでに記憶されている検索結果のエントリ範囲に含まれる可能性が高くなる。その結果、検索処理の平均速度を向上させることになる。
【００９５】
システムエントリ範囲の決め方にも種々の方法が考えられるが、例えば、検索要求のエントリ範囲が「ｅ１番目〜ｅ２番目」のときに、システムエントリ範囲を「１番目〜（［ｅ２／Ｄ］＋１）Ｄ番目」としてもよい。ここで、［  ］は小数点以下を切り捨てるという意味の記号であり、Ｄは定数である。
【００９６】
次に、データベース一時記憶部１０５およびデータベース記憶部１０６から最大検索処理時間に従いシステムエントリ範囲のデータ情報を検索する（ステップＳ２０８）。
【００９７】
なお、このステップＳ２０８については後に詳しく説明する。
次に、検索結果を検索結果記憶部１０４に記憶させる（ステップＳ２０９）。
このとき、検索結果記憶部１０４の記憶容量の残量が一定量以下になったときは、検索時刻（図６の３０２）を参照し、最も古い検索結果を削除する。
【００９８】
次のステップでは、検索結果のデータエントリのうち、検索要求のエントリ範囲に該当する部分を取り出し、検索結果として検索インタフェース部１０１に送信する（ステップＳ２１０）。そして、ステップＳ２０２に戻る。
【００９９】
以上によって、１つの検索要求に関する処理が終了する。
続いて、ステップＳ２０８における処理について詳しく説明する。なお、ステップＳ２０７までの処理で、検索要求の受信、最大検索処理時間の決定、システムエントリ範囲の決定が終了していることになる。
【０１００】
図９はステップＳ２０８の処理の流れの一例を示すフローチャートである。
ステップＳ２０８では、まずデータベース一時記憶部１０５を対象として検索要求に応じた検索を行なう（ステップＳ３０１）。この部分の検索には、データベース一時記憶部１０５に記憶される単語・データ識別子表（図３の５０７）を使う。ここでは、検索式に含まれる単語からその単語を含むデータを表すデータ識別子列を参照し、検索式に従ってそれらの集合演算を行なうなど、従来の検索方法を使用している。
【０１０１】
次に、ここでの検索で得られたデータ識別子の集合をスコア順にソートする（ステップＳ３０２）。そして、ここでのデータ識別子の数がシステムエントリ範囲を含む数に達したか、または最大検索処理時間を越えた場合は検索処理を終了する（ステップＳ３０３）。検索結果のデータ識別子のリストからシステムエントリ範囲の部分を取り出し、それを最終的な検索結果とする（ステップＳ３１０）。
【０１０２】
ステップＳ３０３がまだ成り立っていない場合は、データベース記憶部１０６に記憶される単位データベースの検索を開始する。
まず、データベース記憶部１０６に記憶される単位データベースのうち最も新しい単位データベースを次の検索対象として設定する（ステップＳ３０４）。そして、ループ処理に入る。
【０１０３】
最初に、検索対象となる単位データベースが存在するか調べる（ステップＳ３０５）。存在しなければ、すべての単位データベースについて検索が終了したことになる（ステップＳ３１０）。
【０１０４】
対象となる単位データベースが存在する場合はその検索を行なう（ステップＳ３０６）。
ここでの検索処理は、ステップＳ３０１とほぼ同様であるが、この単位データベースより未来側の単位データベースおよびデータベース一時記憶部１０５における追加データリストおよび削除データリスト（図３の５０２、５０４）を扱う点が異なる。あるデータが、現在対象としている単位データベースで検索されたとしても、より将来側の単位データベースにおいて更新または削除されている可能性があるからである。よって、ここでの検索結果から将来の単位データベースおよびデータベース一時記憶部１０５における追加データリストおよび削除データリストと重なるものを除く処理を行なう。
【０１０５】
次のステップで、ここでの検索で得られたデータ識別子の集合をスコア順にソートする（ステップＳ３０７）。そして、ここでのデータ識別子の数がシステムエントリ範囲を含む個数に達したか、または最大検索処理時間を越えた場合は検索処理を終了し（ステップＳ３０８）、ここまでの検索結果であるデータ識別子のリストを一列にまとめ、そこからシステムエントリ範囲の部分を取り出して、それを検索結果とする（ステップＳ３１０）。
【０１０６】
最後に、次に新しい単位データベースを設定し（ステップＳ３０９）、ステップＳ３０５に戻る。
以上が検索制御部１０２における処理の流れである。
【０１０７】
なお、以上の各機能は、ソフトウェアとしても実現可能である。
また、本発明は、コンピュータに所定の手順を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０１０８】
【発明の効果】
本発明によれば、作成された時間範囲を持ち互いに該時間範囲が重ならないように作成された複数のデータベースを検索対象とするとともに、許された検索時間において該複数のデータベースのうち時間範囲が新しいものほど優先して検索していくので、大量のデータを検索対象とし、大量のデータを検索対象とし、大量の検索要求を高速に処理しつつ、収集されたデータを素早く検索対象にすることが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る検索システムの構成を示す図
【図２】データベース記憶部の構造の一例を示す図
【図３】単位データベースおよびデータベース一時記憶部の記憶構造の一例を示す図
【図４】データベース作成部における処理の流れの一例を示すフローチャート
【図５】検索要求記憶部の記憶構造の一例を示す図
【図６】検索結果記憶部の記憶構造の一例を示す図
【図７】検索制御部の構成例を示す図
【図８】検索制御部における処理の流れの一例を示すフローチャート
【図９】詳細な検索処理の流れの一例を示すフローチャート
【符号の説明】
１０１…検索インタフェース部
１０２…検索制御部
１０３…検索要求記憶部
１０４…検索結果記憶部
１０５…データベース一時記憶部
１０６…データベース記憶部
１０７…データベース作成部
１０８…データ入力部
１２１…検索部
１２２…検索時間決定部
１２３…検索結果統合部
４０１〜４０３…単位データベース
【図１】
0003699267.tif 000002
【図２】
0003699267.tif 000003
【図３】
0003699267.tif 000004
【図４】
0003699267.tif 000005
【図５】
0003699267.tif 000006
【図６】
0003699267.tif 000007
【図７】
0003699267.tif 000008
【図８】
0003699267.tif 000009
【図９】
0003699267.tif 000010