(57)【要約】      （修正有）【課題】キャッシュ技術を利用しても、クライアントからの検索要求の頻度よりデータの更新頻度の方が高い場合には、キャッシュの利用率が低下し、処理時間が長くなってしまうという課題があった。そのために、クライアントから検索要求を受信してから検索結果をクライアントに返信するまでの時間を短縮する。【解決手段】  クライアントがある検索要求を送信する前に高い確率で行われるアクションをアプリケーションサーバが検知した場合に、その後で受信すると予想する検索要求に対応する検索処理を事前に行い、クライアントから、その検索要求を受信した場合に事前に検索した結果を返信する。【選択図】図１
2008299685.tif 000002
【特許請求の範囲】
【請求項１】
検索要求の前に行われる入出力要求の種類を定義した事前アクションリスト、事前の検索の状況を示すプレ検索情報、および事前アクションリストに定義している入出力要求と検索要求の履歴に基づいて、事前アクションリストに定義している入出力要求の後に同じ検索条件の検索要求を受信する確率を事前アクションリストと検索条件ごとに示すアクション履歴統計、事前に検索を行うかどうかを判断する基準値を示すプレ検索閾値、検索結果が有効であるかどうかを判断する基準値を示す検索結果有効時間を記憶する記憶部と、
事前アクションリストに定義している入出力要求を受信した場合に当該入出力要求の後に高い確率で行われる検索条件をアクション履歴統計から取得し、当該検索が行われる確率がプレ検索閾値の値以上である場合に当該検索条件で検索を行い、プレ検索情報を登録するプレ検索判定処理部と、
検索要求を受信した場合に当該検索要求の検索条件と一致するプレ検索情報がある場合にプレ検索情報を利用して検索結果を返信する検索処理部と、
を有することを特徴とする事前検索処理装置。
【請求項２】
請求項１に記載の事前検索処理装置において、
前記アクション履歴統計の確率を、事前アクションリストに定義している入出力要求を受信してから同じ検索条件の検索要求を受信するまでの時間間隔が規定された時間間隔の下限値以上でかつ規定された時間間隔の上限値以内である確率として算出することを特徴とする事前検索処理装置。
【請求項３】
請求項１に記載の事前検索処理装置において、
前記検索処理部は、事前の検索の検索条件と検索要求の検索条件が一致しない場合でかつ検索要求の検索条件が事前の検索の検索条件と追加の検索条件のAND条件になっている場合に、事前の検索の結果に対して追加の検索条件で再検索を行うことを特徴とする事前検索処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントが指定する検索条件に該当するデータをデータベースから取得してクライアントに返信する検索処理装置に関するものである。
【背景技術】
【０００２】
ＩＴ技術の発展と情報化社会の進展に伴い、ネットワークを介してアクセスするデータ量も膨大になってきている。一般的にデータベースに格納するデータ量が多くなればなるほど、データベースの検索処理に要する時間も長くなるため、クライアントが検索要求を送信してから結果を取得するまでの時間が長くなってしまう。
【０００３】
特許文献１では、この問題を解決するために、キャッシュ技術を利用している。以前に検索した結果をキャッシュに保持しておき、クライアントが要求するデータがキャッシュにある場合はキャッシュのデータをクライアントに返信することにより、処理時間を短縮することが可能になる。
【０００４】
【特許文献１】特開2000-222272
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の検索処理装置は、クライアントからの検索要求の頻度よりデータの更新頻度の方が低い場合にはキャッシュの利用率が高くなり、検索要求から検索結果を返信するまでの処理時間を短縮できるが、反対にデータの更新頻度の方が高い場合には、キャッシュの利用率が低下するために処理時間が長くなってしまう課題があった。
本発明はこの課題を解決することを目的とする。
【課題を解決するための手段】
【０００６】
本発明はアプリケーションサーバがクライアントから検索要求を受信してから検索結果をクライアントに返信するまでの時間を短縮するため、クライアントがある検索要求を送信する前によく行うアクション（以降、事前アクションと呼ぶ）をアプリケーションサーバが検知したときに、その後で受信すると予想する検索要求に対応する検索処理を事前に行い、クライアントからその検索要求を受信した場合に事前に行った検索処理の結果を利用して検索結果をクライアントに返信することを主要な特徴とする。
【発明の効果】
【０００７】
本発明の検索処理装置では、アプリケーションサーバが検索処理を事前に行うことによりクライアントから検索要求を受信してから検索結果をクライアントに返信するまでの時間を短縮できるという利点がある。
【発明を実施するための最良の形態】
【０００８】
本発明をWebアプリケーションに適用した場合の実施例について図面を用いて説明する。
【実施例１】
【０００９】
アプリケーションサーバ300は、図１に示すように応答処理部301、プレ検索判定処理部302、検索処理部304、事前アクションリスト311、プレ検索情報312、アクション履歴313、アクション履歴統計314、プレ検索閾値315、検索結果有効時間316を有する。
【００１０】
応答処理部301、プレ検索判定処理部302、検索処理部304は、メモリやHDDなどの記憶部に格納された応答処理プログラム、プレ検索判定処理プログラム、検索処理プログラムを、それぞれCPUが実施することで実現される。なお、これらの処理部は、各処理を行う処理部として集積回路化するなどしてハードウェアで実現することもできる。
【００１１】
また、事前アクションリスト311、プレ検索情報312、アクション履歴313、アクション履歴統計314、プレ検索閾値315、検索結果有効時間316は、メモリやHDDなどの記憶部に格納されている。
【００１２】
事前アクションリスト311は、図２に示すようにクライアント200において検索前に行う画面操作の中で検索要求を予測するのに適している画面操作（以後、事前アクションと呼ぶ）を定義したものである。プルダウンＤを選択3114やテキスト入力など、通常はアプリケーションサーバ300との通信が発生しない事前アクションを事前アクションリスト311に登録する場合は、JavaScriptの非同期通信などを利用してアプリケーションサーバ300に事前アクションを通知させる。
【００１３】
プレ検索情報312は、図３に示すようにユーザＩＤ3121、検索条件3122、検索開始時間3123、検索結果参照3124を有するデータである。
【００１４】
アクション履歴313は、図４に示すようにユーザＩＤ3131、事前アクション3132、検索条件3133を有するデータである。
【００１５】
アクション履歴統計314は、図５に示すようにユーザＩＤ3141、事前アクション3142、検索条件3143、プレ検索有効確率3144を有するデータである。アクション履歴313が図４である場合を例にして、ユーザＩＤ3141が”001”、 かつ事前アクション3142が”メニューＡを選択”、かつ検索条件3143が”P=p1”であるアクション履歴統計314のプレ検索有効確率3144の算出方法を説明する。当該プレ検索有効確率3144は、ユーザＩＤ3131が”001”、かつ事前アクション3132が”メニューＡを選択”、かつ検索条件3133が”P=p1”であるアクション履歴313の件数（１件）をユーザＩＤ3131が”001”、かつ事前アクション3132が”メニューＡを選択”であるアクション履歴313の件数（4件）で割ることで算出する。アクション履歴統計314は、アクション履歴313が更新されたとき、またはアクション履歴統計314が参照されるとき、または定期的に算出する。
【００１６】
プレ検索閾値315は、図６に示すように事前に検索を行うかどうかの判断基準となる確率の値である。
【００１７】
検索結果有効時間316は、図７に示すように事前に行った検索の結果を利用するかどうかの判断基準となる時間間隔の上限値である。
【００１８】
応答処理部301は、図８に示すようにステップS101でクライアント200から受信するデータからユーザＩＤと画面操作の種類を抽出する。次にステップS102の判定処理において、抽出した画面操作の種類が事前アクションリスト311に登録されている事前アクションである場合はステップS103に進み、抽出した画面操作の種類が検索を要求するアクション（以後、検索アクションと呼ぶ）である場合はステップS104に進み、事前アクションでも検索アクションでもない場合はステップS105に進む。ステップS103ではユーザＩＤ3131と事前アクション3132の値が当該事前アクションを行ったユーザＩＤと当該事前アクションと等しく、かつ検索条件3133の値がセットされていないアクション履歴313が存在しなければ、当該ユーザＩＤと当該事前アクションをユーザＩＤ3131と事前アクション3132としてアクション履歴313に登録し、当該ユーザＩＤと当該事前アクションを引数としてプレ検索判定処理部302を実行する。ステップS104では検索アクションを実行したユーザＩＤと当該検索アクションの検索条件を引数として検索処理部304を実行する。また、ユーザＩＤ3131の値が当該ユーザＩＤと一致するアクション履歴313のレコードの検索条件3133を当該検索条件で更新する。最後にステップS105において応答データを生成し、当該クライアント200に返信する。
【００１９】
プレ検索判定処理部302は、図９に示すようにステップS201でユーザＩＤ3121の値が引数のユーザＩＤと等しいプレ検索情報312のレコードを検索し、レコードが存在しない場合はステップS202に進み、レコードが存在する場合は当該レコードの検索開始時間3123から現在時刻までの時間間隔を算出し、当該時間間隔が検索結果有効時間316以内であればプレ検索判定処理を終了し、当該時間間隔が検索結果有効時間316を超過している場合は当該レコードを削除してステップS202に進む。次にステップS202でアクション履歴統計314を参照し、ユーザＩＤ3141と事前アクション3142が引数のユーザＩＤと引数の事前アクションと等しいアクション履歴統計314のレコードの中でプレ検索有効確率3144の値が最も高いレコードの検索条件3143とプレ検索有効確率3144を取得する。次にステップS203で当該プレ検索有効確率3144の値がプレ検索閾値315以上であるかどうか判定し、プレ検索閾値315以上である場合はステップS204に進み、プレ検索閾値315に満たない場合はプレ検索判定処理を終了する。ステップS204ではステップS202で取得した検索条件に基づいてデータベースサーバ400に対して事前に検索処理（以後、プレ検索と呼ぶ）を実行し、当該ユーザＩＤ、当該検索条件、当該プレ検索の検索開始時間、当該プレ検索の検索結果への参照をそれぞれユーザＩＤ3121、検索条件3122、検索開始時間3123、検索結果参照3124としてプレ検索情報312に登録する。
【００２０】
検索処理部304は、図１０に示すようにステップS401でユーザＩＤ3121の値が引数のユーザＩＤと一致するプレ検索情報312のレコードを検索し、レコードが存在する場合はステップS402に進み、レコードが存在しない場合はステップS406に進む。ステップS402で当該レコードの検索開始時間3123から現在時刻までの時間間隔が検索結果有効時間316以内である場合はステップS403に進み、当該時間間隔が検索結果有効時間316を超過している場合はステップS405に進む。
【００２１】
ステップS403で当該レコードの検索条件3143の値が引数の検索条件と一致する場合はステップS404に進み、検索条件が一致しない場合はステップS406に進む。ステップS404では、当該レコードの検索結果参照3124の値が参照している検索結果を取得する。ステップS405では当該レコードを削除し、ステップS406に進む。ステップS406では引数のユーザＩＤと引数の検索条件でデータベースサーバ400に対して検索処理を実行し、検索結果を取得する。
【００２２】
本実施例ではアクションのパターンの傾向がユーザＩＤごとに異なるケースを想定して、アクション履歴313やアクション履歴統計314をユーザＩＤごとに保持しているが、アクションのパターンの傾向がユーザグループや権限の種類ごとに異なるケースでは、アクション履歴313やアクション履歴統計314をユーザグループや権限の種類ごとに保持すると効果的である。また全てのユーザＩＤで傾向に差がないケースではアクション履歴313やアクション履歴統計314をユーザＩＤごとに保持する必要はなく、システムで共通的に保持すればよい。
【００２３】
本実施例では、プレ検索有効確率3144が高い場合にプレ検索を行うことにより、クライアント200から検索要求を受信してから検索結果をクライアントに返信するまでの時間を短縮できる。
【実施例２】
【００２４】
次に実施例１のプレ検索を行うかどうかの判断基準に、アプリケーションサーバ300Bが事前アクションを検知してから検索アクションを検知するまでの時間間隔を含める場合の実施例について、実施例１と異なる部分を中心に図面を用いて説明する。
【００２５】
本実施例におけるアプリケーションサーバ300Bは、図１１に示すように応答処理部301、プレ検索判定処理部302、検索処理部304、事前アクションリスト311、プレ検索情報312、アクション履歴313B、アクション履歴統計314、プレ検索閾値315、検索結果有効時間316、時間下限値317を有する。
【００２６】
時間下限値317、アクション履歴313Bは、事前アクションリスト311などと同様に、メモリやHDDなどの記憶部に格納されている。
【００２７】
時間下限値317は、図１２に示すように事前に行った検索の結果を利用するかどうかの判断基準となる時間間隔の下限値である。
【００２８】
本実施例のアクション履歴313Bは、実施例１のアクション履歴313に対して、検知日時3134、時間間隔3135、時間判定結果3136を追加している。検知日時3134の値は、アプリケーションサーバ300Bが事前アクション3132を検知した日時である。
【００２９】
時間間隔3135の値は、アプリケーションサーバ300Bが事前アクション3132を検知してから検索条件3133の検索アクションを検知するまでの時間間隔である。時間判定結果3136の値は、時間間隔3135が時間下限値317以上かつプレ検索閾値315以下という時間間隔の条件を満たす場合は”OK”、 時間間隔の条件を満たさない場合は”NG”となる。
【００３０】
アクション履歴統計314のデータ構造は実施例１と同じであるが、算出方法が異なる。アクション履歴313Bが図１３である場合を例にして、ユーザＩＤ3141が”001”、 かつ事前アクション3142が”メニューＡを選択”、かつ検索条件3143が”P=p1”であるアクション履歴統計314のプレ検索有効確率3144の算出方法を説明する。
当該プレ検索有効確率3144は、ユーザＩＤ3131が”001”、かつ事前アクション3132が”メニューＡを選択”、かつ検索条件3133が”P=p1”、かつ時間判定結果3136が”OK”であるアクション履歴313Bの件数をユーザＩＤ3131が”001”、かつ事前アクション3132が”メニューＡを選択”であるアクション履歴313の件数で割ることで算出する。
【００３１】
応答処理部301に関して実施例１と異なる部分は、次の２点である。１点目はステップS103でアクション履歴313Bを登録する際、登録する事前アクション3132を検知した日時を検知日時3134としてアクション履歴313Bに登録することである。２点目はステップS104でアクション履歴313Bを更新する際、更新するアクション履歴313Bのレコードの時間間隔3135、時間判定結果3136を事前アクション3132を検知してから検索条件3133の検索アクションを検知するまでの時間間隔と、当該時間間隔3135が時間下限値317以上かつプレ検索閾値315以下であるかどうかの判定結果で更新することである。
【００３２】
本実施例では、事前アクションと検索アクションの時間間隔が時間下限値317以上かつプレ検索閾値315以下である確率が高い事前アクションを検知した場合にプレ検索を行うことにより、無駄なプレ検索を行われないため、より効果的にクライアント200から検索要求を受信してから検索結果をクライアントに返信するまでの時間を短縮できる。
【実施例３】
【００３３】
次に実施例１の検索処理において検索条件が一致しない場合でも、検索アクションの検索条件がプレ検索の検索条件を含んでいる場合に、プレ検索の検索結果に対して再検索する実施例について、実施例１と異なる部分を説明する。
【００３４】
本実施例が実施例１と異なる部分は検索処理部304Cの処理フローである。
検索処理部304Cは、図１４に示すようにステップS403において当該レコードの検索条件3143の値が引数の検索条件と一致しない場合にステップS407に進む。ステップS407で当該レコードの検索条件3143と引数の検索条件を比較し、引数の検索条件が当該レコードの検索条件3143と追加の検索条件とのAND条件になっている場合はステップS408に進み、そうでない場合はステップS406に進む。ステップS407で当該レコードの検索結果参照3124が参照する検索結果に対して、当該追加の検索条件で検索し、その検索結果を取得する。
【００３５】
本実施例では、検索アクションの検索条件がプレ検索の検索条件を含んでいる場合に、プレ検索の検索結果に対してさらに絞込検索することにより、検索条件が一致しない場合でも検索結果を早く取得できるようになる。
【産業上の利用可能性】
【００３６】
Webブラウザの画面に検索結果を表示する場合だけでなく、ファイル出力してダウンロードする場合やPDF出力する場合にも応用できる。また、Webアプリケーションに適用する場合だけでなく、検索処理の応答性能を向上させる必要がある任意のシステムに応用できる。
【図面の簡単な説明】
【００３７】
【図１】事前検索の実施方法を示した説明図である。（実施例１）
【図２】事前アクションのリストを示した説明図である。（実施例１）
【図３】プレ検索の情報を示した説明図である。（実施例１）
【図４】アクションの履歴を示した説明図である。（実施例１）
【図５】アクション履歴統計を示した説明図である。（実施例１）
【図６】プレ検索閾値を示した説明図である。（実施例１）
【図７】検索結果有効時間を示した説明図である。（実施例１）
【図８】応答処理のフローを示した説明図である。（実施例１）
【図９】プレ検索判定処理のフローを示した説明図である。（実施例１）
【図１０】検索処理のフローを示した説明図である。（実施例１）
【図１１】事前検索の実施方法を示した説明図である。（実施例２）
【図１２】時間下限値を示した説明図である。（実施例２）
【図１３】実施例２におけるアクション履歴を示した説明図である。（実施例２）
【図１４】実施例２における検索処理のフローを示した説明図である。（実施例２）
【符号の説明】
【００３８】
１００            通信ネットワーク
２００            クライアント
３００            アプリケーションサーバ
３０１            応答処理部
３０２            プレ検索判定処理部
３０４            検索処理部
３１１            事前アクションリスト
３１２            プレ検索情報
３１３            アクション履歴
３１４            アクション履歴統計
３１５            プレ検索式閾値
３１６            検索結果有効時間
３１７            時間下限値
４００            データベースサーバ
【図１】
2008299685.tif 000003
【図２】
2008299685.tif 000004
【図３】
2008299685.tif 000005
【図４】
2008299685.tif 000006
【図５】
2008299685.tif 000007
【図６】
2008299685.tif 000008
【図７】
2008299685.tif 000009
【図８】
2008299685.tif 000010
【図９】
2008299685.tif 000011
【図１０】
2008299685.tif 000012
【図１１】
2008299685.tif 000013
【図１２】
2008299685.tif 000014
【図１３】
2008299685.tif 000015
【図１４】
2008299685.tif 000016