【解決手段】方法は、ユーザが入力した第1のキーワードに応答して、第1の検索要求をサーバに送信し、サーバから第1の検索結果ページのリソースを返す過程において、返されたリソースを第1のコンテナにおいてプリレンダリングすることと、ユーザが現在のキーワードを第2のキーワードに変更したことを検出すれば、第2の検索要求をサーバに送信し、サーバから第2の検索結果ページのリソースを返す過程において、返されたリソースを第2のコンテナにおいてプリレンダリングすることと、ユーザが入力した検索命令を検出すれば、検索命令に応答して、現在のキーワードに対応するコンテナ内のリソースを出力することと、を含む。
ユーザが入力した第1のキーワードに応答して、第1の検索要求をサーバに送信し、前記サーバから前記第1のキーワードに対応する検索結果ページである第1の検索結果ページのリソースを返す過程において、返されたリソースを第1のコンテナにおいてプリレンダリングすることと、
ユーザが現在のキーワードを第2のキーワードに変更したことを検出すれば、第2の検索要求を前記サーバに送信し、前記サーバから前記第2のキーワードに対応する検索結果ページである第2の検索結果ページのリソースを返す過程において、返されたリソースを第2のコンテナにおいてプリレンダリングすることと、
ユーザが入力した検索命令を検出すれば、前記検索命令に応答して、現在のキーワードに対応するコンテナ内のリソースを出力することとを含むことを特徴とする、検索方法。
前記サーバから第2の検索結果ページのリソースを返す過程において、前記第2の検索結果ページの第1のリソースが前記第1の検索結果ページの第2のリソースと同じであれば、前記第1のコンテナ内の前記第2のリソースを前記第2のコンテナ内に多重化することをさらに含むことを特徴とする、請求項1に記載の検索方法。
前記第2のコンテナが多重化されるか又は解放されるときに、前記第2のコンテナに進行中のリソース要求が存在すれば、前記リソース要求と前記第2のコンテナとの関連付けを解除することをさらに含むことを特徴とする、請求項4に記載の検索方法。
ユーザが入力した第1のキーワードに応答して、第1の検索要求をサーバに送信し、前記サーバから前記第1のキーワードに対応する検索結果ページである第1の検索結果ページのリソースを返す過程において、返されたリソースを第1のコンテナにおいてプリレンダリングする第1のプリレンダリングモジュールと、
ユーザが現在のキーワードを第2のキーワードに変更したことを検出すれば、第2の検索要求を前記サーバに送信し、前記サーバから前記第2のキーワードに対応する検索結果ページである第2の検索結果ページのリソースを返す過程において、返されたリソースを第2のコンテナにおいてプリレンダリングする第2のプリレンダリングモジュールと、
ユーザが入力した検索命令を検出すれば、前記検索命令に応答して、現在のキーワードに対応するコンテナ内のリソースを出力する出力モジュールとを含むことを特徴とする、検索装置。
前記サーバから第2の検索結果ページのリソースを返す過程において、前記第2の検索結果ページの第1のリソースが前記第1の検索結果ページの第2のリソースと同じであれば、前記第1のコンテナ内の前記第2のリソースを前記第2のコンテナ内に多重化するリソース多重化モジュールをさらに含むことを特徴とする、請求項8に記載の検索装置。
前記第2のコンテナが多重化されるか又は解放されるときに、前記第2のコンテナには進行中のリソース要求が存在すれば、前記リソース要求と前記第2のコンテナとの関連付けを解除する関連付け解除モジュールをさらに含むことを特徴とする、請求項11に記載の検索装置。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら、本願の例示的な実施例を説明し、理解しやすくするために、様々な詳細を説明するが、これらが単なる例示的なものであると考えるべきである。したがって、本願の範囲及び精神から逸脱することなく、ここで説明された実施例に対して様々な変更及び修正を行うことを、当業者は認識すべきである。同様に、明確さと簡潔さのために、以下の説明では、公知の機能及び構造についての説明を省略する。
【0013】
第1の実施例
図1に示すように、本願の実施例に係る検索方法は、以下のステップ101〜103を含む。
【0014】
ステップ101では、ユーザが入力した第1のキーワードに応答して、第1の検索要求をサーバに送信し、前記サーバから前記第1のキーワードに対応する検索結果ページである第1の検索結果ページのリソースを返す過程において、返されたリソースを第1のコンテナにおいてプリレンダリングする。
【0015】
本願に係る上記第1のキーワード、後述するターゲットキーワード及び第2のキーワードなどの「キーワード」は、いずれもユーザが1回の検索プロセスにおいて検索ボックスに入力した内容であると理解することができる。ユーザが検索命令を入力する場合に、現在の検索ボックス内のキーワードは、検索ワード、クエリワード又はqueryとなる。ここで、1回の検索プロセスは、ユーザによる検索ボックスへのキーワードの入力が開始されてから、ユーザによって検索命令が入力され、かつ検索結果ページが表示されるまでの全プロセスであると理解することができる。
【0016】
本願の実施例に係る検索方法は、検索機能を持つ、携帯電話、タブレット、パーソナルコンピュータ(Personal Computer、PCと略称する)などのクライアントによって実現することができる。
【0017】
従来技術では、ユーザが検索命令を入力し、例えば、検索ボタンをクリックしたりエンターキーをクリックしたりしてこそ、クライアントは、サーバへ検索要求を開始することができる。従来技術とは異なり、本願の実施例では、ユーザがキーワードを入力すると、クライアントは、サーバに検索要求をリアルタイムに送信することができる。
【0018】
通常、1回の検索プロセスにおいて、ユーザがキーワードを入力するプロセスは、動的なプロセスであり、かつ異なるユーザがキーワードを入力するプロセスは人によって異なり、1回の検索プロセスにおいて、ユーザは、キーワードを複数回入力し、即ち、キーワードを複数回入力した後に検索命令を入力する場合があり、キーワードを1回入力し、即ち、キーワードを1回入力した後に検索命令を入力する場合もある。例えば、ユーザは、「李白の郷愁詩」を検索したい場合、検索ボックスに「李白の」、「郷愁」、「詩」を順次入力してもよく、検索ボックスに「李白」、「の」、「郷愁」、「詩」を順次入力してもよく、検索ボックスに「李白の郷愁詩」などを入力してもよい。
【0019】
ユーザが入力した第1のキーワードは、ユーザが入力した1番目のキーワード、又は、ユーザが1回目に入力したキーワードであると理解することができ、即ち、ユーザが1番目のキーワードを入力したことを検出すると、クライアントは、サーバに検索要求を開始することができる。例えば、ユーザが「李白の」を入力した場合、「李白の」を第1のキーワードとしてよい。
【0020】
ユーザが入力した第1のキーワードは、さらに、ユーザが入力した、明確な意味を持つ1番目のキーワードであると理解することができ、該キーワードは、1回目に入力したキーワードであってもよく、複数回入力したキーワードであってもよい。例えば、ユーザが「李」、「白」、「の」...を順次入力する場合、クライアントは、キーワード「李」からサーバに検索要求を開始してもよく、キーワード「李白」から初めてサーバに検索要求を開始してもよい。即ち、第1のキーワードは、1回目に入力されたキーワード「李」であってもよく、明確な意味を持つ1番目のキーワード「李白」であってもよい。
【0021】
もちろん、ユーザが入力した第1のキーワードは、さらに、他の意味を持つキーワードとして理解され得るが、これに対して詳細な説明を省略する。
【0022】
本願の実施例では、ユーザがキーワードを入力する方式は、音声入力であってもよく、テキスト入力であってもよい。
【0023】
該ステップでは、クライアントは、ユーザが入力した第1のキーワードに応答して、第1の検索要求をサーバに送信することができる。サーバは、クライアントが送信した第1の検索要求を受信した後、対応する検索結果ページのリソースである第1の検索結果ページのリソースをクライアントに返すことができる。クライアントは、サーバから返した第1の検索結果ページのリソースを受信し、サーバから第1の検索結果ページのリソースを返す過程において、返されたリソースを第1のコンテナにおいてプリレンダリングし、プリレンダリングしたリソースを第1のコンテナ内にロードすることができる。第1のコンテナは、クライアントによって予め作成されたコンテナであってよく、プリレンダリングしたリソースを記憶することができる。
【0024】
以上より、上記プロセスにより、クライアントが予め検索結果ページのリソースをサーバから取得し、かつプリレンダリングして検索結果ページのリソースをローカルに記憶することを実現する。
【0025】
なお、本願の実施例に係るコンテナは、プリレンダリングコンテナであると理解することができ、ウェブページをロードするコンテナであってもよく、アプレットをロードするコンテナであってもよく、構造化データをロードするコンテナであってもよい。
【0026】
ステップ102では、ユーザが現在のキーワードを第2のキーワードに変更したことを検出すれば、第2の検索要求を前記サーバに送信し、前記サーバから前記第2のキーワードに対応する検索結果ページである第2の検索結果ページのリソースを返す過程において、返されたリソースを第2のコンテナにおいてプリレンダリングする。
【0027】
前述したように、1回の検索プロセスにおいて、通常、ユーザがキーワードを入力するプロセスが動的なプロセスであるため、ユーザは、第1のキーワードを入力した後、キーワードを変更する可能性があり、キーワードを変更する方式は、複数あり、現在のキーワードに新たな内容を追加することであってもよく、現在のキーワードの一部の内容を修正することであってもよく、現在のキーワードを新たなキーワードに置き換えることなどであってもよい。
【0028】
例えば、ユーザがキーワード「李白の」を入力すれば、現在のキーワードが「李白の」であり、ユーザがキーワード「郷愁」をさらに入力すれば、ユーザは、現在のキーワード「李白の」を第2のキーワード「李白の郷愁」に変更する。また、例えば、ユーザがキーワード「李白の」を入力すれば、現在のキーワードは「李白の」であり、ユーザがキーワード「李白の」を「杜甫の」に修正すれば、第2のキーワードは「杜甫の」である。また、例えば、ユーザがキーワード「李百」を入力すれば、現在のキーワードは「李百」であり、ユーザがキーワード「李百」の「百」を「白」に修正すれば、第2のキーワードは「李白」である。
【0029】
該ステップでは、ユーザがどのキーワード入力方式を採用するかに関わらず、1回の検索プロセスにおいて、ユーザが新たなキーワードを入力するたびに、クライアントは、現在のキーワード(即ち、第2のキーワード)に対して新たな検索要求(即ち、第2の検索要求)をサーバへリアルタイムに開始することができる。ユーザが「李白の」、「郷愁」、「詩」を順次入力することを例とすると、ユーザが「李白の」を入力すると、クライアントは、「李白の」の検索要求をサーバへ開始し、ユーザが「郷愁」をさらに入力すると、クライアントは、「李白の郷愁」の検索要求をサーバへ開始し、ユーザが「詩」をさらに入力すると、クライアントは、「李白の郷愁詩」の検索要求をサーバへ開始する。
【0030】
該ステップでは、クライアントは、サーバから返した新たな検索結果ページ(即ち第2の検索結果ページ)のリソースを受信することができ、サーバから第2の検索結果ページのリソースを返す過程において、返されたリソースを第2のコンテナにおいてプリレンダリングし、プリレンダリングしたリソースを第2のコンテナにロードすることができる。第2のコンテナは、クライアントが予め作成したコンテナであってよく、プリレンダリングしたリソースを記憶することができる。
【0031】
以上から、上記プロセスにより、キーワードを入力するプロセスにおいて、クライアントは、予め異なる検索結果ページのリソースをサーバから動的かつリアルタイムに取得し、かつプリレンダリングにより異なる検索結果ページのリソースをそれぞれ異なるコンテナによりローカルに記憶することができる。
【0032】
なお、第2のキーワードとは、ユーザが何回目に入力するキーワードかについて限定するものではなく、2回目に入力するキーワードであってもよく、3回目以上に入力するキーワードであってもよく、毎回変更された後のキーワードは、いずれも第2のキーワードであると理解することができる。
【0033】
キーワードの入力プロセスに係る、動的かつリアルタイムな検索方式をより明確に理解するために、以下、ユーザが検索ボックスに「李白の」、「郷愁」、「詩」を順次入力することを例として説明する。
【0034】
ユーザが検索ボックスに「李白の」を入力すると、クライアントは、「李白の」の検索要求をサーバへ開始し、サーバは、検索結果ページA1のリソースをクライアントに返し、クライアントは、サーバから返した検索結果ページA1のリソースを受信し、かつ検索結果ページA1のリソースをコンテナa1においてプリレンダリングし、プリレンダリングしたリソースB1をコンテナa1にロードする。ユーザが検索ボックスに「郷愁」をさらに入力すると、クライアントは、「李白の郷愁」の検索要求をサーバへ開始し、サーバは、検索結果ページA2のリソースをクライアントに返し、クライアントは、サーバから返した検索結果ページA2のリソースを受信し、かつ検索結果ページA2のリソースをコンテナa2においてプリレンダリングし、プリレンダリングしたリソースB2をコンテナa2にロードする。ユーザが検索ボックスに「詩」をさらに入力すると、クライアントは、「李白の郷愁詩」の検索要求をサーバへ開始し、サーバは、検索結果ページA3のリソースをクライアントに返し、クライアントは、サーバから返した検索結果ページA3のリソースを受信し、かつ検索結果ページA3のリソースをコンテナa3においてプリレンダリングし、プリレンダリングしたリソースB3をコンテナa3にロードする。
【0035】
上記プロセスにより、クライアントは、予め現在のキーワードに対応する検索結果ページのリソースを動的かつリアルタイムに取得し、かつ検索結果ページのリソースを異なるコンテナにおいてプリレンダリングすることにより、プリレンダリング後のリソースを異なるコンテナにロードすることができ、クライアントが予めサーバからの検索結果ページのリソースをローカルに記憶することを実現する。
【0036】
ステップ103では、ユーザが入力した検索命令を検出すれば、前記検索命令に応答して、現在のキーワードに対応するコンテナ内のリソースを出力する。
【0037】
該ステップでは、ユーザが入力した検索命令を検出すると、現在のキーワードに対応する検索結果ページのリソースが対応するコンテナに予めロードされたため、クライアントは、現在のキーワードに対応するコンテナ内のリソースを出力すればよい。
【0038】
ここで、コンテナ内のリソースを出力する具体的なプロセスは、ユーザが入力した検索命令を検出すると、コンテナをバックグラウンドからフォアグラウンドに切り替え、かつコンテナにおいてプリレンダリングされたリソースでページを構成し、ユーザに表示することであってよい。
【0039】
上記検索プロセスを実現するために、
図2に示すように、クライアントに、入力処理モジュールと、ロジック及びパラメータ処理モジュールと、プリレンダリングコンテナ管理モジュールとを設置し、サーバに、検索サービスモジュールを設置することができる。入力処理モジュールは、ユーザが入力した内容へのモニタリングを実現し、かつユーザが入力した内容をロジック及びパラメータ処理モジュールに伝達することができ、プリレンダリングコンテナ管理モジュールは、プリレンダリングコンテナの作成、解放又は多重化を実現することができ、ロジック及びパラメータ処理モジュールは、(1)ユーザが入力したキーワードに基づいて検索要求パラメータの組み合せを行うことと、(2)プリレンダリングコンテナ管理モジュールを呼び出して、対応する検索結果ページのリソースをロードすることと、(3)ユーザが検索行動を決定すると、現在のキーワードに対応するコンテナ内のリソースを出力することと、を実現することができる。検索サービスモジュールは、検索に関連するサービス能力を提供することができる。
【0040】
本願の実施例では、ユーザがキーワードを入力すると、入力したキーワードに対してサーバに検索要求をリアルタイムに提出し、かつサーバから返したリソースをコンテナにおいてプリレンダリングし、入力したキーワードが変化すると、サーバに検索要求をリアルタイムに提出し、かつサーバから返したリソースを別のコンテナにおいてページのプリレンダリングする。このように、ユーザが検索命令を入力すると、現在のキーワードに対応するコンテナ内のリソースが迅速に出力されるため、ユーザは、現在のキーワードに対応する検索結果ページを迅速に取得することができる。従来技術に比べて、本願は、検索の応答速度を向上させ、ユーザの待ち時間を短縮することができる。
【0041】
検索結果ページについて、ページリソースのサイズが、通常、MBレベルであり、リソースの個数が通常、百レベルに達するため、ネットワークリソースの消費を節約し、かつコンテナにおけるリソースのプリレンダリングに費やされる時間及びリソースをさらに削減するために、上記検索方法を基に、本願の実施例は、以下のようなマルチリソース多重化ポリシーをさらに提供する。
【0042】
好ましくは、前記方法は、
前記サーバから第2の検索結果ページのリソースを返す過程において、前記第2の検索結果ページの第1のリソースが前記第1の検索結果ページの第2のリソースと同じであれば、前記第1のコンテナ内の前記第2のリソースを前記第2のコンテナ内に多重化することをさらに含む。
【0043】
該実施形態に係るマルチリソース多重化ポリシーについて、具体的には、第2の検索結果ページに第1の検索結果ページと同じであるリソースが存在すれば、クライアントは、ネットワーク要求を繰り返して行う必要がなく、同じリソースをローカル多重化することができる。このように、一方では、同じリソースに対して、クライアントは、リソースに対するネットワーク要求をサーバに複数回送信する必要がなく、サーバは、同じリソースに対するネットワーク要求に基づいてリソースを複数回返す必要がないため、ネットワークリソースの消費を節約することができる。他方では、同じリソースを異なるコンテナにおいて複数回プリレンダリングする必要がないため、コンテナにおけるリソースのプリレンダリングに費やされる時間及びリソースを減らすことができる。したがって、マルチリソース多重化ポリシーを採用することにより、本願の実施例は、全体的なリソース消費を低減するとともに、検索の応答速度をさらに向上させ、ユーザの検索体験をさらに向上させることができる。
【0044】
該マルチリソース多重化ポリシーを実現するために、
図2に示すように、クライアントにネットワーク共有管理モジュールをさらに設置することができ、該ネットワーク共有管理モジュールは、検索プロセスにおける全てのリソース要求を一括管理し多重化することができる。該実施形態では、異なるリソースの、url、header、bodyなどの要求パラメータに基づいて、異なるリソースが同じであるか否かを決定することができる。
【0045】
マルチリソース多重化ポリシーは、サーバから取得されたリソース(即ち、リソースの多重化)に適用されてもよく、サーバから取得されているがまだ取得済みではないリソース(即ち、リソース要求の多重化)に適用されてもよい。サーバから取得されたリソースについて、第1のコンテナ内のリソースを第2のコンテナに多重化することができれば、第1のコンテナ内の該リソースを第2のコンテナに直接多重化すればよい。リソース要求の多重化について、以下のような実施形態を採用することができる。
【0046】
好ましくは、前記第1のコンテナ内の前記第2のリソースを前記第2のコンテナ内に多重化することは、
前記第2のリソースがリソース要求状態にあれば、前記第2のリソースのリソース要求と前記第2のコンテナとの関連付けを確立することと、
前記第2のリソースが前記第1のコンテナにロードされた場合、前記第2のリソースを前記第2のコンテナ内に多重化することと、を含む。
【0047】
該実施形態では、第1のコンテナ内の第2のリソースが要求中であり、また、第2のコンテナによって依存されば、第2のコンテナが該リソースに対する要求について現在の第1のコンテナ内の動作中のリソース要求を多重化し、第2のコンテナと該リソース要求の関連付けを確立することができ、該リソース要求が完了した後、関連付けられる第2のコンテナに通知され、かつ該リソースを第2のコンテナに多重化する。具体的に、リソース要求が完了すると、キャッシュ時間、HTTPのHeaderなどの制御パラメータを含む、関連するデータをキャッシュし、かつ関連するデータと、対応するサーバから返された制御パラメータとを、依存されるコンテナに直接返すことができる。
【0048】
上記マルチリソース多重化ポリシーを採用することにより、リソースの多重化を実現するだけでなく、リソース要求の多重化を実現し、全体的なリソース消費を最大限に低減し、かつ検索の応答速度を最大限に向上させることができる。
【0049】
予め作成されたコンテナの数は一般的に限られているため、本願の実施例は、次のようなコンテナ多重化ポリシーをさらに提供する。
【0050】
好ましくは、前記サーバから第2の検索結果ページのリソースを返す過程において、返されたリソースを第2のコンテナにおいてプリレンダリングすることは、
予め作成されたコンテナが全て占有されれば、前記予め作成されたコンテナから第2のコンテナを選択して多重化し、前記サーバから第2の検索結果ページのリソースを返す過程において、返されたリソースを第2のコンテナにおいてプリレンダリングする。
【0051】
該実施形態では、予め作成されたコンテナが全て占有されれば、占有されているコンテナから、あるコンテナを選択して多重化することにより、検索プロセス中に予め作成されたコンテナをより好適に利用することを確保することができる。コンテナが多重化されるにつれて、コンテナに以前にロードされたリソースは廃棄されたり解放されたりすることができる。
【0052】
コンテナの多重化は、先入れ先出し又は最近使用されていないというアルゴリズムで実現することができ、クライアントにコンテナa1、コンテナa2及びコンテナa3が予め作成され、コンテナa1がまず占有され、コンテナa2がその後に占有され、コンテナa3が最後に占有されると仮定すると、現在、新たなキーワードの検索要求が生成されれば、このときに全てのコンテナが既に占有されるため、コンテナa1を現在のキーワードの検索要求に多重化することができる。
【0053】
好ましくは、前記方法は、
前記第2のコンテナが多重化されるか又は解放されるときに、前記第2のコンテナには進行中のリソース要求が存在すれば、前記リソース要求と前記第2のコンテナとの関連付けを解除することをさらに含む。
【0054】
該実施形態では、コンテナが多重化されるか又は解放されるときに、該コンテナと該コンテナで最初に生成されたリソース要求は、関連付けが解除されるだけであり、コンテナの多重化又は解放に伴って廃棄されたり解放されたりしない。したがって、該コンテナで最初に生成されたリソース要求は、また該リソース要求を必要とするコンテナに多重化することができる。該実施形態は、リソース要求の個別管理を実現し、リソース要求の多重化可能性を向上させることにより、全体的なリソース消費を最大限に低減し、かつ検索の応答速度を最大限に向上させることができる。
【0055】
なお、コンテナの多重化とリソースの多重化は、意味が異なり、コンテナの多重化は、占有されたコンテナを再使用することであり、コンテナの廃棄及び再使用を示す一方で、リソースの多重化は、同じリソースを異なるコンテナにロードすることであり、リソースの複数回の使用を示す。
【0056】
好ましくは、前記第2のコンテナには進行中のリソース要求が存在すれば、前記リソース要求と前記第2のコンテナとの関連付けを解除することは、
前記第2のコンテナには進行中のリソース要求が存在し、かつ前記進行中のリソース要求が第3のコンテナに多重化されるか又は多重化可能であれば、前記リソース要求と前記第2のコンテナとの関連付けを解除することを含む。
【0057】
該実施形態では、リソース要求が複数のコンテナによって依存されるか、又は複数の容器によって依存されてよければ、いずれかの容器が多重化されるか又は解放されるときに、該リソース要求と該コンテナとの関連付けのみを解除し、このように、他のコンテナは、該リソース要求の多重化を継続することができるため、全体的なリソース消費を最大限に低減し、かつ検索の応答速度を最大限に向上させることができる。
【0058】
全体的な技術手段をよりよく理解するために、以下、
図3に示す例を挙げて説明する。
【0059】
図3に示すように、ユーザは、検索ボックスに「李白の」、「郷愁」、「詩」を順次入力し、それぞれキーワード「李白の」、「李白の郷愁」、「李白の郷愁詩」に対応する。
【0060】
「李白の」に対応する検索結果ページのリソースは、リソースx1、リソースy1、リソースi、リソースj、リソースqを含み、「李白の郷愁」に対応する検索結果ページのリソースは、リソースx2、リソースy2、リソースi、リソースj、リソースqを含み、「李白の郷愁詩」に対応する検索結果ページのリソースは、リソースx3、リソースy2、リソースi、リソースj、リソースqを含む。
【0061】
すると、リソースx1、リソースy1、リソースi、リソースj、リソースqを含む「李白の」に対応する検索結果ページのリソースをコンテナa1においてプリレンダリングすることができ、コンテナa1内のリソースi、リソースj、リソースqをコンテナa2において多重化し、かつリソースy2をコンテナa2においてプリレンダリングすることができ、コンテナa1内のリソースi、リソースj、リソースqをコンテナa3において多重化し、かつリソースy2をコンテナa2内においてプリレンダリングすることができる。
【0062】
さらに、コンテナa1内のリソースi、リソースj、リソースqをコンテナa2において多重化する場合、コンテナa1内のリソースiが既にサーバから取得されれば、コンテナa2は、コンテナa1内のリソースiを直接多重化することができ、コンテナa1内のリソースj及びリソースqがまだサーバから取得されていなければ、リソースj、リソースqのリソース要求とコンテナa2との関連付けを確立し、リソースj、リソースqがサーバから取得された後、リソースj、リソースqをコンテナa2に多重化することができる。
【0063】
それに対応して、コンテナa1内のリソースi、リソースj、リソースqをコンテナa3において多重化する場合、コンテナa1内のリソースi、リソースjが既にサーバから取得されれば、コンテナa3は、コンテナa1内のリソースi、リソースjを直接多重化することができ、コンテナa1内のリソースqがまだサーバから取得されていなければ、リソースqのリソース要求とコンテナa3との関連付けを確立し、リソースqがサーバから取得された後、リソースqをコンテナa3に多重化することができる。
【0064】
コンテナa2内のリソースy2をコンテナa3において多重化する場合、コンテナa2内のリソースy2が既にサーバから取得されれば、コンテナa3は、コンテナa2内のリソースy2を直接多重化することができ、コンテナa2内のリソースy2がまだサーバから取得されていなければ、リソースy2のリソース要求とコンテナa3との関連付けを確立し、リソースy2がサーバから取得された後、リソースy2をコンテナa3に多重化することができる。
【0065】
ユーザが検索命令を入力すると、クライアントは、コンテナa3内のリソースを出力することができ、即ち、「李白の郷愁詩」の検索結果ページをユーザに迅速に表示することを実現する。
【0066】
なお、本願に係る検索方法における複数の好ましい実施形態は、互いに組み合わせて実現されてもよく、単独で実現されてもよく、本願はこれを限定しない。
【0067】
本願の上記実施例は、少なくとも以下の利点及び有益な効果を有する。
【0068】
本願では、ユーザがキーワードを入力すると、入力したキーワードに対してサーバに検索要求をリアルタイムに提出し、かつサーバから返したリソースをコンテナにおいてプリレンダリングし、入力したキーワードが変化すると、サーバに検索要求をリアルタイムに提出し、かつサーバから返したリソースを別のコンテナにおいてページのプリレンダリングする。このように、ユーザが検索命令を入力すると、現在のキーワードに対応するコンテナ内のリソースが迅速に出力されるため、ユーザは、現在のキーワードに対応する検索結果ページを迅速に取得することができる。従来技術に比べて、本願は、検索の応答速度を向上させることができる。
【0069】
第2の実施例では、
図4に示すように、本願に係る検索装置200は、
ユーザが入力した第1のキーワードに応答して、第1の検索要求をサーバに送信し、前記サーバから前記第1のキーワードに対応する検索結果ページである第1の検索結果ページのリソースを返す過程において、返されたリソースを第1のコンテナにおいてプリレンダリングする第1のプリレンダリングモジュール201と、
ユーザが現在のキーワードを第2のキーワードに変更したことを検出すれば、第2の検索要求を前記サーバに送信し、前記サーバから前記第2のキーワードに対応する検索結果ページである第2の検索結果ページのリソースを返す過程において、返されたリソースを第2のコンテナにおいてプリレンダリングする第2のプリレンダリングモジュールと、
ユーザが入力した検索命令を検出すれば、前記検索命令に応答して、現在のキーワードに対応するコンテナ内のリソースを出力する出力モジュール203と、を含む。
【0070】
好ましくは、検索装置200は、
前記サーバから第2の検索結果ページのリソースを返す過程において、前記第2の検索結果ページの第1のリソースが前記第1の検索結果ページの第2のリソースと同じであれば、前記第1のコンテナ内の前記第2のリソースを前記第2のコンテナ内に多重化するリソース多重化モジュールをさらに含む。
【0071】
好ましくは、前記リソース多重化モジュールは、
前記第2のリソースがリソース要求状態にあれば、前記第2のリソースのリソース要求と前記第2のコンテナとの関連付けを確立する関連付けサブモジュールと、
前記第2のリソースが前記第1のコンテナにロードされた場合、前記第2のリソースを前記第2のコンテナ内に多重化する多重化サブモジュールと、を含む。
【0072】
好ましくは、第2のプリレンダリングモジュール202は、具体的に、
予め作成されたコンテナが全て占有されれば、前記予め作成されたコンテナから第2のコンテナを選択して多重化し、前記サーバから第2の検索結果ページのリソースを返す過程において、返されたリソースを第2のコンテナにおいてプリレンダリングする。
【0073】
好ましくは、検索装置200は、
前記第2のコンテナが多重化されるか又は解放されるときに、前記第2のコンテナには進行中のリソース要求が存在すれば、前記リソース要求と前記第2のコンテナとの関連付けを解除する関連付け解除モジュールをさらに含む。
【0074】
好ましくは、関連付け解除モジュールは、具体的に、
前記第2のコンテナには進行中のリソース要求が存在し、かつ前記進行中のリソース要求が第3のコンテナに多重化されるか又は多重化可能であれば、前記リソース要求と前記第2のコンテナとの関連付けを解除する。
【0075】
好ましくは、前記コンテナは、
ウェブページをロードするコンテナと、
アプレットをロードするコンテナと、
構造化データをロードするコンテナと、のうちの少なくとも1つを含む。
【0076】
本願に係る検索装置200は、上記検索方法の実施例における各プロセスを実現し、かつ同じ有益な効果を達成することができ、重複を避けるために、ここでは説明を省略する。
【0077】
本願の実施例によれば、本願は、電子機器と可読記憶媒体をさらに提供する。
【0078】
図5に示すように、本願の実施例に係る検索方法を実現する電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、大型コンピュータ、及びその他の適切なコンピュータなどの、様々な形態のデジタルコンピュータを表すことを意図する。電子機器は、また、パーソナルデジタルアシスタント、セルラー電話、スマートフォン、ウェアラブルデバイス及びその他の類似するコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すことができる。本明細書で示されたコンポーネント、それらの接続及び関係と、それらの機能とは、例示的なものに過ぎず、本明細書で説明及び/又は要求された本願の実現を限定することを意図するものではない。
【0079】
図5に示すように、該電子機器は、1つ以上のプロセッサ601と、メモリ602と、高速インタフェース及び低速インタフェースを含む、各コンポーネントを接続するインタフェースと、を含む。各コンポーネントは、異なるバスを介して互いに接続され、かつ共通のマザーボードに取り付けられるか又は必要に応じて他の方式で取り付けられてよい。プロセッサは、電子機器内で実行される、外部入力/出力装置(例えば、インタフェースに結合された表示機器)上にGUIのグラフィック情報を表示するようにメモリ内又はメモリ上に記憶されている命令を含む命令を処理することができる。他の実施形態では、必要があれば、複数のプロセッサ及び/又は複数のバスを、複数のメモリと共に使用することができる。同様に、それぞれが必要な動作を提供する複数の電子機器(例えば、サーバアレイ、ブレードサーバのグループ又はマルチプロセッサシステム)を接続することができる。
図5では、プロセッサ601を例とする。
【0080】
メモリ602は、本願に係る非一時的なコンピュータ可読記憶媒体である。メモリには、少なくとも1つのプロセッサにより実行可能で、本願に係る検索方法を少なくとも1つのプロセッサに実行させる命令が記憶されている。本願の非一時的なコンピュータ可読記憶媒体には、本願に係る検索方法をコンピュータに実行させるコンピュータ命令が記憶されている。
【0081】
メモリ602は、非一時的なコンピュータ可読記憶媒体として、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能プログラム及びモジュール、例えば、本願の実施例における検索方法に対応するプログラム命令/モジュール(例えば、
図4に示す第1のプリレンダリングモジュール201、第2のプリレンダリングモジュール202及び出力モジュール203)を記憶することができる。プロセッサ601は、メモリ602内に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することにより、検索装置の様々な機能アプリケーション及びデータ処理を実行し、上記方法の実施例における検索方法を実現する。
【0082】
メモリ602は、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶可能なプログラム記憶領域と、速度予測方法を実現する電子機器の使用により作成されたデータなどを記憶可能なデータ記憶領域とを含んでよい。また、メモリ602は、高速ランダムアクセスメモリを含んでもよく、少なくとも1つの磁気ディスクメモリ素子、フラッシュメモリ素子、又は他の非一時的な固体メモリ素子などの非一時的なメモリを含んでもよい。いくつかの実施例では、メモリ602は、好ましくは、プロセッサ601に対して遠隔に配置されたメモリを含み、これらのリモートメモリは、ネットワークを介して検索方法のための電子機器に接続することができる。上記ネットワークの例は、インターネット、企業イントラネット、ローカルエリアネットワーク、移動通信ネットワーク及びそれらの組み合わせを含むが、これらに限定されない。
【0083】
検索方法のための電子機器は、入力装置603及び出力装置604をさらに含んでよい。プロセッサ601、メモリ602、入力装置603及び出力装置604は、バス又は他の方式で接続することができ、
図5において、バスによる接続を例とする。
【0084】
入力装置603は、入力された数字又は文字情報を受信すると共に、検索方法のための電子機器のユーザ設定及び機能制御に関連するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、1つ以上のマウスボタン、トラックボール、ジョイスティックなどである。出力装置604は、表示機器、補助照明装置(例えば、LED)及び触覚フィードバック装置(例えば、振動モータ)などを含んでよい。該表示機器は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ及びプラズマディスプレイを含んでよいが、これらに限定されない。いくつかの実施形態では、表示機器は、タッチスクリーンであってよい。
【0085】
本明細で説明されたシステム及び技術の各実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実現することができる。これらの様々な実施形態は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行及び/又は解釈できる1つ以上のコンピュータプログラムにおける実施を含んでよく、該プログラマブルプロセッサは、特定用途向け又は汎用のプログラマブルプロセッサであってよく、記憶システム、少なくとも1つの入力装置及び少なくとも1つの出力装置からデータ及び命令を受信するとともに、データ及び命令を該記憶システム、該少なくとも1つの入力装置及び該少なくとも1つの出力装置に伝送することができる。
【0086】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令を含み、ハイレベル手続き言語及び/又はオブジェクト指向プログラミング言語、及び/又はアセンブリ言語/機械言語で実装することができる。本明細書で使用された「機械可読媒体」及び「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、プログラマブルプロセッサに機械命令及び/又はデータを提供するための任意のコンピュータプログラム製品、機器及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。「機械可読信号」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
【0087】
ユーザとの対話を提供するために、本明細書で説明されたシステム及び技術をコンピュータ上で実施することができ、該コンピュータは、ユーザに情報を表示する表示デバイス(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボードと、ポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、該キーボード及び該ポインティング装置により入力をコンピュータに提供することができる。他のタイプの装置は、ユーザとの対話をさらに提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック又は触覚フィードバック)であってよく、また、任意の形態(音響入力、音声入力又は触覚入力を含む)でユーザからの入力を受信することができる。
【0088】
本明細書で説明されたシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバ)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータであり、ユーザは、該グラフィカルユーザインタフェース又は該ウェブブラウザにより本明細書で説明されたシステム及び技術の実施形態と対話することができる)、又はこのようなバックエンドコンポーネント、ミドルウェアコンポーネント又はフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実装することができる。システムのコンポーネントは、任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)により互いに接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット及びブロックチェーンネットワークを含む。
【0089】
コンピュータシステムは、クライアント及びサーバを含んでよい。クライアントとサーバは、一般的に、互いに離れ、通常、通信ネットワークを介して対話する。クライアントとサーバとの関係は、対応するコンピュータ上で実行し、互いにクライアント−サーバの関係を有するコンピュータプログラムによって生成される。
【0090】
本願の実施例に係る技術手段によれば、ユーザがキーワードを入力すると、入力したキーワードに対してサーバに検索要求をリアルタイムに提出し、かつサーバから返したリソースをコンテナにおいてプリレンダリングし、入力したキーワードが変化すると、サーバに検索要求をリアルタイムに提出し、かつサーバから返したリソースを別のコンテナにおいてページのプリレンダリングする。このように、ユーザが検索命令を入力すると、現在のキーワードに対応するコンテナ内のリソースが迅速に出力されるため、ユーザは、現在のキーワードに対応する検索結果ページを迅速に取得することができる。従来技術に比べて、本願は、検索の応答速度を向上させることができる。
【0091】
上記様々な形態のフローを用いて、ステップを並べ替えたり、追加したり、削除したりすることができることを理解されたい。例えば、本願で開示されている技術手段の所望の結果を達成できる限り、本願に記載された各ステップは、並列して実行されてもよく、順次実行されてもよく、異なる順序で実行されてもよく、本明細書はこれを限定しない。
【0092】
上記具体的な実施形態は、本願の保護範囲を限定するものではない。設計要件及びその他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション及び置換を行うことができることは、当業者に理解されるところである。本願の精神及び原則の範囲内で行われた修正、同等置換、及び改善などは、いずれも本願の保護範囲に含まれるべきである。