(57)【要約】【課題】使用環境が変わった場合であっても、高速な検索を実行すること。【解決手段】本発明のキャッシュ付検索装置１０は、入出力端末１２から検索要求が入力された場合においてこの装置１０が使用されている使用環境を監視し、監視されている使用環境に変化があったか否かを判定する環境監視部２４と、検索キャッシュ３２の内容のログを、環境監視部２４によって監視された使用環境と関連付けて保存するキャッシュログデータベース３０と、環境監視部２４によって、使用環境に変化があったと判定された場合には、変化後の使用環境に最も関連性の高いログをキャッシュログデータベース３０から取得し、取得したログに基づいて、検索キャッシュ３２内の展開データを更新するキャッシュ操作部２８とを備える。【選択図】      図１
2006106867.tif 000002
【特許請求の範囲】
【請求項１】
予め記憶手段に格納しておいたデータのうち、一部をメモリ上のキャッシュに展開しておき、外部から検索要求が入力された場合には、前記キャッシュを利用することにより、高速に検索を行うキャッシュ付検索装置において、
前記検索要求が入力された場合においてこの装置自体が使用されている使用環境を監視する環境監視手段と、
前記キャッシュの内容のログを、前記環境監視手段によって監視された使用環境と関連付けて保存するログ保存手段と、
前記環境監視手段によって監視されている使用環境に変化があったか否かを判定する環境変化判定手段と、
前記環境変化判定手段によって、前記使用環境に変化があったと判定された場合には、変化後の使用環境に最も関連性の高いログを前記ログ保存手段から取得するログ取得手段と、
前記ログ取得手段によって取得されたログに基づいて、前記キャッシュ内の展開データを更新するキャッシュ更新手段と
を備えたキャッシュ付検索装置。
【請求項２】
請求項１に記載のキャッシュ付検索装置において、
前記使用環境とは、前記検索要求を行うユーザ、および時刻情報を含むキャッシュ付検索装置。
【請求項３】
請求項２に記載のキャッシュ付検索装置において、
前記環境変化判定手段は、前記ユーザが別のユーザに変わった場合、または予め定めた時刻になった場合には、前記使用環境に変化があったと判定するようにしたキャッシュ付検索装置。
【請求項４】
請求項１に記載のキャッシュ付検索装置において、
前記環境変化判定手段は、前記ログ保存手段に保存されている過去のログの内容を時系列的に解析し、この解析結果から、現在の使用環境に変化があったか否かを判定するようにしたキャッシュ付検索装置。
【請求項５】
予め記憶手段に格納しておいたデータのうち、一部をメモリ上のキャッシュに展開しておき、外部から検索要求が入力された場合には、前記キャッシュを利用することにより、高速に検索を行うキャッシュ付検索装置に適用されるキャッシュ最適化方法であって、
前記検索要求が入力された場合において前記キャッシュ付検索装置が使用されている使用環境を監視することと、
前記キャッシュの内容のログを、前記監視された使用環境と関連付けてログ保存データベースに保存することと、
前記監視されている使用環境に変化があったか否かを判定することと、
前記使用環境に変化があったと判定された場合には、変化後の使用環境に最も関連性の高いログを前記ログ保存データベースから取得することと、
前記取得されたログに基づいて、前記キャッシュ内の展開データを更新することと
を備えたキャッシュ最適化方法。
【請求項６】
請求項５に記載のキャッシュ最適化方法において、
前記使用環境とは、前記検索要求を行うユーザ、および時刻情報を含むキャッシュ最適化方法。
【請求項７】
請求項６に記載のキャッシュ最適化方法において、
前記ユーザが別のユーザに変わった場合、または予め定めた時刻になった場合には、前記使用環境に変化があったと判定するようにしたキャッシュ最適化方法。
【請求項８】
請求項５に記載のキャッシュ最適化方法において、
前記ログ保存データベースに保存されている過去のログの内容を時系列的に解析し、この解析結果から、現在の使用環境に変化があったか否かを判定するようにしたキャッシュ最適化方法。
【請求項９】
予め記憶手段に格納しておいたデータのうち、一部をメモリ上のキャッシュに展開しておき、外部から検索要求が入力された場合には、前記キャッシュを利用することにより、高速に検索を行うキャッシュ付検索装置に適用されるプログラムであって、
前記検索要求が入力された場合において前記キャッシュ付検索装置が使用されている使用環境を監視する機能、
前記キャッシュの内容のログを、前記監視された使用環境と関連付けてログ保存データベースに保存する機能、
前記監視している使用環境に変化があったか否かを判定する機能、
前記使用環境に変化があったと判定した場合には、変化後の使用環境に最も関連性の高いログを前記ログ保存データベースから取得する機能、
前記取得したログに基づいて、前記キャッシュ内の展開データを更新する機能
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュを備えることによって検索速度の向上を図ったキャッシュ付検索装置と、それに適用されるキャッシュ最適化方法、及びその機能をコンピュータに実現させるためのプログラムに関する。
【背景技術】
【０００２】
通常、検索装置は、検索対象となるデータをデータベースに保存しておき、ユーザからの検索要求に基づいて、１つまたは複数のデータベースから該当のデータが検索される。しかしながら、検索対象のデータベースは、大量のデータを保存するために、ディスクなどの２次記憶装置が利用されている。このような検索装置は、通常のデータベース管理システムと同様に、検索速度の向上を図るために、頻繁に検索されているデータが、２次記憶装置からよりも高速に読み出すことが可能なメモリ上のデータキャッシュに保存されている。このようなキャッシュ付検索装置の公知例としては、例えば、特許文献１がある。
【特許文献１】特願平１０−２４０７６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、このような従来のキャッシュ付検索装置では、以下のような問題がある。
【０００４】
すなわち、従来のキャッシュ付検索装置においては、直近に検索された問い合わせのインデックス情報がキャッシュに保存されているため、検索装置が起動された直後や、ユーザが検索を始めた直後には、それまでに検索されていない問い合わせを行うため、キャッシュが効果を発揮できないという問題がある。
【０００５】
本発明はこのような事情に鑑みてなされたものであり、例えばユーザや、時刻情報のような使用環境と、キャッシュの内容のログとを関連付けて記録しておき、使用環境が変化した場合に、これから検索されると予想されるデータをキャッシュに予め格納しておくことによって、使用環境が変わった場合であっても、高速な検索を実行することが可能なキャッシュ付検索装置、それに適用されるキャッシュ最適化方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【０００７】
すなわち、本発明に係るキャッシュ付検索装置では、予め記憶手段に格納しておいたデータのうち、一部をメモリ上のキャッシュに展開しておき、外部から検索要求が入力された場合には、キャッシュを利用することにより、高速に検索を行うものであって、以下に示すような機能を持つキャッシュ最適化方法が適用されている。
【０００８】
このキャッシュ最適化方法は、検索要求が入力された場合においてこの装置自体が使用されている使用環境を監視する。ここで、使用環境とは、例えば、検索要求を行うユーザの組み合わせ、および時刻情報を含む。そして、キャッシュの内容のログを、監視した使用環境と関連付けてログ保存データベースに保存する。更に、監視している使用環境に変化があったか否かを判定し、使用環境に変化があったと判定した場合には、変化後の使用環境に最も関連性の高いログをログ保存データベースから取得し、取得したログに基づいて、キャッシュ内の展開データを更新する。ここで、使用環境の変化を判定する場合は、例えば、検索しているユーザの組み合わせが変わった場合、または予め定めた時刻になった場合に、使用環境に変化があったと判定する。あるいは、ログ保存データベースに保存されている過去のログの内容を時系列的に解析し、この解析結果から、現在の使用環境に変化があったか否かを判定する。
【０００９】
このようなキャッシュ付検索装置は、このようなキャッシュ最適化方法を実現するプログラムによって構成されうる。
【発明の効果】
【００１０】
本発明によれば、例えば、起動直後、新たなユーザがログインした場合、あるいは予め定めた時刻になった場合など使用環境が変化した場合に、これから検索されると予想されるデータをキャッシュに予め格納しておくことができる。以上により、使用環境が変わった場合であっても、高速な検索を実行することが可能なキャッシュ付検索装置、それに適用されるキャッシュ最適化方法、及びプログラムを実現することができる。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明を実施するための最良の形態について図面を参照しながら説明する。
【００１２】
図１は、本発明の実施の形態に係るキャッシュ最適化方法を適用したキャッシュ付検索装置の構成例を示す機能ブロック図である。
【００１３】
すなわち、同実施の形態に係るキャッシュ最適化方法を適用したキャッシュ付検索装置１０は、検索サーバ２０と、それに接続された入出力端末１２およびデータベース１４とからなる。入出力端末１２およびデータベース１４は、複数ありうるが、図１では、説明の簡略化のために各一つのみ示している。入出力端末１２は、検索サーバ２０に対して検索要求を送ったり、検索サーバ２０から送られた検索結果を表示するものであり、キーボードやマウス等の入力ツールと、入力ツールによって入力されたデータや、検索サーバ２０からの検索結果等を表示するディスプレイとを備えている。このような入出力端末１２は、例えば、パーソナルコンピュータで構成することができる。また、インターネット等の通信ネットワークによって検索サーバ２０と遠隔配置されていても良い。
【００１４】
検索サーバ２０は更に、キャッシュ解析部２２と、環境監視部２４と、検索サーバ情報部２６と、キャッシュ操作部２８と、キャッシュログデータベース３０と、一般的な検索キャッシュ３２と、検索実行部３４とを備えている。
【００１５】
キャッシュ解析部２２は、キャッシュログを記録する時間間隔を指定し、指定時間間隔を環境監視部２４に送る。なお、キャッシュ解析部２２を省略し、キャッシュログを記録する時間間隔を入出力端末１２から指定し、この指定時間間隔を環境監視部２４に送るようにしても良い。
【００１６】
また、キャッシュ解析部２２は、検索サーバ２０の起動時に、キャッシュログデータベース３０に格納されている過去のキャッシュログを分析し、検索キャッシュ３２に記録されるキャッシュの展開データを入れ替えるのに最適なタイミングを自動的に算出する。この算出方法について、図２に示すフローチャートを用いて説明する。
【００１７】
すなわち、キャッシュ解析部２２は、キャッシュログデータベース３０に格納されている全てのキャッシュログを、ログを記録した時刻で比較し、３０分をひとまとまりとして、グループ化する（Ｓ１）。
【００１８】
次に、ステップＳ１でグループ化された各グループ内の全てのキャッシュログをベクトル空間に展開する（Ｓ２）。ベクトル空間とは、登録されている全ての単語を次元として、その単語が存在すれば１、存在しなければ０を入れたものである。例えば図３に示すように、ステップＳ１でキャッシュログ１とキャッシュログ２というキャッシュログがグループ化され、キャッシュログ１に「日本」と「経済」という単語が記録されており、キャッシュログ２に「日本」と「野球」という単語が記録されている場合、登録されている全ての単語は「日本」、「経済」、「野球」となる。したがって、ベクトル空間は（日本、経済、野球）という３次元空間で定義される。このようなベクトル空間に対して、「日本」と「経済」とが記録されているキャッシュログ１のベクトル空間展開結果は、  
（日本、経済、野球）＝（１，１，０）となり、
「日本」と「野球」とが記録されているキャッシュログ２のベクトル空間展開結果は、  
（日本、経済、野球）＝（１，０，１）となる。
【００１９】
次に、各グループごとに、グループ内の全ベクトルの和を取る。このベクトルの和を代表ベクトルと呼ぶ（Ｓ３）。図３に示すようなキャッシュログ１とキャッシュログ２とが記録されているキャッシュログデータベース３０の場合、代表ベクトルは、  
（日本、経済、野球）＝（１，１，０）＋（１，０，１）＝（２，１，１）となる。
【００２０】
次に、ステップＳ３で求めた各代表ベクトルにおいて、一つ前の時間、および一つ後の時間に対して下記の（３）式に示すような大きさの比較値、（４）式に示すような方向の比較値をそれぞれ計算する。なお、（３）式および（４）式において、ベクトルＡとは、一つ前の時間の代表ベクトルであり、ベクトルＢとは、一つ後の時間の代表ベクトルである。そして、（３）式、または（４）式に従って求めた比較値のうちの何れか一方が予め定めた閾値を超えた場合には、その２つのグループの境界の時刻をキャッシュ入れ替えタイミングとして、環境監視部２４に出力する（Ｓ４）。このような処理を、ユーザごとにグループ化するように変更することで、キャッシュ入れ替えのタイミングを自動算出するようにしている。
【００２１】
検索サーバ情報部２６は、環境監視部２４に対して時刻情報を提供する。
【００２２】
環境監視部２４は、検索サーバ情報部２６から時刻情報を取得することによって現在時刻を把握する。そして、キャッシュ解析部２２または入出力端末１２からの指定時間間隔に達する毎に、キャッシュ操作部２８に対して、検索キャッシュ３２内の内容のログを、キャッシュログデータベース３０に記録するよう指示信号を送る。これを受けて、キャッシュ操作部２８は、検索キャッシュ３２内の内容のログをキャッシュデータベース３０に記録する。
【００２３】
環境監視部２４はまた、入出力端末１２から検索要求が入力された場合、検索サーバ２０が使用されている使用環境を監視する。使用環境は、入出力端末１２を操作するユーザ、および時刻情報を含む。そして、監視している使用環境に変化があったか否かを判定する。例えば、検索サーバ２０が起動された場合や、予め定めた時刻になった場合には、それを検知し、使用環境に変化があったと判定する。また、キャッシュログデータベース３０に保存されている過去のログの内容を時系列的に解析し、この解析結果から、現在の使用環境に変化があったことを判定する。このようにして使用環境に変化があったものと判定した場合には、キャッシュ解析部２２によって算出されたキャッシュ入れ替えタイミングに達する毎に第１のキャッシュ入替信号をキャッシュ操作部２８に出力する。
【００２４】
また、入出力端末１２を操作するユーザが別のユーザに変わった場合にもまた、使用環境に変化があったと判定する。この場合には、キャッシュ解析部２２によって算出されたキャッシュ入れ替えタイミングに達する毎に第２のキャッシュ入替信号をキャッシュ操作部２８に出力する。
【００２５】
キャッシュ操作部２８は、環境監視部２４からキャッシュ入替信号が出力された場合には、現在の使用環境に最も関連性の高いキャッシュログをキャッシュログデータベース３０から取得する。例えば、第１のキャッシュ入替信号が送られた場合であれば、時刻に基づいて、最も関連性の高いキャッシュログをキャッシュログデータベース３０から取得する。具体的には、昨日以前の日付のキャッシュログのうち、以下の評価式（１）より最も評価点の高いキャッシュログを取得する。ただし、評価式（１）において、時刻とは、記録時間のうち年、日を除いた、「時：分：秒」とする。この時刻は、ＹＹ：ＭＭ：ＤＤ：ｈｈ：ｍｍ：ｓｓのように表現できる（ＹＹは西暦の下二桁、ＭＭは月、ＤＤは日、ｈｈは時間、ｍｍは分、ｓｓは秒）。例として、演算は：で区切られた要素ごとに行い、要素の値がマイナスになると上位の要素から借りることができる。また、時刻の差は１０分単位で表し、日付の差は日数単位で表す。
【００２６】
評価点＝（現在時刻＋１０分）−（ログの時刻）  ・・・・評価式（１）  
この評価式（１）の意味は、１０分後に最も近い時刻のキャッシュログのうち、最新のものを選ぶということである。
【００２７】
また、キャッシュ操作部２８は、第２のキャッシュ入替信号が出力された場合であれば、以下の評価式（２）より、評価点の最も低いキャッシュログを選択することによって、最近のキャッシュログの中から、ユーザ構成が最も類似しているキャッシュログをキャッシュログデータベース３０から取得する。なお、評価式（２）で用いるユーザの優先度（値が大きければ大きいほど高い）は、予め定めておくものとする。
【００２８】
評価点＝（ユーザ構成点）＊（（現在の日付）−（ログの日付））・・・・評価式（２）  
ここで、ユーザ構成点とは、現在とキャッシュログとのユーザベクトルの各要素の差をとり、それぞれの絶対値の和から求める。以下に、ユーザベクトルと、ユーザ構成点について具体的に説明する。
【００２９】
すなわち、評価式（２）を用いて評価点を計算する場合、まず、全ユーザ数に対応する次元を持つベクトルを考慮し、現在の状況のユーザベクトルを作成する。作成方法は、ベクトルの各次元を１人のユーザに割り当て、ユーザがログインしていれば優先度、ログインしていなければ０を割り当てる。例えば、Ｗ、Ｘ、Ｙ、Ｚの４人のユーザに対し、ユーザＷの優先度として２０、ユーザＸの優先度として１０、ユーザＹの優先度として１０、ユーザＺの優先度として５とした場合であって、ユーザＷとユーザＹだけがログインしている状態のユーザベクトルは、  
ユーザベクトル（Ｗ，Ｘ，Ｙ，Ｚ）＝（２０，０，１０，０）となる。  
また、ユーザＸ、ユーザＹ、ユーザＺだけがログインしている状態のユーザベクトルは、  
ユーザベクトル（Ｗ，Ｘ，Ｙ，Ｚ）＝（０，１０，１０，５）となる。
【００３０】
次に、評価式（２）を用いた具体的な評価点の計算例について説明する。第１の想定ケースとして、現在、上記各ユーザＷ，Ｘ，Ｙ，Ｚの全員がログインしていて、１日前のあるログαのユーザ状況では、優先度の低いユーザＺのみがログインしていない場合を考える。この場合、現在におけるユーザベクトルは、（Ｗ，Ｘ，Ｙ，Ｚ）＝（２０，１０，１０，５）であり、ログαにおけるユーザベクトルは、（Ｗ，Ｘ，Ｙ，Ｚ）＝（２０，１０，１０，０）であるので、現在とキャッシュログとのユーザベクトルの各要素の差は、  
（ΔＷ，ΔＸ，ΔＹ，ΔＺ）＝（０，０，０，５）となる。したがって、各要素の絶対値の和は  ０＋０＋０＋５＝５  となる。これがユーザ構成点となる。また、評価式（２）における（（現在の日付）−（ログの日付））は、１（日）であるので、この場合における評価点は、  ５×１＝５点  となる。
【００３１】
一方、第２の想定ケースとして、現在、上記各ユーザＷ，Ｘ，Ｙ，Ｚの全員がログインしていて、２日前のあるログβのユーザ状況では、優先度の高いユーザＷのみがログインしていない場合を考える。この場合、現在におけるユーザベクトルは、（Ｗ，Ｘ，Ｙ，Ｚ）＝（２０，１０，１０，５）であり、ログβにおけるユーザベクトルは、（Ｗ，Ｘ，Ｙ，Ｚ）＝（０，１０，１０，５）であるので、現在とキャッシュログとのユーザベクトルの各要素の差は、（ΔＷ，ΔＸ，ΔＹ，ΔＺ）＝（２０，０，０，０）となる。したがって、各要素の絶対値の和は  ２０＋０＋０＋０＝２０  となる。これがユーザ構成点となる。また、評価式（２）における（（現在の日付）−（ログの日付））は、２（日）であるので、この場合における評価点は、  ２０×２＝４０点  となる。
【００３２】
以上計算したようなログαとログβとを比較すると、ログαの方が評価点の低いので、ログαのユーザ構成を、最も類似しているキャッシュログと判定する。
【００３３】
このようにしてキャッシュログを取得したならば、キャッシュ操作部２８はさらに、検索キャッシュ３２に現在キャッシュされている単語のうち、優先順位の低いものから５０％を削除する。そして、キャッシュログデータベース３０から取得したキャッシュログに記録されている単語のうち、優先順位の高いものから５０％を、検索キャッシュ３２における優先順位の低いものから５０％として挿入する。挿入する単語のうち、検索キャッシュ３２に現在キャッシュされている優先順位の高いものから５０％の中に既に含まれている単語については、検索キャッシュ３２に現在キャッシュされているものをそのまま残す一方、キャッシュログに記録されている単語のうち、検索キャッシュ３２に挿入されなかった単語のなかで、優先順位の最も高い単語を繰り上げて検索キャッシュ３２に挿入する。このようにして、取得したキャッシュログの内容に基づいて、検索キャッシュ３２内のデータを更新する。
【００３４】
これを図４を用いて説明する。図４（ａ）は、検索キャッシュ３２に現在キャッシュされている単語とその優先順位を示す図である。一方、図４（ｂ）は、キャッシュログデータベース３０から取得されたキャッシュログの内容を示す図である。この場合、キャッシュ操作部２８は、図４（ａ）に示すような検索キャッシュ３２にキャッシュされている単語のうち、優先順位の低いものから５０％を削除する。すなわち、検索キャッシュ３２には、優先順位の高い順に「日本」、「総理大臣」、「東京」、「首相」という４つの単語がキャッシュされているので、優先順位の低い５０％の単語である「東京」と「首相」とが削除され、優先順位の高い５０％の単語である「日本」と「総理大臣」とが残る。
【００３５】
一方、キャッシュログデータベース３０から取得したキャッシュログには、図４（ｂ）に示すように、優先順位の高い順に「日本」、「野球」、「ＭＬＢ」、「ホームラン」という単語が記録されているので、優先順位の高い５０％の単語である「日本」と「野球」とが検索キャッシュ３２における優先順位下位５０％に挿入される。しかしながら、「日本」という単語は、既に検索キャッシュ３２における優先順位上位５０％に残っているので、「ＭＬＢ」という単語が繰り上げられる。
【００３６】
その結果、図４（ｃ）に示すように、検索キャッシュ３２に記録されていた単語のうち、優先順位の高い５０％の単語である「日本」と「総理大臣」とがそのまま残り、優先順位の低い５０％の単語である「東京」と「首相」という単語が、検索キャッシュ３２から削除される。そして、その代わりに、キャッシュログデータベース３０から取得したキャッシュログに含まれる単語のうち、検索キャッシュ３２に既に記録されている単語（「日本」、「総理大臣」）を除いた優先順位上位５０％の単語である「野球」と「ＭＬＢ」とが、検索キャッシュ３２の優先順位下位５０％に挿入される。
【００３７】
キャッシュ操作部２８はまた、環境監視部２４から指示信号が送られると、図５に示すとおり、キャッシュログデータベース３０に記録する記録時刻、現在入出力端末１２を使用しているユーザ名からなる使用環境と、検索キャッシュ３２にキャッシュされている単語とその検索頻度順位とからなるキャッシュログを作成し、キャッシュログデータベース３０に書き込む。
【００３８】
検索実行部３４は、入出力端末１２から送られたユーザによる検索要求に基づいて、以下のようにして検索キャッシュ３２またはデータベース１４から検索を実行する。すなわち、入出力端末１２から検索要求が送られると、検索要求された単語の、検索キャッシュ３２からの検索を試みる。検索キャッシュ３２は、例えば図６に示すように、検索頻度の高い順にソートされた優先順位にしたがって単語を記録している。また、インデックス情報として、単語が記載されている文書名と、記載箇所とを記録している。
【００３９】
そして、検索要求された単語が、検索キャッシュ３２に格納されている場合には、その単語に対応するインデックスを読み出して、検索結果の一覧を作成し、その結果を入出力端末１２に返す。その後、図７にその一例を示すように、検索キャッシュ３２において、検索した単語より上位の、すべての単語の優先順位を１つずつ下げ、検索した単語の優先順位を１位にする更新処理を実行する。
【００４０】
図７は、「東京」という検索要求に対して検索を行い、検索キャッシュ３２から文書＃８が検索された場合における検索キャッシュ３２の更新処理の例を示すものである。すなわち、当該検索前においては、図７（ａ）に示すように、「東京」という単語は、優先順位３位であったが、当該検索後においては、図７（ｂ）に示すように、「東京」の優先順位が１位に上げられ、その他の単語の優先順位が１ずつ繰り下げられている。
【００４１】
一方、検索要求された単語が、検索キャッシュ３２に格納されていない場合には、データベース１４から、その単語に対応するインデックスを読み出して、検索結果の一覧を作成し、その結果を入出力端末１２に返す。その後、図８にその一例を示すように、検索キャッシュ３２において、優先順位が最下位の単語のインデックスを削除し、データベース１４から検索された単語のインデックスの優先順位を１位にする更新処理を実行する。
【００４２】
図８は、「ブッシュ」という検索要求に対して検索を行い、データベース１４から文書＃１０が検索された場合における検索キャッシュ３２の更新処理の例を示すものである。すなわち、当該検索前においては、図８（ａ）に示すように、「ブッシュ」という単語は、検索キャッシュ３２内には記録されていなかったが、当該検索後においては、図８（ｂ）に示すように、「ブッシュ」の優先順位が１位に上げられ、代わりに、検索前の優先順位が最下位であった「東京」という単語が削除されている。
【００４３】
なお、上記では、説明の簡略化のために、検索要求が単一の単語でなされた場合を例に説明したが、検索要求は、単一の単語に限定されるものではなく、複数単語、あるいは文であっても同様に適用可能である。また、データベース１４のデータが更新された場合も、検索キャッシュ３２の内容の変更が起こりうるが、それについては、簡略化のために省略する。
【００４４】
このような構成をなす本キャッシュ付検索装置１０は、例えば磁気ディスク等の記憶媒体に記憶されたプログラムや、インターネット等のネットワークを介してダウンロードしたプログラムを読み込み、このプログラムによって動作が制御されるコンピュータによって実現される。
【００４５】
ここで記憶媒体としては、磁気ディスク、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリ等、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【００４６】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が同実施の形態を実現するための各処理の一部を実行してもよい。
【００４７】
さらに、記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【００４８】
また、記憶媒体は１つに限らず、複数の媒体から同実施の形態における処理が実行される場合もここでいう記憶媒体に含まれ、媒体構成は何らの構成であってもよい。
【００４９】
なお、ここでいうコンピュータは、記憶媒体に記憶されたプログラムに基づき、同実施の形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。また、このコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【００５０】
次に、以上のように構成した同実施の形態に係るキャッシュ最適化方法を適用したキャッシュ付検索装置１０の作用について説明する。
【００５１】
すなわち、同実施の形態に係るキャッシュ最適化方法を適用したキャッシュ付検索装置１０では、キャッシュ解析部２２において、キャッシュログを記録する時間間隔が指定され、指定され時間間隔が環境監視部２４に送られる。なお、キャッシュ解析部２２を省略し、キャッシュログを記録する時間間隔を入出力端末１２から指定し、この指定時間間隔を環境監視部２４に送るようにしても良い。
【００５２】
キャッシュ解析部２２では、検索サーバ２０の起動時に、キャッシュログデータベース３０に格納されている過去のキャッシュログが分析され、図２のフローチャートに示すように、検索キャッシュ３２に記録されるキャッシュの展開データを入れ替えるのに最適なタイミングが自動的に算出される。
【００５３】
また、検索サーバ情報部２６からは、環境監視部２４に対して時刻情報が提供される。
【００５４】
そして、環境監視部２４では、検索サーバ情報部２６から提供される時刻情報から、現在時刻が把握される。そして、キャッシュ解析部２２または入出力端末１２からの指定時間間隔に達する毎に、キャッシュ操作部２８に対して、検索キャッシュ３２内の内容のログを、キャッシュログデータベース３０に記録するよう指示信号が送られる。これを受けて、キャッシュ操作部２８では、検索キャッシュ３２内の内容のログが、キャッシュログデータベース３０に記録される。
【００５５】
環境監視部２４ではまた、入出力端末１２から検索要求が入力された場合、検索サーバ２０が使用されている使用環境が監視され、使用環境に変化があったか否かが判定される。例えば、検索サーバ２０が起動された場合や、予め定めた時刻になった場合には、それを検知し、使用環境に変化があったものと判定される。また、キャッシュログデータベース３０に保存されている過去のログの内容が時系列的に解析され、この解析結果から、現在の使用環境に変化があったことが判定される。このようにして使用環境に変化があったものと判定された場合には、キャッシュ解析部２２によって算出されたキャッシュ入れ替えタイミングに達する毎に、第１のキャッシュ入替信号がキャッシュ操作部２８に送られる。
【００５６】
また、入出力端末１２を操作するユーザが別のユーザに変わった場合にもまた、使用環境に変化があったものと判定される。この場合には、キャッシュ解析部２２によって算出されたキャッシュ入れ替えタイミングに達する毎に第２のキャッシュ入替信号がキャッシュ操作部２８に送られる。
【００５７】
キャッシュ操作部２８では、環境監視部２４からキャッシュ入替信号が送られた場合には、図９に示すようなフローチャートに従って、現在の使用環境に最も関連性の高いキャッシュログがキャッシュログデータベース３０から取得される。例えば、検索サーバ２０が起動された場合（Ｓ１１）には、環境監視部２４から第１のキャッシュ入替信号が送られ、時刻に基づいて、上述した評価式（１）に従って、最も関連性の高いキャッシュログがキャッシュログデータベース３０から選択される（Ｓ１２）。そして、選択されたキャッシュログに従ってキャッシュ操作部２８によって検索キャッシュ３２内のキャッシュデータが入れ替えられ（Ｓ１３）、しかる後に、環境監視部２４による環境監視が継続される（Ｓ１４）。
【００５８】
さらにこの状態で、キャッシュログを選択する指定時刻になった場合（Ｓ１５：Ｙｅｓ）にも同様にステップＳ１２以降の処理が行われ、しかる後に、環境監視部２４による環境監視が継続される（Ｓ１４）。一方、キャッシュログを選択する指定時刻になっていない場合（Ｓ１５：Ｎｏ）であっても、新たなユーザが、検索サーバ２０にログインした場合（Ｓ１６：Ｙｅｓ）には、環境監視部２４から第２のキャッシュ入替信号が送られ、上述した評価式（２）に従って、評価点の最も低いキャッシュログを選択することによって、最近のキャッシュログの中から、ユーザ構成が最も類似しているキャッシュログがキャッシュログデータベース３０から選択される（Ｓ１７）。そして、選択されたキャッシュログに従って検索キャッシュ３２内のキャッシュデータが入れ替えられ（Ｓ１３）、しかる後に、環境監視部２４による環境監視が継続される（Ｓ１４）。一方、ステップＳ１６において、新たなユーザがログインしない場合（Ｓ１６：Ｎｏ）には、環境監視部２４による環境監視が継続される（Ｓ１４）。
【００５９】
なお、キャッシュ操作部２８では、環境監視部２４から指示信号が送られる毎に、図５に示すとおり、キャッシュログデータベース３０に記録する記録時刻、現在入出力端末１２を使用しているユーザ名からなる使用環境と、検索キャッシュ３２にキャッシュされている単語とその検索頻度順位とからなるキャッシュログが作成され、キャッシュログデータベース３０に書き込まれる。
【００６０】
一方、検索実行部３４は、入出力端末１２から送られたユーザによる検索要求に基づいて、図１０のフローチャートに示すようにして検索キャッシュ３２またはデータベース１４からの検索が実行される。すなわち、入出力端末１２から検索要求が入力されると（Ｓ２１）、検索要求された単語の、検索キャッシュ３２からの検索が試みられる。検索キャッシュ３２では、例えば図６に示すように、検索頻度の高い順にソートされた優先順位にしたがって単語が記録されている。また、インデックス情報として、単語が記載されている文書名と、記載箇所とが記録されている。
【００６１】
そして、ステップＳ２１で検索要求された単語が、検索キャッシュ３２に格納されている場合（Ｓ２２：Ｙｅｓ）には検索キャッシュ３２から、その単語に対応するインデックスが取得され、検索結果の一覧が作成される（Ｓ２３）。その後、図７にその一例を示すように、検索キャッシュ３２において、検索した単語より上位の、すべての単語の優先順位を１つずつ下げ、検索した単語の優先順位を１位にする更新処理が実行されることによって、検索キャッシュ３２の再構築がなされる（Ｓ２４）。ステップＳ２３で作成された検索結果の一覧は、入出力端末１２から表示される（Ｓ２５）。
【００６２】
一方、ステップＳ２１で検索要求された単語が、検索キャッシュ３２に格納されていない場合（Ｓ２３：Ｎｏ）には、データベース１４から、その単語に対応するインデックスを読み出されて、検索結果の一覧が作成される（Ｓ２６）。そして、作成された検索結果の一覧は、入出力端末１２から表示される（Ｓ２７）。
【００６３】
上述したように、同実施の形態に係るキャッシュ最適化方法を適用したキャッシュ付検索装置１０においては、上記のような作用により、例えば検索サーバ２０の起動時や、新たなユーザのログイン時や、指定した時刻に達したことなどにより使用環境が変化した場合には、環境監視部２４においてそれを判定することができる。
【００６４】
そして、使用環境が変化したと判定した場合には、その変化内容に応じて最適なキャッシュログをキャッシュログデータベース３０から取得し、取得したキャッシュログに基づいて、検索キャッシュ３２の展開データを更新することができる。
【００６５】
これによって、使用環境が変わった場合には、検索キャッシュ３２の展開データを、変わった使用環境に適した内容に更新することができるので、使用環境が変わった場合であっても、高速な検索を実行することが可能となる。
【００６６】
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態に係るキャッシュ最適化方法を適用したキャッシュ付検索装置の構成例を示す機能ブロック図。
【図２】キャッシュ展開データの入替最適タイミングの算出方法の一例を示すフローチャート。
【図３】キャッシュロググループ毎に記録されている単語の一例を示す図。
【図４】キャッシュ操作部でなされるキャッシュの更新方法の一例を説明するための図。
【図５】キャッシュログの構成例を示す図。
【図６】検索キャッシュのデータ構成例を示す図。
【図７】検索処理においてなされる検索キャッシュの更新処理を説明するための図（検索要求された単語が検索キャッシュに存在する場合）。
【図８】検索処理においてなされる検索キャッシュの更新処理を説明するための図（検索要求された単語が検索キャッシュに存在しない場合）。
【図９】検索キャッシュ内のキャッシュデータを入れ替える場合の処理の流れの一例を示すフローチャート。
【図１０】検索処理の流れの一例を示すフローチャート。
【符号の説明】
【００６８】
１０…キャッシュ付検索装置、１２…入出力端末、１４…データベース、２０…検索サーバ、２２…キャッシュ解析部、２４…環境監視部、２６…検索サーバ情報部、２８…キャッシュ操作部、３０…キャッシュログデータベース、３２…検索キャッシュ、３４…検索実行部
【図１】
2006106867.tif 000003
【図２】
2006106867.tif 000004
【図３】
2006106867.tif 000005
【図４】
2006106867.tif 000006
【図５】
2006106867.tif 000007
【図６】
2006106867.tif 000008
【図７】
2006106867.tif 000009
【図８】
2006106867.tif 000010
【図９】
2006106867.tif 000011
【図１０】
2006106867.tif 000012