(57)【要約】【課題】データベースとの不整合を生じることなく検索の応答時間を短縮する。【解決手段】応答データを構成する個別のドキュメントをフラグメントキャッシュ保存部１１１に保存しておき、ドキュメント取得部１０６は、取得するドキュメントがフラグメントキャッシュ保存部１１１に存在すればフラグメントキャッシュ保存部１１１からドキュメントを取得し、存在しなければ、ＲＤＢＭＳ２からドキュメントを取得する。これにより、ドキュメントをＲＤＢＭＳ２から取得する回数を最小限にすることが可能となり、検索の応答時間を短縮することができる。【選択図】図１
2011253299.tif 000002
【特許請求の範囲】
【請求項１】
ドキュメントを格納したデータベースから検索条件に該当する前記ドキュメントを検索する検索装置であって、
検索クエリを受信する受信手段と、
前記検索クエリを用いて前記データベースを検索し、当該検索クエリの検索条件に該当するドキュメントに関して、前記ドキュメントの識別子及び前記ドキュメントの格納場所を示す格納場所情報を有する検索結果を取得する検索手段と、
以前取得したドキュメント、当該ドキュメントの識別子を格納する第１キャッシュ保存手段と、
前記検索結果のドキュメントの識別子に対応するドキュメントが前記第１キャッシュ保存手段に存在するか否か判定し、前記ドキュメントが前記第１キャッシュ保存手段に存在する場合は、前記第１キュッシュ保存手段から前記ドキュメントを取得し、存在しない場合は、前記検索結果の格納場所情報に基づいて前記データベースから前記ドキュメントを取得する取得手段と、
前記データベースから取得した前記ドキュメントを当該ドキュメントの識別子とともに前記第１キャッシュ保存手段に格納する格納手段と、
前記取得手段が取得した１つ以上の前記ドキュメントを結合して応答データを生成する生成手段と、
前記応答データを返却する返却手段と、
を有することを特徴とする検索装置。
【請求項２】
前記検索結果は、前記ドキュメントのバージョンを有し、
前記第１キャッシュ保存手段は、前記ドキュメントのバージョンを格納するものであって、
前記取得手段は、前記検索結果中のバージョンが前記第１キャッシュ保存手段中のバージョンと同じかそれよりも古い場合は、前記第１キュッシュ保存手段から前記ドキュメントを取得し、前記検索結果中のバージョンが前記第１キャッシュ保存手段中のバージョンより新しい場合は、前記検索結果の格納場所情報に基づいて前記データベースから前記ドキュメントを取得し、
前記格納手段は、前記データベースから取得した前記ドキュメントのバージョンをさらに前記第１キャッシュ保存手段に格納することを特徴とする請求項１記載の検索装置。
【請求項３】
前記検索クエリに対応させて有効期限を保持する有効期限管理テーブルと、
前記検索クエリに対応させて以前返却した応答データを格納する第２キャッシュ保存手段と、
前記検索クエリに対応する前記有効期限を取得し、有効期限が取得でき、当該有効期限が期限内の場合は、前記第２キャッシュ保存手段から応答データを取得すると判定する判定手段と、を有し、
前記返却手段は、前記判定手段が前記第２キャッシュ保存手段から応答データを取得すると判定した場合は、前記第２キャッシュ保存手段から前記検索クエリに対応する前記応答データを取得して返却し、前記生成手段が生成した応答データを返却する場合は、当該応答データを前記検索クエリに対応させて前記第２キャッシュ保存手段に格納することを特徴とする請求項１又は２記載の検索装置。
【請求項４】
検索装置がドキュメントを格納したデータベースから検索条件に該当する前記ドキュメントを検索する検索方法であって、
検索クエリを受信するステップと、
前記検索クエリを用いて前記データベースを検索し、当該検索クエリの検索条件に該当するドキュメントに関して、前記ドキュメントの識別子及び前記ドキュメントの格納場所を示す格納場所情報を有する検索結果を取得するステップと、
前記検索結果のドキュメントの識別子に対応するドキュメントが、以前取得したドキュメント、当該ドキュメントの識別子を格納する前記第１キャッシュ保存手段に存在するか否か判定し、前記ドキュメントが前記第１キャッシュ保存手段に存在する場合は、前記第１キュッシュ保存手段から前記ドキュメントを取得し、存在しない場合は、前記検索結果の格納場所情報に基づいて前記データベースから前記ドキュメントを取得するステップと、
前記データベースから取得した前記ドキュメントを当該ドキュメントの識別子とともに前記第１キャッシュ保存手段に格納するステップと、
前記取得手段が取得した１つ以上の前記ドキュメントを結合して応答データを生成するステップと、
前記応答データを返却するステップと、
を有することを特徴とする検索方法。
【請求項５】
前記検索結果は、前記ドキュメントのバージョンを有し、
前記第１キャッシュ保存手段は、前記ドキュメントのバージョンを格納するものであって、
前記取得するステップは、前記検索結果中のバージョンが前記第１キャッシュ保存手段中のバージョンと同じかそれよりも古い場合は、前記第１キュッシュ保存手段から前記ドキュメントを取得し、前記検索結果中のバージョンが前記第１キャッシュ保存手段中のバージョンより新しい場合は、前記検索結果の格納場所情報に基づいて前記データベースから前記ドキュメントを取得し、
前記格納するステップは、前記データベースから取得した前記ドキュメントのバージョンをさらに前記第１キャッシュ保存手段に格納することを特徴とする請求項４記載の検索方法。
【請求項６】
前記検索クエリに対応させて有効期限を保持する有効期限管理テーブルから前記検索クエリに対応する前記有効期限を取得し、有効期限が取得でき、当該有効期限が期限内の場合は、前記検索クエリに対応させて以前返却した応答データを格納する第２キャッシュ保存手段から応答データを取得すると判定するステップを有し、
前記返却するステップは、前記判定するステップにおいて、前記第２キャッシュ保存手段から応答データを取得すると判定した場合は、前記第２キャッシュ保存手段から前記検索クエリに対応する前記応答データを取得して返却し、前記生成するステップにおいて生成した応答データを返却する場合は、当該応答データを前記検索クエリに対応させて前記第２キャッシュ保存手段に格納することを特徴とする請求項４又は５記載の検索方法。
【請求項７】
請求項４乃至６のいずれかに記載の検索方法をコンピュータに実行させるための検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メタデータを検索する技術に関する。
【背景技術】
【０００２】
従来、クライアントからの検索クエリに該当するメタデータをＲｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ（ＲＤＢＭＳ）から検索して検索結果を返却するアプリケーションサーバにおいて、初回問い合わせの検索クエリと検索結果をキャッシュとして保存しておき、２回目以降の同一の検索クエリの問い合わせがあった場合にキャッシュから検索結果を返却することで、応答時間を短縮していた（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１７５８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アプリケーションサーバでは、メタデータがラージオブジェクト型で格納されたｘｍｌ等の構造化文書である場合、ＲＤＢＭＳ上の検索時間やＲＤＢＭＳからのラージオブジェクトの取得時間がボトルネックとなる。ラージオブジェクトとは、ＲＤＢＭＳに格納するデータの型であり、データページを超えたサイズのデータを格納できるという特徴がある。
【０００５】
従来技術のように、初回検索時に返却データをキャッシュしておき、次回以降の問い合わせ時はキャッシュに保存されている返却データを用いることで、応答時間を短縮し、リソースの消費量を低減することができる。しかしながら、検索クエリと返却データを１対１で管理している従来のキャッシュでは、返却データがＲＤＢＭＳ上に格納されたラージオブジェクト型データの集合である場合、ＲＤＢＭＳ上で、返却データを構成する１つのラージオブジェクト型データが更新されるとキャッシュされた返却データとＲＤＢＭＳに不整合が生じるという問題がある。
【０００６】
本発明は、上記に鑑みてなされたものであり、返却データがラージオブジェクト型データの集合である場合に、データベースとの不整合を生じることなく検索の応答時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
第１の本発明に係る検索装置は、ドキュメントを格納したデータベースから検索条件に該当する前記ドキュメントを検索する検索装置であって、検索クエリを受信する受信手段と、前記検索クエリを用いて前記データベースを検索し、当該検索クエリの検索条件に該当するドキュメントに関して、前記ドキュメントの識別子及び前記ドキュメントの格納場所を示す格納場所情報を有する検索結果を取得する検索手段と、以前取得したドキュメント、当該ドキュメントの識別子を格納する第１キャッシュ保存手段と、前記検索結果のドキュメントの識別子に対応するドキュメントが前記第１キャッシュ保存手段に存在するか否か判定し、前記ドキュメントが前記第１キャッシュ保存手段に存在する場合は、前記第１キュッシュ保存手段から前記ドキュメントを取得し、存在しない場合は、前記検索結果の格納場所情報に基づいて前記データベースから前記ドキュメントを取得する取得手段と、前記データベースから取得した前記ドキュメントを当該ドキュメントの識別子とともに前記第１キャッシュ保存手段に格納する格納手段と、前記取得手段が取得した１つ以上の前記ドキュメントを結合して応答データを生成する生成手段と、前記応答データを返却する返却手段と、を有することを特徴とする。
【０００８】
第２の本発明に係る検索方法は、検索装置がドキュメントを格納したデータベースから検索条件に該当する前記ドキュメントを検索する検索方法であって、検索クエリを受信するステップと、前記検索クエリを用いて前記データベースを検索し、当該検索クエリの検索条件に該当するドキュメントに関して、前記ドキュメントの識別子及び前記ドキュメントの格納場所を示す格納場所情報を有する検索結果を取得するステップと、前記検索結果のドキュメントの識別子に対応するドキュメントが、以前取得したドキュメント、当該ドキュメントの識別子を格納する前記第１キャッシュ保存手段に存在するか否か判定し、前記ドキュメントが前記第１キャッシュ保存手段に存在する場合は、前記第１キュッシュ保存手段から前記ドキュメントを取得し、存在しない場合は、前記検索結果の格納場所情報に基づいて前記データベースから前記ドキュメントを取得するステップと、前記データベースから取得した前記ドキュメントを当該ドキュメントの識別子とともに前記第１キャッシュ保存手段に格納するステップと、前記取得手段が取得した１つ以上の前記ドキュメントを結合して応答データを生成するステップと、前記応答データを返却するステップと、を有することを特徴とする。
【０００９】
第３の本発明に係る検索プログラムは、上記検索方法をコンピュータに実行させるための検索プログラムである。
【発明の効果】
【００１０】
本発明によれば、返却データがラージオブジェクト型データの集合である場合に、データベースとの不整合を生じることなく検索の応答時間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態における検索装置の構成を示す機能ブロック図である。
【図２】レンポンスキャッシュとフラグメントキャッシュを説明する概略図である。
【図３】本実施の形態における検索装置の処理の流れを示すフローチャートである。
【図４】ドキュメントを取得する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を用いて説明する。
【００１３】
図１は、本実施の形態における検索装置１の構成を示す機能ブロック図である。同図に示す検索装置１は、端末３から検索クエリを受信し、ＲＤＢＭＳ２から放送番組やビデオ・オン・デマンドコンテンツの番組メタデータを検索して端末３へ返却する装置である。検索クエリとは、端末３から検索装置１への情報検索要求であり、例えば、タイトル、ジャンル、日時等の検索条件を論理演算子や修飾子で結合したものである。端末３は、検索装置１へ検索クエリを送信し、検索クエリに対する検索結果を応答データとして受信するものであり、例えば、Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｔｅｌｅｖｉｓｉｏｎ（ＩＰＴＶ）サービスにおける受信端末などがある。
【００１４】
まず、ＲＤＢＭＳ２の構成について説明する。ＲＤＢＭＳ２は、複数のアトリビュートテーブル２０１、ドキュメントテーブル２０２、一次検索結果テーブル２０３、およびキャッシュ管理テーブル２０４で構成される。アトリビュートテーブル２０１は、番組メタデータが記述されたドキュメントを属性に展開したものであり、コンテンツＩＤ（ｃｒｉｄ）、タイトル、概要、出演者等の番組に関する情報（番組メタデータ）で構成されている。ドキュメントとはＸＭＬ等で記述された構造化文書のことであり、属性とは名前と値のペアで記述される文書の構成要素のことである。ドキュメントテーブル２０２は、フラグメントＩＤ（ｆｉｄ）、フラグメントバージョン（ｆｖｅｒ）、コンテンツＩＤ（ｃｒｉｄ）、および番組メタデータを返却単位に分割したドキュメント（フラグメント）をラージオブジェクト型としたものを格納する。一次検索結果テーブル２０３は、検索クエリから生成したｈａｓｈ値と、検索条件に該当する番組メタデータを持つコンテンツＩＤのリスト（ｃｒｉｄｌｉｓｔ）を格納する。キャッシュ管理テーブル２０４は、ｈａｓｈ値と、一次検索結果テーブル２０３に格納した一次検索結果および後述するレスポンスキャッシュの有効期限を格納する。
【００１５】
続いて、検索装置１の構成について説明する。図１に示すように、検索装置１は、クエリ受信部１０１、キャッシュ有効期限判定部１０２、構文解析部１０３、ＳＱＬ生成部１０４、検索実行部１０５、ドキュメント取得部１０６、応答データ生成部１０７、応答データ返却部１０８、レスポンスキャッシュ保存部１１０、およびフラグメントキャッシュ保存部１１１を備える。検索装置１が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは検索装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００１６】
クエリ受信部１０１は、端末３から検索クエリを受信する。
【００１７】
キャッシュ有効期限判定部１０２は、受信した検索クエリからｈａｓｈ値を計算し、キャッシュ管理テーブル２０４からそのｈａｓｈ値に対応する有効期限、つまり検索クエリに対応する有効期限を取得して、一次検索結果とレスポンスキャッシュの有効期限判定を行う。受信した検索クエリと同じ検索クエリにより検索したことがある場合は、有効期限を取得でき、受信した検索クエリと同じ検索クエリにより検索したことがない場合は、有効期限を取得できない。計算したｈａｓｈ値は、有効期限を付してキュッシュ管理テーブル２０４に格納される。
【００１８】
構文解析部１０３、ＳＱＬ生成部１０４、検索実行部１０５は、ｈａｓｈ値に対応する有効期限が存在しない場合、あるいは、ｈａｓｈ値が有効期限切れの場合に、検索クエリからＳＱＬを生成し、ＲＤＢＭＳ２に対して検索を実行する。具体的には、構文解析部１０３が検索クエリから構文木を作成し、ＳＱＬ生成部１０４がその構文木からＳＱＬを生成し、検索実行部１０５が生成したＳＱＬによりＲＤＢＭＳ２に対して検索を実行する。
【００１９】
ドキュメント取得部１０６は、ＲＤＢＭＳ２から得られる検索結果であるＲｅｓｕｌｔＳｅｔオブジェクト２０５からｆｉｄ、ｆｖｅｒを取得し、ｆｉｄに該当するドキュメント（フラグメント）をフラグメントキャッシュ保存部１１１、あるいはＲＤＢＭＳ２から取得する。ＲｅｓｕｌｔＳｅｔオブジェクト２０５は、ｆｉｄ、ｆｖｅｒ、および実体データの格納場所を示すｏｉｄの情報を含む。ＲｅｓｕｌｔＳｅｔオブジェクト２０５から取得したｆｉｄに一致するｆｉｄのフラグメントがフラグメントキャッシュ保存部１１１に存在し、ＲｅｓｕｌｔＳｅｔオブジェクト２０５から取得したｆｖｅｒがフラグメントキャッシュ保存部１１１のｆｖｅｒ以下の値であれば、ｆｉｄに該当するフラグメントをフラグメントキャッシュ保存部１１１から取得する。一致するｆｉｄのフラグメントがフラグメントキャッシュ保存部１１１に存在しない場合、あるいは、ＲｅｓｕｌｔＳｅｔオブジェクト２０５から取得したｆｖｅｒがフラグメントキャッシュ保存部１１１のｆｖｅｒより大きい場合は、ＲｅｓｕｌｔＳｅｔオブジェクト２０５のｏｉｄに従って、ＲＤＢＭＳ２から実体データを取得する。取得した実体データは、フラグメントキャッシュ保存部１１１に保存する。
【００２０】
応答データ生成部１０７は、ドキュメント取得部１０６が取得したドキュメントをデリミタで区切り結合したものを応答データとして生成する。生成した応答データは、ｈａｓｈ値とともにレスポンスキャッシュ保存部１１０に保存する。
【００２１】
応答データ返却部１０８は、応答データを端末３へ返却する。検索クエリから生成したｈａｓｈ値が有効期限内であって、ｈａｓｈ値に対応する応答データがレスポンスキャッシュ保存部１１０に存在する場合は、応答データ返却部１０８がレスポンスキャッシュ保存部１１０からｈａｓｈ値に対応するレスポンスキャッシュ（応答データ）を読み出して端末３へ返却する。ｈａｓｈ値が有効期限切れ、あるいはｈａｓｈ値に対応する応答データがレスポンスキャッシュ保存部１１０に存在しない場合は、応答データ生成部１０７が生成した応答データを端末３へ返却する。
【００２２】
レスポンスキャッシュ保存部１１０は、検索クエリから計算したｈａｓｈ値とその検索クエリにより得られた応答データとを関連付けてレスポンスキャッシュとして保存する。
【００２３】
フラグメントキャッシュ保存部１１１は、ｆｉｄ、ｆｖｅｒとともにｆｉｄに該当するドキュメント（フラグメント）をフラグメントキャッシュとして保存する。
【００２４】
図２に、レンポンスキャッシュとフラグメントキャッシュを説明する概略図を示す。同図に示す応答データは、番組Ａ，Ｂに関する情報を検索して得られたものである。番組単位に単数もしくは複数のフラグメントが存在することができる。図２において、番組Ａの番組メタデータはフラグメントａ１〜ａ３、番組Ｂの番組メタデータはフラグメントｂ１〜ｂ３である。フラグメントａ１〜ｂ３は、ドキュメントテーブル２０２において、ｆｉｄ、ｆｖｅｒに関連付けられて格納されている。応答データは、番組Ａ，Ｂに関する情報を検索して得られた、番組メタデータの返却単位であるフラグメントａ１〜ｂ３を結合したものである。
【００２５】
レスポンスキャッシュ保存部１１０は、検索要求単位で応答データをキャッシュする。具体的には、レスポンスキャッシュ保存部１１０は、番組Ａ，Ｂに関する情報を検索するための検索クエリから計算したｈａｓｈ値とフラグメントａ１〜ｂ３を結合した応答データとを関連付けて保持する。
【００２６】
フラグメントキャッシュ保存部１１１は、フラグメント単位でフラグメントをキャッシュする。具体的には、フラグメントキャッシュ保存部１１１は、ドキュメント取得部１０６がＲＤＢＭＳ２から取得した各フラグメントａ１〜ｂ３とｆｉｄ、ｆｖｅｒとを関連付けて保持する。ｆｉｄは、フラグメントａ１〜ｂ３それぞれに一意に割り付けられた識別子である。ｆｖｅｒは、フラグメントのバージョンを表す値であり、例えば、番組Ａの番組メタデータであるフラグメントａ１が更新された場合、ｆｖｅｒが１から２へ更新される。ｆｖｅｒとして単純に更新時刻を用いてもよい。
【００２７】
次に、検索装置１の処理の流れについて説明する。
【００２８】
図３は、検索装置１の処理の流れを示すフローチャートである。
【００２９】
クエリ受信部１０１は、端末３から検索クエリを受信すると、検索クエリからｈａｓｈ値を生成する（ステップＳ１０１）。
【００３０】
そして、キャッシュ有効期限判定部１０２は、そのｈａｓｈ値に対応する有効期限をＲＤＢＭＳ２のキャッシュ管理テーブル２０４より取得し（ステップＳ１０２）、ｈａｓｈ値に対応する有効期限の有無を判定する（ステップＳ１０３）。
【００３１】
ｈａｓｈ値に対応する有効期限が取得できた場合、キャッシュ有効期限判定部１０２は、その有効期限が期限内か否かを判定する（ステップＳ１０４）。期限切れの場合は、一次検索結果テーブル２０３、キャッシュ管理テーブル２０４から該当レコードを削除する（ステップＳ１０５）。
【００３２】
ステップＳ１０３においてｈａｓｈ値に対応する有効期限が無いと判定された場合、あるいはステップＳ１０４において取得した有効期限が期限切れと判定された場合は、受信した検索クエリを用いて、構文解析部１０３、ＳＱＬ生成部１０４、検索実行部１０５によりＲＤＢＭＳ２に対して一次検索を実施する（ステップＳ１０６）。一次検索とは、検索条件に該当するコンテンツＩＤをアトリビュートテーブル２０１から検索するものである。具体的には、検索条件に従って、アトリビュートテーブル２０１の属性に該当するコンテンツＩＤを検索する。一次検索結果である、検索条件に該当するコンテンツＩＤのリスト（ｃｒｉｄｌｉｓｔ）を、検索クエリから生成したｈａｓｈ値とともに一次検索結果テーブル２０３に格納する。
【００３３】
一方、ｈａｓｈ値に対応する有効期限が期限内の場合は、ｈａｓｈ値に対応する応答データがレスポンスキャッシュ保存部１１０に存在するか否か判定する（ステップＳ１０７）。
【００３４】
レスポンスキャッシュ保存部１１０にｈａｓｈ値に対応する応答データが存在する場合は、応答データ返却部１０８は、レスポンスキャッシュ保存部１１０からその応答データを取得し（ステップＳ１０８）、端末３に返却する（ステップＳ１１３）。
【００３５】
一次検索を実施した後、あるいはｈａｓｈ値に対応する応答データが存在しない場合は、二次検索を実施する（ステップＳ１０９）。二次検索とは、一次検索結果テーブル２０３の一次検索結果とドキュメントテーブル２０２を結合し、コンテンツＩＤのリスト（ｃｒｉｄｌｉｓｔ）に該当するドキュメントをＲｅｓｕｌｔＳｅｔオブジェクト２０５として取得するものである。具体的には、一次検索で得られたコンテンツＩＤのリスト（ｃｒｉｄｌｉｓｔ）とドキュメントテーブル２０２をコンテンツＩＤ（ｃｒｉｄ）で内部結合した表を取得する。
【００３６】
二次検索後、ドキュメント取得部１０６が二次検索で得られたＲｅｓｕｌｔＳｅｔオブジェクト２０５を参照し、フラグメントキャッシュ保存部１１１あるいはＲＤＢＭＳ２からドキュメントを取得する（ステップＳ１１０）。ドキュメントを取得するステップＳ１１０の詳細は後述する。
【００３７】
そして、応答データ生成部１０７が、取得したドキュメントを結合して応答データを生成し（ステップＳ１１１）、生成した応答データをｈａｓｈ値とともにレスポンスキャッシュ保存部１１０に保存する（ステップＳ１１２）。
【００３８】
そして、応答データ返却部１０８が生成した応答データを端末３に返却する（ステップＳ１１３）。
【００３９】
続いて、ドキュメントを取得する処理の流れについて説明する。
【００４０】
図４は、ドキュメント取得部１０６がドキュメントを取得する処理の流れを示すフローチャートである。
【００４１】
まず、ドキュメント取得部１０６は、ＲｅｓｕｌｔＳｅｔオブジェクト２０５よりｆｉｄ，ｆｖｅｒを１件取得し（ステップＳ２０１）、ｆｉｄ，ｆｖｅｒが取得できたか否か判定する（ステップＳ２０２）。ｆｉｄ，ｆｖｅｒが取得できない場合は、検索条件に該当するすべてのドキュメントを取得したのでドキュメントを取得する処理を終了する。
【００４２】
そして、取得したｆｉｄに対応するフラグメントがフラグメントキャッシュ保存部１１１に存在するか否か判定する（ステップＳ２０３）。取得したｆｉｄに対応するフラグメントがフラグメントキャッシュ保存部１１１に存在する場合、取得したｆｖｅｒとフラグメントキャッシュ保存部１１１に格納されたフラグメントキャッシュのｆｖｅｒとを比較する（ステップＳ２０４）。
【００４３】
取得したｆｖｅｒがフラグメントキャッシュのｆｖｅｒ以下の場合は、フラグメントキャッシュ保存部１１１からドキュメント（フラグメント）を取得する（ステップＳ２０５）。
【００４４】
一方、取得したｆｖｅｒがフラグメントキャッシュのｆｖｅｒより大きい場合は、ＲｅｓｕｌｔＳｅｔオブジェクト２０５のｏｉｄに該当するドキュメントをＲＤＢＭＳ２から取得する（ステップＳ２０６）。取得したドキュメントは、ｆｉｄ，ｆｖｅｒとともにフラグメントキャッシュ保存部１１１に保存する（ステップＳ２０７）。
【００４５】
ドキュメントを取得した後は、ステップＳ２０１に戻り、これらの処理をＲｅｓｕｌｔＳｅｔオブジェクト２０５が保持する全てのｆｉｄについて行う。
【００４６】
以上説明したように、本実施の形態によれば、応答データを構成する個別のドキュメントをフラグメントキャッシュ保存部１１１に保存しておき、ドキュメント取得部１０６は、取得するドキュメントがフラグメントキャッシュ保存部１１１に存在すればフラグメントキャッシュ保存部１１１からドキュメントを取得し、存在しなければ、ＲＤＢＭＳ２からドキュメントを取得することにより、ドキュメントをＲＤＢＭＳ２から取得する回数を最小限にすることが可能となり、検索の応答時間を短縮することができる。
【００４７】
本実施の形態によれば、フラグメントキャッシュ保存部１１１にドキュメントのバージョンを保存しておき、ドキュメント取得部１０６は、フラグメントキャッシュ保存部１１１のドキュメントのバージョンがＲＤＢＭＳ２のドキュメントのバージョンより古い場合は、ＲＤＢＭＳ２からドキュメントを取得することにより、キャッシュされたドキュメントとＲＤＢＭＳ２のドキュメントに不整合が生じない。
【００４８】
また、レスポンスキャッシュ保存部１１０に検索要求単位で応答データをキャッシュしておくことで、同一の検索クエリを受信した場合には、より応答時間を短縮することができる。
【符号の説明】
【００４９】
１…検索装置
１０１…クエリ受信部
１０２…キャッシュ有効期限判定部
１０３…構文解析部
１０４…ＳＱＬ生成部
１０５…検索実行部
１０６…ドキュメント取得部
１０７…応答データ生成部
１０８…応答データ返却部
１１０…レスポンスキャッシュ保存部
１１１…フラグメントキャッシュ保存部
２…ＲＤＢＭＳ
２０１…アトリビュートテーブル
２０２…ドキュメントテーブル
２０３…一次検索結果テーブル
２０４…キャッシュ管理テーブル
２０５…ＲｅｓｕｌｔＳｅｔオブジェクト
３…端末
【図１】
2011253299.tif 000003
【図２】
2011253299.tif 000004
【図３】
2011253299.tif 000005
【図４】
2011253299.tif 000006