(57)【要約】【課題】検索式と完全一致しなくともキャッシュを利用可能とし、また、三単語以上の検索式についても検索可能とする。【解決手段】本発明は、条件式と転置リストからなるキャッシュを取得し、入力された検索式に包含されるキャッシュをキャッシュＤＢから検索するためのキャッシュ索引木を生成し、ユーザから検索式を受け付け、キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置をキャッシュＤＢから取得し、取得したキャッシュの最適な組み合わせを探索し、キャッシュＤＢを検索してキャッシュ組み合わせに対応するキャッシュから第１の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、転置索引記憶手段から第２の転置リストを取得し、統合して検索結果とする。【選択図】図１
2009175896.tif 000002
【特許請求の範囲】
【請求項１】
入力された検索式に基づいて、該検索式に適合する検索対象を検索するための情報検索装置であって、
条件式と転置リストからなるキャッシュを取得して前記入力された検索式に包含されるキャッシュを、キャッシュ記憶手段のキャッシュが格納されているキャッシュデータベース（ＤＢ）から検索するためのキャッシュ索引木を該キャッシュ記憶手段上に、検索処理に先立って生成するキャッシュ索引構築手段と、
ユーザから前記検索式を受け付ける検索条件獲得手段と、
前記キャッシュ索引木を参照して、前記入力された検索式に包含されるキャッシュの格納位置を、前記キャッシュ記憶手段の前記キャッシュＤＢから取得するキャッシュ検索手段と、
前記キャッシュ検索手段において取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索手段と、
前記キャッシュＤＢを検索し、前記キャッシュ組み合わせに対応するキャッシュから第１の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段から第２の転置リストを取得し、前記第１の転置リストと該第２の転置リストを統合して検索結果とする検索結果統合手段と、
前記検索結果統合手段で取得した前記検索結果を出力する出力手段と、
を有することを特徴とする情報検索装置。
【請求項２】
前記キャッシュ索引構築手段は、
前記キャッシュＤＢに格納された前記キャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎に前記キャッシュ索引木に設定する手段を含む請求項１記載の情報検索装置。
【請求項３】
前記キャッシュ索引構築手段は、
前記キャッシュＤＢに格納された前記キャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタを前記キャッシュ索引木に設定する手段を含む請求項１記載の情報検索装置。
【請求項４】
前記キャッシュ検索手段は、
検索式をキーとしたトライ木構造を有する前記キャッシュ索引木をルートノードから探索し、前記入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在している前記キャッシュＤＢの格納位置を抽出する手段を含む請求項１記載の情報検索装置。
【請求項５】
入力された検索式に基づいて、該検索式に適合する検索対象を検索するための検索装置における情報検索方法であって、
キャッシュ索引構築手段が、条件式と転置リストからなるキャッシュを取得して前記入力された検索式に包含されるキャッシュを、キャッシュ記憶手段のキャッシュが格納されているキャッシュデータベース（ＤＢ）から検索するためのキャッシュ索引木を該キャッシュ記憶手段上に生成するキャッシュ索引構築ステップを、検索処理の前に予め行っておき、
検索条件獲得手段が、ユーザから前記検索式を受け付ける検索条件獲得ステップと、
キャッシュ検索手段が、前記キャッシュ索引木を参照して、前記入力された検索式に包含されるキャッシュの格納位置を、前記キャッシュＤＢから取得するキャッシュ検索ステップと、
キャッシュ組み合わせ探索手段が、前記キャッシュ検索ステップにおいて取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索ステップと、
検索結果統合手段が、前記キャッシュＤＢを検索し、前記キャッシュ組み合わせに対応するキャッシュから第１の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段から第２の転置リストを取得し、前記第１の転置リストと該第２の転置リストを統合して検索結果とする検索結果統合ステップと、
出力手段が、前記検索結果統合ステップで取得した前記検索結果を出力する出力ステップと、
を行うことを特徴とする情報検索方法。
【請求項６】
前記キャッシュ索引構築ステップにおいて、
前記キャッシュＤＢに格納された前記キャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎に前記キャッシュ索引木に設定する請求項５記載の情報検索方法。
【請求項７】
前記キャッシュ索引構築ステップにおいて、
前記キャッシュＤＢに格納された前記キャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタを前記キャッシュ索引木に設定する請求項５記載の情報検索方法。
【請求項８】
前記キャッシュ検索ステップにおいて、
検索式をキーとしたトライ木構造を有する前記キャッシュ索引木をルートノードから探索し、前記入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在している前記キャッシュＤＢの格納位置を抽出する請求項５記載の情報検索方法。
【請求項９】
請求項１乃至４のいずれか１項に記載の情報検索装置を構成する各手段としてコンピュータを機能させることを特徴とする情報検索プログラム。
【請求項１０】
請求項９記載の情報検索プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体に係り、特に、頻繁に問い合わせられる検索式に対する検索結果をユーザに速やかに提示するため、応答性の高い場所に格納しておく検索結果キャッシュを利用する情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体に関する。
【背景技術】
【０００２】
検索結果キャッシュは、頻繁に問い合わせられる検索式に対する検索結果をユーザに速やかに提示するため、応答性の高い場所に格納する。ユーザが情報検索装置に、検索結果キャッシュに格納されている検索式を問い合わせると、情報検索装置は本来の検索処理を行うことなく、検索結果キャッシュに格納されている検索結果を提供する。
【０００３】
検索結果キャッシュ技術には、検索式がキャッシュにヒットした場合にきわめて高速に検索結果を返却することができるキャッシングアルゴリズムがある（例えば、非特許文献１参照）。
【０００４】
また、検索結果キャッシュに加え、一単語に対応する転置リストをキャッシュし、さらに二単語の転置リストのインターセクションをディスクにキャッシュする方法がある（例えば、非特許文献２参照）。
【非特許文献１】.Evangelos P. Markatos. "On Caching Search Engine Query Results" 5th International Web Caching and Content Delivery Workshop, May 2000.
【非特許文献２】Xiaohui Long, Torsten Suel "Three-Level Caching for Efficient Query Processing in Large Web Search Engines.", The Association for Computing Machinery ISBN 1-59593-046-9, pp257-266.
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記非特許文献１の技術では、検索結果キャッシュは検索式がキャッシュにヒットした場合きわめて高速に結果を返却することができるが、入力された検索式がキャッシュされている検索式と完全に一致した場合しかキャッシュを利用することができないという問題がある。
【０００６】
また、上記非特許文献２の技術では、転置リストとインターセクションをキャッシュすることで、検索結果キャッシュにヒットしなかった場合の検索性能を向上させているが、三単語以上の検索式については処理にオーバヘッドがあるという問題がある。
【０００７】
本発明は、上記の点に鑑みなされたもので、検索式と完全一致しなくともキャッシュを利用可能とし、また、三単語以上の検索式についてもオーバヘッドの問題を解決し、検索性能を向上させ、実ディスクアクセス回数を低減させることが可能な情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
図１は、本発明の原理構成図である。
【０００９】
本発明（請求項１）は、入力された検索式に基づいて、該検索式に適合する検索対象を検索するための情報検索装置であって、
条件式と転置リストからなるキャッシュを取得して入力された検索式に包含されるキャッシュを、キャッシュ記憶手段３０のキャッシュが格納されているキャッシュＤＢから検索するためのキャッシュ索引木を該キャッシュ記憶手段３０上に、検索処理に先立って生成するキャッシュ索引構築手段１１０と、
ユーザから検索式を受け付ける検索条件獲得手段１３０と、
キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置を、キャッシュＤＢから取得するキャッシュ検索手段１３０と、
キャッシュ検索手段１３０において取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索手段１４０と、
キャッシュＤＢを検索し、キャッシュ組み合わせに対応するキャッシュから第１の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段５０から第２の転置リストを取得し、第１の転置リストと該第２の転置リストを統合して検索結果とする検索結果統合手段１５０と、
検索結果統合手段１５０で取得した検索結果を出力する出力手段１６０と、を有する。
【００１０】
また、本発明（請求項２）は、キャッシュ索引構築手段１１０において、
キャッシュＤＢに格納されたキャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎にキャッシュ索引木に設定する手段を含む。
【００１１】
また、本発明（請求項３）は、キャッシュ索引構築手段１１０において、
キャッシュＤＢに格納されたキャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタをキャッシュ索引木に設定する手段を含む。
【００１２】
また、本発明（請求項４）は、キャッシュ検索手段１３０において、
検索式をキーとしたトライ木構造を有するキャッシュ索引木をルートノードから探索し、入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在しているキャッシュＤＢの格納位置を抽出する手段を含む。
【００１３】
図２は、本発明の原理を説明するための図である。
【００１４】
本発明（請求項５）は、入力された検索式に基づいて、該検索式に適合する検索対象を検索するための情報検索方法であって、
キャッシュ索引構築手段が、条件式と転置リストからなるキャッシュを取得して入力された検索式に包含されるキャッシュを、キャッシュ記憶手段のキャッシュが格納されているキャッシュＤＢから検索するためのキャッシュ索引木を該キャッシュ記憶手段上に生成するキャッシュ索引構築ステップ（ステップ１）を、検索処理の前に予め行っておき、
検索条件獲得手段が、ユーザから検索式を受け付ける検索条件獲得ステップ（ステップ２）と、
キャッシュ検索手段が、キャッシュ索引木を参照して、入力された検索式に包含されるキャッシュの格納位置を、キャッシュＤＢから取得するキャッシュ検索ステップ（ステップ３）と、
キャッシュ組み合わせ探索手段が、キャッシュ検索ステップ（ステップ３）において取得したキャッシュの最適な組み合わせを探索するキャッシュ組み合わせ探索ステップ（ステップ４）と、
検索結果統合手段が、キャッシュＤＢを検索し、キャッシュ組み合わせに対応するキャッシュから第１の転置リストを取得し、該キャッシュ組み合わせに含まれない検索条件に基づいて、検索対象に対する転置索引が格納された転置索引記憶手段から第２の転置リストを取得し、第１の転置リストと該第２の転置リストを統合して検索結果とする検索結果統合ステップ（ステップ５）と、
出力手段が、検索結果統合ステップで取得した検索結果を出力する出力ステップ（ステップ６）と、を行う。
【００１５】
また、本発明（請求項６）は、キャッシュ索引構築ステップ（ステップ１）において、
キャッシュＤＢに格納されたキャッシュに基づいて、検索式文字列、キャッシュ先頭へのポインタ、子ノードを検索するための情報をノード毎にキャッシュ索引木に設定する。
【００１６】
また、本発明（請求項７）は、キャッシュ索引構築ステップ（ステップ１）において、
キャッシュＤＢに格納されたキャッシュに基づいて、検索式文字列、キャッシュへのポインタ、子ノードを表すハッシュへのポインタをキャッシュ索引木に設定する。
【００１７】
また、本発明（請求項８）は、キャッシュ検索ステップ（ステップ３）において、
検索式をキーとしたトライ木構造を有するキャッシュ索引木をルートノードから探索し、入力された検索式に包含される検索式をキーとするノードを探索し、該ノードに対応するキャッシュが存在しているキャッシュＤＢの格納位置を抽出する。
【００１８】
本発明（請求項９）は、請求項１乃至４のいずれか１項に記載の情報検索装置を構成する各手段としてコンピュータを機能させる情報検索プログラムである。
【００１９】
本発明（請求項１０）は、請求項９記載の情報検索プログラムを格納したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００２０】
本発明は、入力された検索式に包含されるキャッシュの検索を可能にすることにより、検索式と完全一致しなくともキャッシュを利用可能とすることができる。
【００２１】
また、入力された検索式に包含されるキャッシュの中から適切なキャッシュの組み合わせを選択することにより、ディスク等の記憶媒体に対するアクセス回数を低減させることが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、図面と共に本発明の実施の形態を説明する。
【００２３】
図３は、本発明の一実施の形態における情報検索装置の構成を示す。
【００２４】
同図に示す情報検索装置１００は、キャッシュ記憶部３０、転置索引記憶部５０、キャッシュ索引構築部１１０、検索条件獲得部１２０、キャッシュ検索部１３０、キャッシュ検索組み合わせ探索部１４０、検索結果統合部１５０、検索結果出力部１６０、キャッシュ記憶部３０、転置索引記憶部５０から構成され、検索条件獲得部１２０は、検索条件が入力される入力装置１と接続され、検索結果出力部１６０は、検索結果の出力先である出力装置２と接続されている。
【００２５】
キャッシュ記憶部３０は、図４に示すように、キャッシュ索引木３２とキャッシュＤＢ３３から構成される。キャッシュ索引木３２は、図５に示すように、ルートノードをトップとする複数のノードの情報を有する木構造であり、各ノード情報として、図６に示すように、
・検索条件：検索ワード（検索式）を表す文字列；
・キャッシュ：キャッシュの先頭へのポインタ；
・状態遷移フラグ：探索に用いるフラグ；
・子ノード：子ノードの検索ワード（検索式）をキー
の各情報を管理する。キャッシュＤＢ３３は、図５に示すように、検索式とキャッシュ（転置リスト）から構成される。
【００２６】
また、図７に示すキャッシュ索引木３２は、検索式文字列、子ノードハッシュへのポインタ、キャッシュへのポインタ、子ノードを表すハッシュを管理する例である。
【００２７】
転置索引記憶部５０は、検索対象に対する一般的な転置索引が格納されている。転置索引には、検索式を入力とし、検索式を満たす検索対象のリストである転置リストを出力する。なお、転置リストのみならず、必要に応じて文書のスコア値などの情報が格納される。
【００２８】
キャッシュ索引構築部１１０は、入力された検索式に包含されるキャッシュをキャッシュが格納されているキャッシュＤＢ３３から検索するためのキャッシュ索引木３２を生成する。そのために、キャッシュＤＢ３３から条件式と転置リストを取得してキャッシュ記憶部３０上にキャッシュ索引木３２を生成する。キャッシュ索引木の例は図６に示す通りである。なお、キャッシュＤＢ３３は、図８に示すような条件式と転置リストからなるクエリログを用い、ＬＲＵなどの一般的なキャッシングアルゴリズムを用いて予め構築されているものとする。
【００２９】
検索条件獲得部１２０は、入力装置１から検索式を取得する。ここでは、検索式に含まれる検索条件を、キャッシュ索引木構築に用いるソート方法と同一の方法でソートし、キャッシュ検索部１３０に渡す。ソート方法に関しては後述する。
【００３０】
キャッシュ検索部１３０は、検索条件獲得部１２０から取得した検索式に基づいて、キャッシュ記憶部３０のキャッシュ索引木３２を検索し、取得した検索式に包含されるキャッシュの格納位置をキャッシュＤＢ３３から取得する。これにより、当該格納位置からキャッシュを取得することができる。
【００３１】
キャッシュ組み合わせ探索部１４０は、キャッシュ検索部１３０で取得したキャッシュと、入力された検索式に基づいて、最適な組み合わせのキャッシュを選択する。最適な組み合わせのキャッシュの選択方法については後述する。
【００３２】
検索結果統合部１５０は、キャッシュ組み合わせ探索部１４０で選択された最適な組み合わせのキャッシュに対応するキャッシュの転置リスト（Ａ）を取得し、さらに、当該最適な組み合わせのキャッシュに含まれない検索式により転置索引記憶部５０を検索して、転置リスト（Ｂ）を取得する。そして、転置リスト（Ａ）と転置リスト（Ｂ）を統合し、検索結果を生成する。
【００３３】
検索結果出力部１６０は、統合された検索結果を出力装置２に出力する。
【００３４】
次に、上記の構成における動作を説明する。
【００３５】
最初に、キャッシュ索引構築部１１０において、検索処理の実行前に、キャッシュ検索を行う際に用いるキャッシュ索引木３２を構築する処理について説明する。
【００３６】
図９は、本発明の一実施の形態におけるキャッシュ索引木構築処理のフローチャートである。
【００３７】
ステップ１０１）  既に構築されているキャッシュＤＢ３３から条件式と転置リストからなるキャッシュを取得し、一時的にメモリ（図示せず）に格納する。
【００３８】
ステップ１０２）  キャッシュ記憶部３０上に条件式をキーとするトライ木の構築を開始する。
【００３９】
ステップ１０３）  キャッシュ索引構築部１１０は、トライ木に基づいてルートノードをキャッシュ記憶部３０上のキャッシュ索引木３２に作成する。
【００４０】
ステップ１０４）  全ての条件式をキャッシュＤＢ３３に登録したかを判定し、登録した場合は当該処理を終了し、登録していない場合はステップ１０５に移行する。
【００４１】
ステップ１０５）  ステップ１０１で読み込まれた、メモリ（図示せず）に格納されたキャッシュからレコードを１件読み出す。
【００４２】
ステップ１０６）  読み出したキャッシュの条件式に対応するトライ木のノードをキャッシュ索引木３２に追加する。
【００４３】
ステップ１０７）  ルートノードの検索式に対応するキャッシュをキャッシュＤＢ３３に登録し、当該キャッシュのキャッシュＤＢ３３上の格納位置をキャッシュ索引木３２に記録し、ステップ１０４に戻る。
【００４４】
上記の条件式をキーとするトライ木について説明する。
【００４５】
条件式は複数の検索条件の集合からなる。
【００４６】
トライ木の構築及びトライ木を用いた検索時には、これらの検索条件を構築時・検索時で共通なソート方法によってソートし、１つのノードにつき一つの検索条件と対応付ける。対応付け及びソートの方法としては、例えば、検索条件を文字列に変換し、文字コード順にソートし、各ノードに検索条件を表す文字列を格納する手法がある。トライ木ではルートノードからあるノードに至るまでに通過するノードの持つ値を順につなげたものがキーとなるため、例えば、ルートノードから検索条件"りんご"が記録されたあるノードに至るまでに、
ルート⇒ばなな⇒みかん⇒りんご
という経路を辿る必要がある場合、このノードに対応する検索式は、
（ばなな  みかん  りんご）
となる。
【００４７】
一方、検索式（みかん  りんご  ばなな）に対応するノードを検索する時には、まず、検索式に含まれる検索条件を、トライ木構築時と同じソート方法（ここでは５０音順）でソートし、
（ばなな  みかん  りんご）
としてから、順に、
ルート⇒ばなな⇒みかん⇒りんご
と辿ることで、検索式に対応するノードにアクセスすることができる。
【００４８】
次に、検索時の処理について説明する。
【００４９】
図１０は、本発明の一実施の形態における検索時のフローチャートである。
【００５０】
ステップ２０１）  検索条件獲得部１２０は、ユーザから入力装置１を介して検索式の入力を受け付ける。
【００５１】
ステップ２０２）  キャッシュ検索部１３０は、検索式に基づいて、トライ木であるキャッシュ記憶部３０のキャッシュ索引木３２を探索し、ユーザ入力の検索式に包含されるキャッシュのキャッシュＤＢ３３上の格納位置を読み出し、当該格納位置に格納されているキャッシュを取得する。
【００５２】
ステップ２０３）  読み出したキャッシュの件数が０件か、または、１件以上であるかを判定し、０件の場合はステップ２０６に移行し、１件以上の場合はステップ２０４に移行する。
【００５３】
ステップ２０４）  キャッシュ組み合わせ探索部１４０は、終了条件を満たすまでキャッシュを選択していく貪欲法を用いて、最適なキャッシュの組み合わせを探索する。なお、当該処理の詳細については後述する。
【００５４】
ステップ２０５）  検索結果統合部１５０は、ステップ２０４で取得したキャッシュ組み合わせに対応する転置リストをキャッシュＤＢ３３から取得する。
【００５５】
ステップ２０６）  検索結果統合部１５０は、ステップ２０２で取得したユーザから入力された検索式に含まれていて、ステップ２０４で取得したキャッシュ組み合わせには含まれていない検索式をキーとして、転置索引記憶部５０の転置索引を検索し、転置リストを取得する。
【００５６】
ステップ２０７）  検索結果統合部１５０は、ステップ２０５とステップ２０６で取得した転置リストのインターセクションを計算し、検索結果を取得する。
【００５７】
ステップ２０８）  検索結果出力部１６０は、検索結果統合部１５０で取得した検索結果を表示装置当の出力装置２に出力する。
【００５８】
ステップ２０９）  また、検索結果出力部１６０は、検索式、検索結果、及び問い合わせが行われた時刻のタイムスタンプを、検索式ログを格納するデータベース等の記憶手段に追加格納する。
【００５９】
次に、上記のステップ２０２の入力された検索式に包含されるキャッシュの検索処理について詳細に説明する。
【００６０】
図１１は、本発明の一実施の形態における図１０のステップ２０２の詳細なフローチャートである。
【００６１】
ステップ２１０）  キャッシュ検索部１３０は、ユーザから入力された検索式とキャッシュ記憶部３０のキャッシュ索引木３２を読み込む。なお、キャッシュ索引木３２は、検索式をキーとしたトライ木になっている。
【００６２】
ステップ２２０）  キャッシュ索引木３２のルートノードから探索を開始する。なお、この探索は例えば、深さ優先探索等の既存の技術を用いるものとするが、これに限定されるものではない。
【００６３】
ステップ２３０）  探索が終了したら当該処理を終了し、終了していない場合はステップ２４０に移行する。
【００６４】
ステップ２４０）  キャッシュ索引木３２から、ユーザから入力された検索式に包含される検索式を有するノードを探索する。具体的には、キャッシュ索引木を用いた、入力された検索式に包含されるキャッシュの探索を行う。
【００６５】
まず、入力された検索式に含まれる検索条件をキャッシュ索引木構築時と同じソート方法でソートする。
【００６６】
ユーザ入力の検索式に含まれる検索条件を先頭から順に参照しながら、ルートノードから探索を開始する。この際、以下のルールに基づいて探索を行う。
【００６７】
（１）ルートノードの状態遷移フラグを立てる。
【００６８】
ここで、「状態遷移フラグを立てる」とは、当該ノードをメモリ上などに一時的に記録することを指し、例えば、図６記載の状態遷移フラグを、記録時には「１」、非記録時には「０」に設定する方法等がある。
【００６９】
（２）状態遷移フラグが立っている全てのノードに対して下記の判定に基づき（Ａ）または（Ｂ）の処理を行う。
【００７０】
（Ａ）現在参照している検索条件に対応する子ノードが存在する場合；
当該子ノードの状態遷移フラグを立て、次の検索条件を参照する。
【００７１】
（Ｂ）現在参照している検索条件に対応する子ノードが存在しない場合；
次の検索条件を参照する。
【００７２】
（３）全ての検索条件を参照するまで（１）を繰り返し、その時点で状態遷移フラグが立っているノードを返却し、状態遷移フラグを初期化する。
【００７３】
ステップ２５０）  ノードのキャッシュ（キャッシュＤＢの先頭へのポインタ）に対応するキャッシュがキャッシュＤＢ３０に存在するかを判定し、存在する場合はステップ２６０に移行し、存在しない場合はステップ２３０に移行する。
【００７４】
ステップ２６０）  当該キャッシュが存在するキャッシュ記憶部３０のキャッシュＤＢ３３における格納位置を取得し、当該格納位置のキャッシュを返却する。
【００７５】
次に、図１０のキャッシュ組み合わせ探索部１４０における、ステップ２０４の最適なキャッシュ組み合わせの探索処理について詳細に説明する。
【００７６】
図１２は、本発明の一実施の形態における図１０のステップ２０４の詳細なフローチャートである。
【００７７】
ステップ３０１）  ユーザから入力された検索式及び、図１０のステップ２０２で取得したキャッシュを読み込む。
【００７８】
ステップ３０２）  読み込んだキャッシュから、最適なキャッシュの組み合わせの探索を開始する。ここで最適なキャッシュの組み合わせを選択する方法としては、コスト関数を作成する方法、ＤＦ値に基づく方法、検索式の組み合わせ数に基づく方法などが考えられる。その一例として、検索式の組み合わせ数に基づく場合について説明する。
【００７９】
例えば、ステップ３０１でユーザから入力された検索式が「Ａ Ｂ Ｃ Ｄ Ｅ…（ｘ）」とすると、ステップ３０１で取得したキャッシュは、複数の検索式と転置リストの組からなるものであり、ここでの検索式は、ステップ３０１での検索式と同じく複数の検索条件からなる。例えば、検索式「Ａ Ｃ」に対応する転置リストを（ａ）、検索式「Ａ Ｄ E」に対応する転置リストを（ｂ）、検索式「Ａ Ｅ」に対応する転置リストを（ｃ）、検索式「Ｂ」に対応する転置リストを（ｄ）、検索式「Ｂ Ｄ」に対応する転置リストを（ｅ）とする。この場合、例えば、転置リスト（ａ）を選択することにより（ｘ）の検索式Ａ，Ｃが被覆される。ここで「被覆される」とは、新たに選択するキャッシュが、ユーザ入力に含まれる検索式を含むことを指す。また、転置リスト（ａ）が選択済みであるとき、（ｘ）のＢ，Ｄ，Ｅは未被覆な検索式である。ここで「未被覆な検索式」とは、それまでに選択されたキャッシュにより被覆されていない検索式を指す。
【００８０】
複数のキャッシュから最適なキャッシュの組み合わせを探索するために、終了条件を満たすまで一つずつキャッシュを選択していく貪欲法を用いる。
【００８１】
ステップ３０３）  探索が終了した場合はステップ３０６に移行し、終了していない場合は、ステップ３０４に移行する。当該終了条件は、（ｘ）が最大限被覆されたか否かを判定している。つまりどのキャッシュを選択しても、新たに被覆される検索式が存在しない場合はステップ３０６に移行する。
【００８２】
ステップ３０４）  上記（ｘ）中の未被覆な検索式を最大限被覆するキャッシュを最適なキャッシュとして選択する。
【００８３】
ステップ３０５）  ステップ３０４で選択されたキャッシュを、メモリ（図示せず）上のキャッシュ組み合わせに追加し、ステップ３０３に移行する。
【００８４】
ステップ３０６）  キャッシュの組み合わせを返却する。
【００８５】
以降、図１０のステップ２０５以降の処理を行う。
【００８６】
上記のステップ３０３〜ステップ３０５の処理は、例えば、（ｘ）として「Ａ Ｂ Ｃ Ｄ Ｅ」が入力された場合に、以下のように処理を行い、ステップ３０３により形成されるループを３回繰り返した時点で終了条件を満たし、ループを抜ける。
【００８７】
（ｘ）［ＡＢＣＤＥ］入力；
↓
（ｂ）［Ａ Ｄ Ｅ］を選択；
↓
（ｘ）［Ｂ Ｃ］入力；
↓
（ｄ）［Ｂ］を選択；
↓
（ｘ）［Ｃ］を入力；
↓
（ａ）［Ａ Ｃ］を選択：
なお、上記の実施の形態では、図３に示す情報検索装置１００について説明したが、情報検索装置の各構成要素における動作をプログラムとして構築し、情報検索装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００８８】
また、構築されたプログラムをハードディスク装置や、フレキシブルディスク・ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
【００８９】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【産業上の利用可能性】
【００９０】
本発明は、検索結果キャッシュ技術において、応答性の高い場所に格納されたキャッシュを検索する技術に適用可能である。
【図面の簡単な説明】
【００９１】
【図１】本発明の原理構成図である。
【図２】本発明の原理を説明するための図である。
【図３】本発明の一実施の形態における情報検索装置の構成図である。
【図４】本発明の一実施の形態におけるキャッシュ記憶部の構成図である。
【図５】本発明の一実施の形態におけるキャッシュ記憶部のデータ構造（構造体を用いた構築例）を示す図である。
【図６】本発明の一実施の形態におけるキャッシュ索引木のノードを表す構造体を示す図である。
【図７】本発明の一実施の形態におけるキャッシュ記憶部のデータ構造（配列とハッシュを用いた構築例）である。
【図８】本発明の一実施の形態における検索式ログのデータ構造を示す図である。
【図９】本発明の一実施の形態におけるキャッシュ索引木構築処理のフローチャートである。
【図１０】本発明の一実施の形態における検索時のフローチャートである。
【図１１】本発明の一実施の形態における図１０のステップ２０２の詳細なフローチャート（入力された検索式に包含されるキャッシュ検索）である。
【図１２】本発明の一実施の形態における図１０のステップ２０４の詳細なフローチャート（最適なキャッシュ組み合わせの探索）である。
【符号の説明】
【００９２】
１  入力装置
２  出力装置
３０  キャッシュ記憶手段、キャッシュ記憶部
３２  キャッシュ索引木
３３  キャッシュＤＢ
５０  転置索引記憶手段、転置索引記憶部
１００  情報検索装置
１１０  キャッシュ索引構築手段、キャッシュ索引構築部
１２０  検索条件獲得手段、検索条件獲得部
１３０  キャッシュ検索手段、キャッシュ検索部
１４０  キャッシュ組み合わせ手段、キャッシュ組み合わせ部
１５０  検索結果統合手段、検索結果統合部
１６０  出力手段、検索結果出力部
【図１】
2009175896.tif 000003
【図２】
2009175896.tif 000004
【図３】
2009175896.tif 000005
【図４】
2009175896.tif 000006
【図５】
2009175896.tif 000007
【図６】
2009175896.tif 000008
【図７】
2009175896.tif 000009
【図８】
2009175896.tif 000010
【図９】
2009175896.tif 000011
【図１０】
2009175896.tif 000012
【図１１】
2009175896.tif 000013
【図１２】
2009175896.tif 000014