(57)【要約】【課題】  情報検索システムにおけるキャッシュのヒット率を向上させて検索処理の負荷を軽減する。【解決手段】  記録サーバ２は、ユーザ端末３から受信した検索条件に検索範囲の拡張補正を施し、該補正後の検索条件をログ４に記録していなければ、該検索条件を検索サーバ１に送信する。検索サーバ１は、受信した検索条件に応じた検索結果を要素データベース９から取得する。記録サーバ２は、検索サーバ１の取得した検索結果と拡張補正後の検索条件とを対応付けてログ４に記録するとともに、拡張補正後の検索結果から拡張範囲に応じた検索結果を削除してユーザ端末３に応答する検索結果を生成する。ログ４に検索条件が記録されていれば、記録サーバ２は該検索条件に対応付けてログ４に記録している検索結果をもってユーザ端末３に応答する。【選択図】  図１
2011022674.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末から検索指示された検索条件の検索範囲に応じた検索結果を、データベースを検索して取得する検索手段と、
前記検索条件および前記検索結果のログを記録する記録手段と、を備えた情報検索システムであって、
前記記録手段が、前記ユーザ端末から受信した検索条件に対して検索範囲の拡張補正を施し、
前記ログに拡張補正後の検索条件に対応する検索結果が記録されていなければ、前記検索手段にて拡張補正後の検索条件に応じた検索結果を、前記データベースを検索して取得するとともに、
前記記録手段が、前記ログに前記検索手段の取得した検索結果と拡張補正後の検索条件とを対応付けて記録し、拡張補正後の検索結果から拡張範囲に応じた検索結果を削除して前記ユーザ端末に応答するための検索結果を生成する一方、
前記ログに拡張補正後の検索条件に対応する検索結果が記録されていれば、該記録された検索結果をもって前記ユーザ端末に応答する
ことを特徴とする情報検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースから任意の情報を検索するシステムにおいてキャッシュのヒット率を向上させる技術に関する。
【背景技術】
【０００２】
従来の分散データベースシステムは、構成要素である要素データベースがネットワーク上に分散され、個々の要素データベースがそれぞれ独立のデータを保存して構成されている。
【０００３】
この分散データベースシステムにおいてユーザが指定した検索条件で検索を行う場合、検索条件を受け付けたサーバは、全ての要素データベースに対して二次要求を発行して網羅検索を行うか、あるいはインデクス情報などを用いて特定の要素データベースにのみ検索要求を発行して検索を行っている。
【０００４】
ところが、要素データベースはそれぞれ独立のデータを保存していることから、ユーザからの検索要求を受け付けた装置と検索条件に一致する情報を保存する要素データベースとの間の通信速度がユーザへの検索結果返信のボトルネックとなる。
【０００５】
そこで、特許文献１に示すように、検索頻度の高い検索条件および該条件に対応する検索結果を一時保存部にキャッシュしておき、ユーザ端末からの検索要求で指定された検索条件をキャッシュしている場合には、外部の要素データベースを検索することなく、その検索条件に対応付けてキャッシュしている検索結果を出力して検索処理を高速化する情報検索装置が提案されている。この情報検索装置によれば、検索頻度が高い検索条件とその検索結果とをキャッシュしているため、一般的にはキャッシュのヒット率が高くなることが期待できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２５２７８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、検索条件値のカーディナリティが大きい、即ち検索条件値の取り得る値の種類が多いシステムでは、検索結果のキャッシュが検索条件の最小単位ごとに作成されるため、事実上キャッシュの利用率が低くなるおそれがある。
【０００８】
例えば、検索対象データが秒単位の時刻情報を含む場合は、検索条件としても秒単位の指定ができることが妥当であるが、検索条件として「現在時刻以前のデータ」を指定すると、検索条件に対応してキャッシュも秒単位で作成される。ところが、キャッシュは作成されてから最大でも１秒間しか有効ではないため事実上利用されず、結果としてキャッシュのヒット率が低下し、検索処理の負荷が増大するおそれがある。
【０００９】
本発明は、このような問題を解決するためになされたものであり、情報検索システムにおけるキャッシュのヒット率を向上させて検索処理の負荷を軽減することを解決課題としている。
【課題を解決するための手段】
【００１０】
そこで本発明は、前記課題を解決するため、任意の範囲指定を含む検索条件に対し、当該範囲を包含するより広い検索範囲に拡張する補正を行い、該補正後の検索範囲とその検索結果とをキャッシュすることでキャッシュのヒット率を向上させている。
【００１１】
本発明は、ユーザ端末から検索指示された検索条件の検索範囲に応じた検索結果を、データベースを検索して取得する検索手段と、前記検索条件および前記検索結果のログを記録する記録手段と、を備えた情報検索システムであって、前記記録手段が、前記ユーザ端末から受信した検索条件に対して検索範囲の拡張補正を施し、前記ログに拡張補正後の検索条件に対応する検索結果が記録されていなければ、前記検索手段にて拡張補正後の検索条件に応じた検索結果を、前記データベースを検索して取得するとともに、前記記録手段が、前記ログに前記検索手段の取得した検索結果と拡張補正後の検索条件とを対応付けて記録し、拡張補正後の検索結果から拡張範囲に応じた検索結果を削除して前記ユーザ端末に応答するための検索結果を生成する一方、前記ログに拡張補正後の検索条件に対応する検索結果が記録されていれば、前記記録手段が拡張補正後の検索条件に対応付けて記録された検索結果をもって前記ユーザ端末に応答することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、情報検索システムにおけるキャッシュのヒット率が向上し、検索処理の負荷が軽減する。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る情報検索システムの構成図。
【図２】同  情報検索システムの動作例を示すシーケンス図。
【図３】同  （ａ）は検索条件の補正処理の概念図、（ｂ）はキャッシュサーバのキャッシュ例を示す概念図、（ｃ）はフィルタリング処理のイメージ図。
【発明を実施するための形態】
【００１４】
本発明の実施形態に係る情報検索システムは、図１に示すように、検索条件を指示するユーザ端末３にインターネット経由で接続された検索サーバ１と、該検索サーバ１と前記ユーザ端末３との間の通信データを中継するキャッシュサーバ２とから構成されている。
【００１５】
前記ユーザ端末３は、通常のパーソナルコンピュータ（ＰＣ）や携帯電話などのモバイル端末で構成され、ユーザ操作により任意の範囲指定を含む検索条件が入力される。なお、ユーザ端末３は複数台接続されていてもよい。
【００１６】
前記検索サーバ１は、例えばインターネット上に公開されている電子文書群を検索する検索エンジンなどで構成され、前記ユーザ端末３に入力された検索条件を受信して、該検索条件に該当する検索結果を返信する。
【００１７】
前記キャッシュサーバ２は、前記ユーザ端末３の指示に応じて前記検索サーバ１で検索されたログを記録する機能を有している。ここでは、該キャッシュサーバ２は、前記ユーザ端末３と前記検索サーバ１との間を中継するプロキシサーバ（Ｐｒｏｘｙ  Ｓｅｒｖｅｒ）などで構成されている。
【００１８】
詳細を説明すれば、前記キャッシュサーバ２は、前記ユーザ端末３から送信された検索条件を受信し、該受信した検索条件に対応する検索結果をログに記録していなければ、該検索条件をネットワーク経由で前記検索サーバ１へ送信し、該当する検索結果を受信する。この前記検索サーバ１から受信した検索結果を前記ユーザ端末３へ返信し、該検索結果と前記ユーザ端末３から受信した検索条件と対応付けてログに記録する。
【００１９】
一方、前記ユーザ端末３から受信した検索条件に対応する検索結果がログに記録（キャッシュ）されていれば、前記キャッシュサーバ２は該検索条件を前記検索サーバ１へ送信することなく、ログに記録（キャッシュ）している該検索結果を前記ユーザ端末３へ返信する。これにより前記情報検索システムは、前記ユーザ端末３からの検索要求に対する応答時間を短縮し、検索サーバ１へのアクセス頻度を低減し検索処理の負荷を軽減させている。
【００２０】
このように構成された情報検索システムでは、前記キャッシュサーバ２は、前記ユーザ端末３から入力された検索条件に含まれる検索範囲に対して、該検索範囲の始点および終点を拡張する境界補正を施すことにより、該キャッシュサーバ２におけるキャッシュのヒット率を向上させている。
【００２１】
即ち、前記キャッシュサーバ２は、前記ユーザ端末３から受信した検索条件に含まれる検索範囲を、所定の間隔にしたがって拡張する。この拡張補正後の検索条件をログに記録していれば、該検索条件に対応する検索結果を前記保存手段から取得して前記ユーザ端末３へ返信する。
【００２２】
一方、拡張補正後の検索条件をログに記録していなければ、該検索条件を前記検索サーバ１へ送信し、該検索条件に該当する検索結果を取得する。この取得した検索結果と拡張補正後の検索条件とを対応付けてログに記録するとともに、検索結果を前記ユーザ端末３へ返信する。
【００２３】
このように前記キャッシュサーバ２は、拡張されて一定の広さを持った検索範囲とその検索結果のみをログに記録（キャッシュ）し、次回以降の前記ユーザ端末３からの検索要求に対するキャッシュのヒット率を向上させている。
【００２４】
ただし、前記キャッシュサーバ２から前記ユーザ端末３へ返信される検索結果には、ユーザ指定の検索範囲外のデータが含まれる可能性があるため、前記キャッシュサーバ２は該検索結果にフィルタリング処理を施し、ユーザ指定の検索範囲に合致する検索結果のみを前記ユーザ端末３へ返信するものとする。
【００２５】
なお、前記キャッシュサーバ２はプロキシサーバに限定されることなく、インターネット上に配置された記録サーバとして構成してもよく、この場合には前記各装置１〜３間のデータ送受信はインターネット経由で行われる。
【００２６】
また、図１中では前記両サーバ１．２がインターネット経由で接続された構成例を示しているが、前記両サーバ１．２は社内ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのインターネット以外のネットワークで接続されていてもよいものとする。以下、前記検索サーバ１およびキャッシュサーバ２の具体的構成例を説明する。
【００２７】
＜検索サーバ１およびキャッシュサーバ２の構成例＞
前記検索サーバ１およびキャッシュサーバ２は、通常のコンピュータのハードウェア資源、即ちＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）、メモリ（ＲＡＭ）、ハードディスクドライブ装置、通信インタフェースなどを備えている。
【００２８】
このハードウェア資源とソフトウェア資源（ＯＳ，アプリケーション）との協働の結果、前記キャッシュサーバ２は、図１に示すように、ログ４，境界条件補正手段５，キャッシュ手段６，検索結果フィルタ手段７を実装する。前記検索サーバ１は、検索条件受付手段８，要素データベース９，検索実行手段１０，検索結果出力手段１１を実装する。なお、前記要素データベース９は、メモリ（ＲＡＭ）やハードディスクドライブ装置を含む任意の記憶装置上に構築されているものとする。また、前記ログ４は、前記メモリ（ＲＡＭ）やハードディスクドライブ装置に記録されている。
【００２９】
即ち、前記境界条件補正手段５は、前記通信インタフェースを通じて前記ユーザ端末３から受信した検索条件に対して、ユーザ指定の検索範囲を包含するより広い範囲に拡張する補正を行い、該補正後の検索条件を前記キャッシュ手段６へ転送する。
【００３０】
前記キャッシュ手段６は、前記境界条件補正手段５から転送された補正後の検索条件が前記ログ４に記録（キャッシュ）されているか否かを確認する。キャッシュされていなければ、該検索条件を前記通信インタフェースを通じて前記検索サーバ１の検索条件受付手段８へ送信する。
【００３１】
前記検索条件受付手段８は、前記キャッシュ手段６から送信された補正後の検索条件を前記通信インタフェースを通じて受信し、該受信した検索条件を前記検索実行手段１０へ転送する。
【００３２】
前記検索実行手段１０は、前記検索条件受付手段８から転送された補正後の検索条件をもって検索対象データが格納されている要素データベース９を検索し、該検索条件に該当する検索結果を取得して前記検索結果出力手段１１へ転送する。なお、前記要素データベース９は、前記検索サーバ１がアクセス可能なインターネット上の他のコンピュータなどに実装されていてもよい。
【００３３】
前記検索結果出力手段１１は、前記検索実行手段１０から転送された検索結果を前記通信インタフェースを通じて前記キャッシュ手段６へ返信する。
【００３４】
前記キャッシュ手段６は、前記検索結果出力手段１１から受信した検索結果と前記補正後の検索条件とを対応付けて前記ログ４へ記録（キャッシュ）するとともに、検索結果を前記検索結果フィルタ手段７へ転送する。
【００３５】
前記検索結果フィルタ手段７は、前記キャッシュ手段６から転送された検索結果から、検索範囲を拡張したことにより混入したユーザ指定の範囲外のデータを削除（フィルタリング）し、その結果得られる最終的な検索結果を前記通信インタフェースを通じて前記ユーザ端末３へ返信する。
【００３６】
一方、補正後の検索条件が前記ログ４に記録（キャッシュ）されていれば、前記キャッシュ手段６は該検索条件に対応する検索結果を前記ログ４から取得し、該取得した検索結果を前記検索結果フィルタ手段７へ転送する。
【００３７】
前記検索結果フィルタ手段７は、前記キャッシュ手段６から転送された検索結果に対して前述と同様のフィルタリング処理を施し、その結果得られる最終的な検索結果を前記通信インタフェースを通じて前記ユーザ端末３へ返信する。
【００３８】
＜情報検索システムの動作例＞
以下、前記情報検索システムの動作例を図２のシーケンス図に基づき説明する。ここでは、ユーザは前記ユーザ端末３を通じて検索条件を時刻情報で範囲指定するものとする。例えば、時刻情報が「０９：００：００〜０９：３０：００」の範囲にあるデータを検索するといった指定を行う。また、前記検索サーバ１内の要素データベース９に格納されている検索対象データは、秒単位の値を持つ時刻情報を含むものとする。
【００３９】
Ｓ０１．Ｓ０２：まず、ユーザの操作により前記ユーザ端末３に入力された検索条件が前記キャッシュサーバ２の境界条件補正手段５へ送信される（Ｓ０１）。
【００４０】
このとき前記境界条件補正手段５は、受信した検索条件で指定された検索範囲に対し、当該範囲を包含するより広い範囲に拡張する補正を行う。即ち、前記境界条件補正手段５は、予め設定された所定の単位時間間隔（以下、粒度と呼ぶ）に基づいて、検索条件で指定された検索範囲の始点の時刻を当該時刻以前に、終点の時刻を当該時刻以後にそれぞれ補正する。
【００４１】
この補正処理の一例を図３（ａ）に基づき説明する。ここでは検索条件で指定された補正前の検索範囲が「０９：０８：００〜０９：２７：００」であり、この検索範囲の補正幅の指標となる前記粒度Ｔが「５分」に設定されている。
【００４２】
このとき前記境界条件補正手段５は、前記粒度Ｔ（５分）に基づいて前記検索範囲の始点の時刻「０９：０８：００」を当該時刻以前の「０９：０５：００」に、終点の時刻「０９：２７：００」を当該時刻以後の「０９：３０：００」にそれぞれ拡張し、拡張後の検索範囲を「０９：０５：００〜０９：３０：００」とする。
【００４３】
また、検索条件で指定された検索範囲が設定された粒度Ｔ（５分）に満たない場合、例えば「０９：０１：００〜０９：０４：００」のような場合にも、同様に前記粒度Ｔに基づき始点および終点が拡張される。この場合には、検索範囲が「０９：００：００〜０９：０５：００」に拡張され、拡張後の検索範囲に粒度Ｔの長さが確保される。
【００４４】
このように前記境界条件補正手段５は、検索条件で指定された検索範囲の始点および終点の時刻を、前記粒度Ｔで示される単位時間間隔の最も近傍の値まで拡張し、新たな検索範囲が検索条件で指定された検索範囲を包含するより広い範囲となるように補正する。
【００４５】
このように補正された検索条件は、前記境界条件補正手段５から前記キャッシュ手段６に転送される（Ｓ０２）。なお、前記粒度Ｔの値は予め前記キャッシュサーバ２のプログラムに設定されていればよく、仕様に応じて適宜変更可能である。
【００４６】
前記キャッシュ手段６は、Ｓ０２で転送された補正後の検索条件とその検索結果が前記ログ４に記録されているか否かを確認する。前述の具体例では、補正後の検索条件である「０９：０５：００〜０９：３０：００」と該検索条件に対応する検索結果が前記ログ４に記録（キャッシュ）されているかを確認する。キャッシュされていない場合（キャッシュミス時）にはＳ０３〜Ｓ０７の処理を行い、キャッシュされている場合（キャッシュヒット時）にはＳ０８〜Ｓ１０の処理を行う。
【００４７】
＜キャッシュミス時の処理＞
Ｓ０３．Ｓ０４：前記キャッシュ手段６は、Ｓ０２で転送された補正後の検索条件を、前記検索サーバ１の検索条件受付手段８を介して前記検索実行手段１０へ送信する（Ｓ０３）。
【００４８】
このとき前記検索実行手段１０は、受信した補正後の検索条件をもって、検索対象データが格納されている前記要素データベース９を検索して、該検索条件に合致する検索結果を取得する。ここで取得した検索結果を前記検索結果出力手段１１を介して、図３中の矢印Ｐに示すように前記キャッシュサーバ２のキャッシュ手段６へ返信する（Ｓ０４）。
【００４９】
Ｓ０５〜Ｓ０７：前記キャッシュ手段６は、Ｓ０４で受信した検索結果と補正後の検索条件とを対応付けて、図３（ｂ）に示すように前記ログ４に記録（キャッシュ）する（Ｓ０５）とともに、該検索結果を図３中の矢印Ｑに示すように前記検索結果フィルタ手段７へ転送する（Ｓ０６）。
【００５０】
このとき前記検索結果フィルタ手段７は、Ｓ０６で前記キャッシュ手段６から転送された検索結果にフィルタリング処理を施し、前記ユーザ端末３へ返信するための最終的な検索結果を生成する。
【００５１】
図３（ｃ）は、フィルタリング処理のイメージを示している。ここでＤ１は補正後の検索条件に合致する検索結果のデータを示し、Ｄ２はフィルタリング処理後の検索結果のデータを示している。また「●」Ｗ１はユーザ指定の検索範囲に合致する検索結果のデータを示し、「○」Ｗ２は拡張部分に合致する検索結果のデータを示している。
【００５２】
この拡張部分に合致する検索結果のデータＷ２は、ユーザ指定の検索範囲外であるため、該データＷ２を前記検索結果フィルタ手段７にて削除（フィルタリング）する。
【００５３】
前述の具体例によれば、Ｄ１は拡張後の検索範囲「０９：０５：００〜０９：３０：００」に合致する検索結果のデータを示し、Ｄ２はユーザ指定の検索範囲「０９：０８：００〜０９：２７：００」に合致する検索結果のデータを示す。この検索範囲の差分、即ち「０９：０５：００〜０９：０７：５９」および「０９：２７：０１〜０９：３０：００」の範囲のデータＷ２が削除され、フィルタリング処理後の検索結果Ｄ２が生成される。このように生成された検索結果Ｄ２が、最終的な検索結果として前記ユーザ端末３へ返信される（Ｓ０７）。
【００５４】
＜キャッシュヒット時の処理＞
Ｓ０８．Ｓ０９：前記キャッシュ手段６は、Ｓ０２で転送された補正後の検索条件に対応する検索結果を前記ログ４から取得し（Ｓ０８）、該取得した検索結果を前記検索結果フィルタ手段７へ転送する（Ｓ０９）。
【００５５】
このとき前記検索結果フィルタ手段７は、転送された検索結果に対し、前述のＳ０７と同様のフィルタリング処理を施し、最終的な検索結果Ｄ２を生成して前記ユーザ端末３へ返信する（Ｓ１０）。
【００５６】
このように前記キャッシュサーバ２のログ４には、検索条件で指定された検索範囲を拡張して一定の広さを持った補正後の検索条件およびその検索結果が記録（キャッシュ）されるため、次回以降の前記ユーザ端末３からの検索要求に対するキャッシュのヒット率が向上する。
【００５７】
例えば、前述のように粒度Ｔを「５分」とした場合、キャッシュされる検索範囲は少なくとも５分（３００秒）の間隔を有するため、１秒単位の検索範囲でキャッシュを作成した場合と比較して３００倍のヒット率を得ることができる。これにより、前記検索サーバ１における検索処理の負荷が軽減されるとともに、ユーザからの検索要求に対する応答時間を短縮することができる。この手法は、秒単位のような精密な単位での検索条件に対する検索処理量がある程度多い場合などに特に有効となる。
【００５８】
なお、ここではフィルタリング処理による最終的な検索結果Ｄ２の生成を前記検索結果フィルタ手段７で行う例を示したが、検索結果を前記キャッシュサーバ２から受信した前記ユーザ端末３にて検索範囲外のデータのフィルタリング処理を行うようにしてもよい。
【００５９】
もっとも、上述の手法において、１分の検索範囲に該当するデータが１つ程度であるデータ群に対して１時間の検索範囲の検索を行う場合には、前述のように粒度Ｔを５分として検索範囲を拡張したときに検索結果に混入する不要なデータは十分に少ないと考えてよい。
【００６０】
また、ここでは検索対象データが時刻情報を含み、該時刻情報で検索範囲を指定する例を示したが、本発明はこれに限定されることなく、あらゆる数値データや文字列データをもって検索範囲を指定する場合にも適用可能である。この場合に前記粒度Ｔの値は、数値や文字列など検索範囲を指定するデータの属性に応じて適宜変更される。
【００６１】
さらに本発明は、検索対象データが保存された要素データベース、該データベースを検索する検索手段（検索エンジン）、およびメモリ（ＲＡＭ）やハードディスクドライブ装置を含む任意の記録手段を備えたスタンドアロンのコンピュータにも適用することができる。
【００６２】
この場合には、上述と同様の手法で補正した検索範囲およびその検索結果を前記メモリにキャッシュさせることにより、メモリ上のキャッシュに対するヒット率が向上し、前記要素データベースへのアクセス頻度が低減して検索処理時間を短縮することができる。
【符号の説明】
【００６３】
１…検索サーバ（検索手段）
２…キャッシュサーバ
３…ユーザ端末
４…ログ（記録手段）
５…境界条件補正手段
６…キャッシュ手段
７…検索結果フィルタ手段
８…検索条件受付手段
９…要素データベース
１０…検索実行手段
１１…検索結果出力手段
【図１】
2011022674.tif 000003
【図２】
2011022674.tif 000004
【図３】
2011022674.tif 000005