例示的方法及びシステムは、シームレスページ付け及び、シームレスページ付けの間の検索の文脈的改善に向けられる。例は、単に、可能な変形例を代表するのみである。明示的にそうでないと述べない限り、コンポーネントと機能はオプションであり、組み合わせられたり、分割されたりすることができ、動作は、シーケンスが異なったり、組み合わせられたり、あるいは、分割されたりすることが出来る。以下の記述においては、説明のために、数々の特定の詳細が述べられ、例示的実施形態の完全な理解のために提供される。しかし、当業者には、本主題は、これらの特定の詳細なしでも実施することが出来ることは明らかであろう。
ユーザは、(例えば、クライアントマシンからの)検索問い合わせを、検索エンジン(例えば、アプリケーションサーバ上で走っている検索アプリケーション)へ提示することが出来る。検索エンジンは、検索問い合わせを処理し、結果の集合を生成することが出来る。検索エンジンは、検索結果の数(あるいは、検索結果のページの数(ページ番号))を決定して、様々な要因の1以上に基づいて、ユーザに提示することが出来る。例示的要因は、その問い合わせを以前に用いた他のユーザによって、購入を行うなどの、アクションが実行される前に、閲覧された検索結果の数;以前の問い合わせを提出した後に、このユーザによって、購入を行うなどのアクションが実行される前に閲覧された検索結果の数などを含む。検索エンジンは、クライアントマシンに、検索結果と共に、検索結果の数あるいはページの数を送信することが出来る。クライアントマシンは、ページ付け制御と共に、結果の部分集合を提示することが出来る。ページ付け制御におけるページの数は、検索エンジンによって決定される、検索結果(あるいは、検索結果のページ)の数に基づくことが出来る。ユーザは、もともと提示されたページ数を超えて、追加の検索結果を閲覧することが許されることが出来る。
検索問い合わせから得られる結果は、スクロール可能なインタフェースにおいて提示されることが出来る。改善の示唆は、また、スクロール可能なインタフェースにおいて提示されることが出来る。改善の示唆は、検索への示唆された変更である。幾つかの例示的実施形態においては、示唆された変更は、追加の検索語句あるいはフィルタを追加すること、検索問い合わせに合致する結果の数を削減することによって、検索を改善する。例えば、初期検索は、「靴」についてのものであることが出来る。改善の示唆は、特定のブランドの、特定の価格帯の、あるいは、特定の方法(例えば、固定価格あるいはオークション)で販売されている靴に、検索を制限することが出来る。
例えば、ユーザが、ページダウンキーあるいは、スクロールバーの下向き矢印を押すたびに、UIに提示される情報はスクロールし、新しい情報が提示されるようにすることが出来る。ユーザは、ページアップキーあるいは、スクロールバーの上向き矢印を押すことにより、反対方向にスクロールすることが出来る。ユーザがスクロールダウンするたびに、新しい情報が、すべての情報が提示されるまで、提示される。情報は、改善の示唆、検索結果を含む、様々なタイプのデータを含むことが出来る。複数のタイプのデータが一緒に提示される場合、あるタイプのすべての情報は、他のタイプのすべての情報が表示される前に、表示されることが出来る。例えば、改善の示唆の価値がある1つあるいは2つのスクリーンは、結果の多くのスクリーンが提示される間に、提示されることが出来る。結果として、ユーザが、改善の示唆の終わりを越えてスクロールダウンすると、検索の結果のみが提示される。スクロール不可なUIエレメントは、改善の示唆を提示するために用いられることが出来る。例えば、改善の示唆は、スクリーン上の位置が固定され、ユーザがスクロールしても動かないようにすることが出来る。同時に、ユーザがスクロールするとき、改善の示唆が有効なまま、新しい結果を表示するように、結果は、スクロール可能UIに提示されることが出来る。
改善の示唆は、スクロール可能インタフェースに最初に提示され、実行されたスクロール量が検出されることができる。スクロール量が閾値を超えると、スクロール不可UIエレメントが表示されることが出来る。ユーザは、反対方向にスクロールすることが出来る。スクロール量が閾値より少ない場合、スクロール不可UIエレメントは、取除かれることが出来る。ユーザがスクロールを続けるに従い、追加のスクロール不可UIエレメントが追加されるように、追加的な閾値が存在してもよい。スクロール不可UIエレメントは、スクロール可能UIエレメントと同様な機能を提供することが出来る。スクロール不可UIエレメントは、動作可能とされることが出来、その結果、スクロール可能UIエレメントで利用可能なオプションを提示する。例えば、スクロール可能エレメントは、2つのスクリーンをカバーすることが出来る。2つのスクリーンは、閾値として設定されることが出来る。ユーザは、第2のスクリーンを超えてスクロールすることが出来る。ユーザが閾値を超えてスクロールすることに基づいて、2つのUIエレメントは、超えてスクロールされた各スクリーンに対応して1つ、提示されることが出来る。UIエレメントのそれぞれは、動作可能とすることが出来、その結果、対応するスクリーンに表示されたオプションを表示する(例えば、マウスクリックに応答するボタンとすることが出来る)。更に、閾値は、提示されたスクロール不可UIエレメントが変更されるように設定されることが出来る。例えば、オプションを表示するように動作可能なボタンは、ユーザが1つの画面をスクロールダウンした後、左側に表示されることが出来る。ボタンは、除去されることができ、オプション自身は、ユーザが第2の画面をスクロールダウンした後に提示されることが出来る。オプションは、ユーザが第3の画面をスクロールダウンした後、画面の左から画面の中央へ移動されることが出来る。
図1は、一例示的実施形態が展開できるクライアント−サーバシステム100を図示するネットワーク図である。ネットワークベースのマーケットプレイスあるいは公開システムの例示的形態における、ネットワーク化されたシステム102は、1以上のクライアントに、ネットワーク104(例えば、インターネットあるいはワイドエリアネットワーク(WAN))を介して、サーバ側機能を提供する。図1は、例えば、各クライアントマシン110及び112上で実行するウェブクライアント106(例えば、ブラウザ)及び、プログラマチッククライアント108を図示する。
アプリケーションプログラムインタフェース(API)サーバ114及び、ウェブサーバ116は、プログラマチックインタフェース及びウェブインタフェースをそれぞれ提供し、1以上のアプリケーションサーバ118に結合される。アプリケーションサーバ118は、1以上のマーケットプレイスアプリケーション120、検索アプリケーション121、及び、支払いアプリケーション122のホストとなる。アプリケーションサーバ118は、また、1以上のデータベース126へのアクセスを促進する1以上のデータベースサーバ124へ結合されていることが示されている。
マーケットプレイスアプリケーション120は、ネットワーク化されたシステム102へアクセスするユーザに、多くのマーケットプレイス機能及びサービスを提示することが出来る。検索アプリケーション121は、ネットワーク化されたシステム102にアクセスするユーザに、複数の検索機能及びサービスを提供することが出来る。検索アプリケーション121は、ユーザが、問い合わせを提出可能とし、問い合わせに応答して結果を受信することが出来るようにすることが出来る。検索アプリケーション121は、マーケットプレイスアプリケーション120にリンクされることが出来、その一部となることが出来る。従って、検索は、マーケットプレイスアプリケーション120を介して、販売アイテムを見つけるために、検索アプリケーション121によって実行されることが出来る。
支払いアプリケーション122は、同様に、複数の支払いサービス及び機能を、ユーザに提供することが出来る。支払いアプリケーション122は、ユーザが、アカウントに値(例えば、USドルのような商業通貨あるいは、「ポイント」などの私設通貨)を蓄積し、後に、マーケットプレイスアプリケーション120を介して利用可能な、製品(例えば、商品あるいはサービス)のために、蓄積された値を償還することを可能とすることが出来る。マーケットプレイス、検索、及び支払いアプリケーション120、121、及び122は、それぞれがネットワーク化されたシステム102の一部をなすよう、図1に示されているが、別の実施形態においては、検索アプリケーション121は、ネットワーク化されたシステム102とは分離された、別の検索サービスの一部を形成することが出来ることは理解されるだろう。同様に、支払いアプリケーション122は、ネットワーク化されたシステム102とは分離された、別の支払いサービスの一部を形成することが出来る。
更に、図1に図示されたシステム100は、クライアント−サーバアーキテクチャを用いているが、本発明は、もちろん、そのようなアーキテクチャには限定されず、例えば、分散、あるいは、ピアツーピア、アーキテクチャシステムにも同様に良く応用することが出来る。様々なマーケットプレイス、検索及び支払いアプリケーション120、121、及び122は、また、必ずしもネットワーク機能を有していないスタンドアロンのソフトウェアプログラムとして実装されることも出来る。
ウェブクライアント106は、ウェブサーバ116によってサポートされるウェブインタフェースを介して、様々なマーケットプレイス、検索及び支払いアプリケーション120、121及び122にアクセスする。同様に、プログラマチッククライアント108は、APIサーバ114によって提供される、プログラマチックインタフェースを介して、マーケットプレイス、検索、及び支払いアプリケーション120、121、及び122によって提供される様々なサービス及び機能にアクセスする。プログラマチッククライアント108は、例えば、販売者が、オフラインで、ネットワーク化されたシステム102上のリスティングを、生成し、管理することができるように、そして、プログラマチッククライアント108とネットワーク化されたシステム102の間のバッチモードの通信を実行することが出来るように、販売者アプリケーション(例えば、カリフォルニア州、サンホセのeBay Inc.,によって開発されたTurboListerアプリケーション)とすることが出来る。
クライアントマシン110あるいは112は、ユーザに情報を提示することが出来る。例えば、クライアントマシン110は、ウェブページを提示するウェブブラウザを実行することが出来る。ユーザは、クライアントマシン110に検索問い合わせを示すことが出来る。例えば、ユーザは、テキストフィールドに検索問い合わせをタイピングし、同様な、あるいは、関連するアイテムを検索するために、アイテムを選択し、同様な、あるいは、関連するアイテムを検索するために、画像をアップロードし、あるいは、これらの任意の適切な組み合わせをすることが出来る。1つのアイテムは、相互の差し替えである場合、他のものと同様である。例えば、1つのテレビジョンは、他のテレビジョンと同様であることが出来る。1つのアイテムは、それらが共に動作する、あるいは、しばしば一緒に購入されるのであれば、他のものに関連する。例えば、ピーナッツバターは、ゼリーに関連し、一般的なリモコン(ユニバーサルリモートコントロール)は、テレビジョンに関連することが出来る。
クライアントマシン110あるいは112は、検索アプリケーション121を実行するアプリケーションサーバ118に、検索問い合わせを提出することが出来る。アプリケーションサーバ118は、アイテムデータベース(例えば、データベース126)に、検索問い合わせを提出することが出来る。アプリケーションサーバ118は、クライアントマシン110あるいは112に、検索問い合わせの結果を送信し返すことが出来る。幾つかの例示的実施形態においては、検索問い合わせの結果の部分集合は、クライアントマシン110あるいは112に送信される。部分集合内のアイテムの数は、クライアントマシン110あるいは112の表示にフィットするアイテム数、クライアントマシン110あるいは112上の利用可能なメモリ、検索問い合わせを提出した後の、平均的ユーザによって閲覧されるアイテム数、他の検索問い合わせを提出した後にこのユーザによって閲覧されるアイテム数、あるいは、これらの任意の適切な組み合わせに基づくことが出来る。クライアントマシン110あるいは112は、結果の追加的なページを選択するように動作可能なページ付け制御と共に、結果の最初のページを提示することが出来る。結果の追加のページの1以上は、クライアントマシン110あるいは112によって、アプリケーションサーバ118から予めロードされていることが出来る。予めロードされた追加的結果のページ数は、クライアントマシン110あるいは112上の利用可能なメモリ、検索問い合わせを提出後に平均的ユーザによって閲覧されるアイテム数、他の検索問い合わせを提出後に、このユーザによって閲覧されるアイテム数、あるいは、これらの任意の適切な組み合わせに基づくことが出来る。検索問い合わせを提出後に平均的ユーザによって閲覧されるアイテム数は、ユーザによって実行された以前の検索と、その後のユーザの行動を解析することにより、検索アプリケーション121を実行するアプリケーションサーバ118によって決定されることが出来る。平均的ユーザによって閲覧されるアイテム数の計算は、図2を参照して、より詳細に以下に説明される。
図1は、また、APIサーバ114によって提供されるプログラマチックインタフェースを介して、ネットワーク化されたシステム102にプログラマチックアクセスを有するとして、第三者サーバマシン130上で実行される第三者アプリケーション128を図示する。例えば、第三者アプリケーション128は、ネットワーク化されたシステム102から取得される情報を利用して、第三者によってホストされるウェブサイト上の1以上のフィーチャあるいは機能をサポートすることが出来る。第三者ウェブサイトは、例えば、ネットワーク化されたシステム102の関連するアプリケーションによってサポートされる1以上のプロモーション、マーケットプレイス、検索、あるいは、支払いの機能を提供することが出来る。
図2は、幾つかの例示的実施形態による、検索アプリケーション121を実行するアプリケーションサーバ118のコンポーネントを図示するブロック図200である。アプリケーションサーバ118は、(例えば、バス、共有メモリ、スイッチ、あるいは、APIを介して)相互に通信するように構成された、通信モジュール210、ページ付けモジュール220、改善モジュール230、履歴モジュール240及び、問い合わせモジュール250を含むとして、示されている。ここに記述される任意の1以上のモジュールは、ハードウェア(例えば、マシンのプロセッサ)あるいは、ハードウェア及びソフトウェアの組み合わせを用いて、実装されることが出来る。例えば、ここに記述される任意のモジュールは、そのモジュール用にここに記述される動作を実行するようにプロセッサを構成することが出来る。更に、これらのモジュールの任意の2以上は、単一のモジュールに組み合わせられることができ、単一のモジュール用のここに記述される機能は、複数のモジュール間で分割されることが出来る。更に、様々な例示的実施形態によると、ここに記述するモジュールは、単一のマシンデータベース内に実装されるとして、あるいは、デバイスは、複数のマシン、データベース、あるいは、デバイスに渡って分配されることが出来る。
通信モジュール210は、クライアントマシン110あるいは112及びデータベース126との通信を制御することが出来る。通信モジュール210は、また、アプリケーションサーバ118あるいはデータベース126に格納するために、データを送信することも出来る。
ユーザデバイス(例えば、クライアントマシン110あるいはクライアントマシン112)からの検索問い合わせを受信すると、通信モジュール210は、同様な検索問い合わせが過去に提出された場合、ユーザの過去の振る舞いを特定するために、検索問い合わせを履歴モジュール240に送信することが出来る。例えば、アイテムと相互作用(相互やりとり、インタラクト)する前に閲覧されるアイテムの平均数は、検索列に基づいて変化することが出来る。例示すると、ユーザは、iPhone(登録商標)5を買うために探しており、「iPhone(登録商標)5」を検索することが出来る。問い合わせによって生成される結果は、正確に、ユーザが探しているものであるかもしれず、その場合、ユーザは、結果の最初のページの結果と相互作用することを選択することが出来る。この振る舞いが多くのユーザに渡って蓄積されると、「iPhone(登録商標)5」の検索の後であって且つアイテムが相互作用される前に閲覧されるアイテムの平均数は、小さいかもしれない。これとは違って、ユーザは、一足の靴を買うために探していることができ、しかし、どのスタイルがよいか良く分からないかも知れず、あるいは、単に閲覧したいので、「靴」を検索するかもしれない。ユーザは、興味のある一足の靴を見つける前に、結果の数ページを閲覧することが出来る。この振る舞いが、多くのユーザに渡って蓄積されると、「靴」の検索の後であって且つアイテムが相互作用される前に閲覧されるアイテムの平均数は、大きいかもしれない。
この詳細な説明は、アイテムがいつ相互作用を受けるのかを決定することを議論するが、当業者によれば、相互作用の特定の形態が用いられることが出来ることは理解されるであろう。例えば、アイテムとの相互作用(相互やりとり、インタラクション)は、アイテムを閲覧すること、アイテムに入札すること、アイテムを購入すること、アイテムに加入すること、及び、ソーシャルネットワーク上でアイテムを共有すること、を含むことが出来る。幾つかの例示的実施形態においては、相互作用の部分集合のみが考慮される。例えば、アイテムを購入するだけが、アイテムとの相互作用と考えられることが出来る。更に、相互作用の異なるタイプが、単一の実施形態において考慮されることが出来る。例示すると、例示的実施形態は、現在のユーザによる任意の形態の相互作用を、相互作用と考えることが出来るが、他のユーザによる購入のみを相互作用と考えることが出来る。従って、以下の記述は、しばしば相互作用について言及するが、相互作用のタイプの様々な可能な組み合わせは、本発明の範囲内であると認識されるべきである。
他の例示的実施形態においては、相互作用は、関連性のカテゴリにグループ化され、カテゴリは、表示されるべきページあるいは結果の数の根拠として利用される。カテゴリの例は、ショッピングセッションの終了を示す相互作用とすることが出来る。そのようなカテゴリに含まれることができる相互作用は、例えば、アイテムの購入、異なるアイテムカテゴリについて新規に検索を行なう、ブラウジングセッションを終了する、全く異なるウェブサイトにナビゲートする、などを含むことが出来る。
ページ付けモジュール220は、アイテムが相互作用される前に閲覧された結果の平均数を、結果のページの平均数(結果の平均ページ数)に変換することが出来る。結果のページ数を決定するために用いられるページごとのアイテム数は、すべてのクライアントマシン用の予測平均値などの所定の値とすることができ、あるいは、クライアントマシン110あるいは112からアプリケーションサーバ118へ送信される情報に基づいて決定されることが出来る。例えば、クライアントマシン110あるいは112は、表示デバイスのピクセル高さあるいは、一度に表示されることが出来るアイテム数を送信することが出来る。追加的要因は、図21−23について以下に議論するように、ページごとの結果の数、あるいは、ページ付け制御におけるページ数を決定するために、ページ付けモジュール220によって用いられることが出来る。
改善モジュール230は、どの改善を提示するか、どこに改善オプションを提示するか、いつ改善オプションを提示するか、を決定することができる。例えば、一般改善オプション、文脈ベース改善オプション、及び、ユーザベース改善オプションが提示されることが出来る。文脈ベース改善オプションは、元の問い合わせの文脈に基づいて提示される。例えば、オプションは、問い合わせを生成するために用いられるデバイスの位置の半径10マイル以内で利用可能なアイテムに対する検索結果に限定するために提示されることが出来る。他の例として、オプションは、問い合わせを生成するために用いられるデバイスのオペレーティングシステム上で走るソフトウェアに結果を限定するように、ソフトウェアの検索を改善するために提示されることが出来る。ユーザベース改善オプションは、問い合わせを行うユーザについての知識に基づいて提示される。例えば、オークションベースの販売に嗜好を示すユーザによる以前の検索に基づいて、改善は、現在の結果をオークションベースの販売に限定するために提示されることが出来る。一般改善オプションは、文脈及びユーザ特有のデータとは別の要因に基づいて提示される。改善オプションは、結果と共に、スクローク可能なインタフェースに提示されることが出来る。あるいは、結果の初期提示は、改善オプションを含まないことが出来る。アイテムが相互作用される前に閲覧された結果の平均数、あるいは、アイテムが相互作用される前に閲覧される結果のページの平均数に基づいて、閾値は設定されることが出来る。ユーザが閾値を超えてスクロールすると、スクロール不可改善オプションが提示されることが出来る。追加の閾値は、どの点で、追加の改善オプションが提示されえるか、既に提示された改善オプションは除去されえるか、あるいは、提示された改善オプションの位置は変更されえるか、などが設定されることができる。
スクロール不可な改善オプションを可能にする決定は、同一問い合わせに対する他のユーザのスクロールデータ、異なる問い合わせに対するこのユーザのスクロールデータ、クライアントマシン110のブラウザタイプ、クライアント110あるいは112のデバイスタイプ、クライアントマシン110あるいは112のスクリーン解像度、結果集合、クライアントマシン110あるいは112の位置、セッションの文脈、及び、他の信号に基づくことが出来る。従って、スクロール不可な改善オプションは、問い合わせを提出した他のユーザの以前の振る舞いに基づいて、ある問い合わせを無効とすることが出来る。同様に、スクロール不可な改善オプションは、以前の問い合わせを提出した後のユーザの以前の振る舞いに基づいて、あるユーザについて無効にされることが出来る。
問い合わせモジュール250からの結果は、ページ付けモジュール220によって決定された結果数に制限されることが出来る。通信モジュール210は、ユーザに表示するために、クライアントデバイスに、結果のすべてあるいは部分集合を送ることが出来る。例えば、通信モジュール210は、クライアントデバイスに結果の価値がある2ページを送信することができ、残りの結果は、リクエストがあったときに利用可能とされる。幾つかの例示的実施形態においては、結果は、結果をHTML(HyperText Markup Language )形式で送信するAjaxコマンドによって、クライアントマシン110あるいは112へ送信される。結果は、標準ページ付けモードあるいはシームレスページ付けモードで送信されることが出来る。標準ページ付けモードは、一度に結果の1ページを示し、結果の新しいページが表示されるとき、結果の以前のページはもう示されない。これに対し、シームレスページ付けモードは、ユーザが「シームレスに」あるページから他のページにスクロールするときに、同時にスクリーンに示される、あるページと次のページからの結果を提供する。これは、また、「無限スクロール」としても知られ、連続的にスクロールダウンすることは、表示に新しいアイテムを追加し、従って、ユーザが明示的にアイテムの追加のページをリクエストする必要性を消去する。
アプリケーションサーバ118は、シームレスページ付けを有効とするか否かを決定することが出来る。アプリケーションサーバ118は、通信モジュール210を介して、クライアントマシン110あるいは112の機能を受信することが出来る。この機能は、結果のアイテムの表示あるいは格納に関連することが出来る。例えば、ピクセルあるいはテキストの行で、ディスプレイデバイスの高さ、幅、あるいは面積が提供されることが出来る。これらの値は、ページに表示されることが出来る、アイテムの数を決定するために有効であろう。これらの値は、また、スクロール不可な改善オプションを表示すべきか否か、スクロール不可な改善オプションが提示される前の、スクロールの閾値は何であるべきか、および、どのスクロール不可な改善オプションが提示されるか、を決定するのに有効であろう。
クライアントマシン上で利用可能なメモリの容量は、アプリケーションサーバ118に提供されることが出来る。メモリ値は、プリフェッチされることが出来るアイテム数を決定するのに有用であるだろう。アイテムをプリフェッチすることは、ユーザがそれらを表示する前に、それらを取得することである。プリフェッチされるべきアイテム数は、また、ページ付けモードに基づくことが出来る。通常のページ付けモードにおいては、新規の結果のページ全体が、一度に表示され、結果のページあるいは、複数のページを一度にプリフェッチすることが望ましいだろう。シームレスなページ付けモードにおいては、新規の結果の部分的なページが表示され、部分的なページの結果をプリフェッチすることが望ましいだろう。他の基準は、また、プリフェッチすべき結果の数、結果がプリフェッチされる頻度、あるいは、その両方を決定するために用いられることが出来る。例えば、特定のユーザが、結果をスクロールする速度が用いられることが出来る。結果をより迅速にスクロールする傾向のあるユーザに対しては、一度により多くの結果をプリフェッチし(あるいは、より頻繁に結果をプリフェッチし)、ユーザが、結果がロードされるのを待つ必要がある可能性を減少することは利益のあることであろう。同様に、以前のユーザが同様な問い合わせの結果をスクロールした速度を使うことが出来る。より速いスクロールをしばしば促進する問い合わせに対しては、一度により多くの結果をプリフェッチし(あるいは、より頻繁に結果をプリフェッチし)、ユーザが、ロードすべき結果を待つ必要がある可能性を減少することは利益のあることであろう。幾つかの例示的実施形態においては、結果は、デフォルトで、一度に1ページプリフェッチするが、より迅速にスクロールするユーザに対して、あるいは、より速いスクロールとなる問い合わせに対して、一度に2あるいは3ページプリフェッチする。
図3は、幾つかの例示的実施形態による、シームレスなページ付けを実行するクライアントマシン110あるいは112のコンポーネントを図示するブロック図である。クライアントマシン110あるいは112は、(例えば、バス、共有メモリ、スイッチ、あるいは、APIを介して)相互に通信するように構成された、通信モジュール310、ページ付けモジュール320、改善モジュール330、機能モジュール340、UIモジュール350、を含むとして示されている。ここに記述される任意の1以上のモジュールは、ハードウェア(例えば、マシンのプロセッサ)あるいは、ハードウェアとソフトウェアの組み合わせを用いて、実装されることが出来る。例えば、ここに記述される任意のモジュールは、そのモジュールについてここに記述される動作を実行するプロセッサを構成することが出来る。更に、これらのモジュールの任意の2以上は、単一のモジュールに組み合わされることができ、単一のモジュールに対する、ここに記述される機能は、複数のモジュール間で分割されることが出来る。更に、様々な例示的実施形態によると、単一のマシン、データベース、あるいはデバイス内に実装されるとして、ここに記述されるモジュールは、複数のマシン、データベースあるいはデバイスに渡って分散されることが出来る。
通信モジュール310は、アプリケーションサーバ118からの結果を受信することが出来る。通信モジュール310は、また、ページ付け制御において、表示されるべきページ数を受信することが出来る。幾つかの例示的実施形態において、通信モジュール310は、ページ付け制御において、表示すべきアイテム数を受信し、アイテムをページに変換することは、クライアントマシン110あるいは112上で実行される。
通信モジュール310は、また、スクロール不可な改善オプションを表示する前に、スクロール可能なインタフェースにおいて表示すべきページあるいはアイテムの数を受信することが出来る。幾つかの例示的実施形態においては、通信モジュール310は、スクロール不可な改善オプションを表示する前に表示すべきアイテムの数を受信し、アイテムをページに変換することは、クライアントマシン110あるいは112上で実行される。
通信モジュール310は、結果の表示が始まる前に、ページ付けモジュールにおいて示されるすべてのページの結果を受信することができ、結果をユーザがスクロールするに従い、新しい結果を受信することができ、あるいは、その両方が可能である。例えば、結果の2ページ分は、最初、アプリケーションサーバ118から送信されることが出来る。ユーザが結果の第2のページを閲覧し始めると、通信モジュール310は、追加の結果に対するリクエストをアプリケーションサーバ118に送信することができ、追加の結果を受信することが出来る。例えば、通信モジュール310は、結果の次のページを受信することが出来る。結果をプリフェッチすることは、追加の結果を見る決定と、それらの結果の提示との間にユーザが待たなくてはならない時間を減少することにより、より良いユーザ経験を提供することが出来る。
通信モジュール310は、結果の表示が始まる前に、すべての閾値と対応するスクロール不可な改善オプションを受信することができ、ユーザが結果をスクロールするに従い、新しい閾値と対応するスクロール不可な改善オプションを受信することができ、あるいは、その両方が可能である。例えば、ある閾値と対応するスクロール不可な改善オプションは、最初、アプリケーションサーバ118から送信されることが出来る。ユーザが第1の閾値を超えてスクロールすると、通信モジュール310は、追加の閾値と対応する改善オプションのリクエストをアプリケーションサーバ118に送信することが出来、追加の閾値と対応する改善オプションを受信することが出来る。例えば、通信モジュール310は、次の閾値と対応する改善オプションとを受信することが出来る。
ページ付けモジュール320が、ユーザが、現在のページ付け範囲を超えて(例えば、アプリケーションサーバ118によって表示用に示されたアイテムの最後を越えて)、スクロールしようとしていることを検出すると、ページ付けモジュール320は、ユーザが、更なる結果を閲覧することを防止する、あるいは、ユーザが追加の結果を見続けることを可能とすることが出来る。ユーザが、追加の結果を閲覧することを防止するか否かによらず、通知が提示され得、ユーザに、最も関連した結果が既に提示されていることを示唆することが出来る。この通知は、ユーザが更なる結果を見たいことの確認をリクエストすることが出来る。幾つかの例示的実施形態においては、ページ付けモジュール320は、UIモジュール350に、現在のページ数を、同一サイズの数の次の集合に置き換えさせる。例えば、現在のページリストが1、2、3であり、ユーザが追加の結果を見たい場合、ページリストは、4、5、6に更新されることが出来る。別の実施形態においては、ページ付けモジュール320は、UIモジュール350に、現在のページリストを同一サイズとしつつ、現在のページリストをインクリメントあるいはデクリメントさせる。例えば、現在のページリストが1、2、3で、ユーザが、追加の結果を見たい場合、ページリストは、2、3、4に更新されることが出来る。更に他の実施形態においては、ページ付けモジュール320は、UIモジュール350に、現在のエレメントをそのままにしつつ、ページリストに新規のページを追加させる。例えば、現在のページリストが1、2、3であり、ユーザが追加の結果を見たい場合、ページリストが、1、2、3,4に更新されることが出来る。新しいページの結果は、上記したようにプリフェッチされることができ、あるいは、ユーザが、現在のページ付け範囲の一部でないページをリクエストするのに応答して、フェッチされることが出来る。
改善モジュール330が、ユーザが、最終閾値を超えて(例えば、アプリケーションサーバ118によって示された閾値の最後を越えて)、スクロールしようとしていることを検出した場合、改善モジュール330は、通知を提示し、ユーザに、改善オプションの選択が有用であることを示唆することが出来る。この通知は、ユーザが、改善オプションを適用することなく、更なる結果を見たいことの確認をリクエストすることが出来る。
機能モジュール340は、また、結果の集合を閲覧するために用いられるウェブブラウザを特定することが出来る。アプリケーションサーバ118は、あるオプションを有効にする、あるウェブブラウザがあるオプションにアクセスするのを防止する、あるいは、その両方を可能とするために、あるウェブブラウザを要求することが出来る。例えば、機能モジュール340は、シームレスページ付けをサポートしないブラウザを特定することが出来る。この場合には、サーバは、検索問い合わせに、デフォルトページ付け形式で提示されるべきデータで応答することが出来る。機能モジュール340は、また、リスト画面あるいは、ギャラリー画面などの結果の画面タイプを特定することが出来る。リスト画面においては、アイテムのリストが示される。ギャラリー画面においては、アイテムの2次元アレイが示される。アプリケーションサーバ118は、リスト画面、ギャラリー画面、その両方、あるいは、どっちでもない、シームレスページ付けをサポートすることが出来る。機能モジュール340は、ページごと(ページあたり)のアイテムの数を特定することが出来る。アプリケーションサーバ118は、ページごとのアイテムが、閾値(例えば、50)より小さい、閾値(例えば、5)より大きい、あるいは、指定の範囲内(例えば、5−50)であるとき、シームレスページ付けをサポートすることが出来る。機能モジュール340は、アイテムが表示されるべきソートタイプを特定することが出来る。例えば、アイテムは、関連性、日付、価格、ユーザへの近さ、あるいは、これらの任意の適切な組み合わせによってソートされることが出来る。アプリケーションサーバ118は、あるソートタイプ用であって、他のものではないシームレスページ付けをサポートすることが出来る。幾つかの例示的実施形態においては、機能モジュール340は、ページ上に表示されることが出来るアイテム数を決定し、アプリケーションサーバ118に伝送するために、通信モジュール310にそのデータを提供する。
機能モジュール340は、スクロール不可なエレメントをサポートしないブラウザを特定することが出来る。この場合、サーバは、スクロール不可な改善オプションを使用することなく、提示されるべきデータで、検索問い合わせに応答することが出来る。アプリケーションサーバ118は、リスト画面、ギャラリー画面、その両方、あるいは、いずれでもない、スクロール不可な改善オプションをサポートすることが出来る。アプリケーションサーバ118は、ページごとのアイテムが、閾値(例えば、50)より少ない、閾値(例えば、5)より多い、あるいは、指定の範囲(例えば、5−50)内であるとき、スクロール不可な改善オプションの提示をサポートすることが出来る。アプリケーションサーバ118は、あるソートタイプ用であって、他のものではない、スクロール不可な改善オプションをサポートすることが出来る。
UIモジュール350は、検索問い合わせを提出するように動作可能なUIをユーザに提示することが出来る。通信モジュール310は、検索問い合わせを、検索アプリケーション121を実行するアプリケーションサーバ118に提出することが出来る。機能モジュール340は、通信モジュール310によって、アプリケーションサーバ118へ伝送するために、クライアントマシン110あるいは112の機能を特定することが出来る。機能は、結果アイテムの表示あるいは格納に関連することが出来る。例えば、ピクセルあるいはテキストの行での、ディスプレイデバイスの高さ、幅、あるいは、面積が提供されることが出来る。他の例として、以下の任意の組み合わせが提供されることが出来る:利用可能なメモリの容量、結果の集合を閲覧するために用いられるウェブブラウザ、結果の画面タイプ(例えば、リスト画面あるいはギャラリー画面)、ページごとのアイテム数、及び、アイテムが表示されるべきソートタイプ。
UIモジュール350は、ページ付けモジュール320によって生成されるページ付け制御と共に、結果の最初のページを表示することが出来る。ユーザは、結果をスクロールすることが出来る。ページ付けモジュール320は、スクリーンが新規ページを示し始めたとき、スクリーンが古いページより多くの新規のページを示しているとき、あるいは、スクリーンが、もはや古いページを示していないとき、を検出することが出来る。これらのイベントの任意のものに基づいて、ページ付けモジュール320は、古いページはもはや現在のページではないこと、及び、新規のページが、今は現在のページであること、を判断することが出来る。UIモジュール350は、新規の現在のページを示すために、ページ付け制御を更新することが出来る。
UIモジュール350は、ページ付けモジュール320によって生成されるページ付け制御と共に、結果の最初のページを表示することが出来る。ユーザは、結果をスクロールすることが出来る。改善モジュール330は、ユーザが閾値を超えてスクロールしたときを検出することが出来る。このイベントに基づいて、改善モジュール330は、スクロール不可な改善オプションを提示することを決定することが出来る。UIモジュール350は、スクロール不可な改善オプションを表示するために、UIを更新することが出来る。
幾つかの例示的実施形態においては、一意の識別子(UID)が、各ページに用いられる。表示される各アイテムの高さは、既知であることが出来る(例えば、高さは、112ピクセルとすることが出来る)。各ページの高さは、各アイテムの高さと、各ページのアイテム数から計算されることが出来る。例えば、48個のアイテムが、各ページにあり、各アイテムの高さが112ピクセルである場合、ページの高さは、5376ピクセルとすることが出来る。(例えば、以下に説明する、図4の次のページ矢印440を押すことによって)ユーザが次のページへ移動したいとき、空のHTML DIV は、ページの高さで生成されることが出来る。Ajax を呼び出すことは、新規のページのデータをリクエストするために、アプリケーションサーバ118になされる。アプリケーションサーバ118によって送信されるデータは、HTMLセッションストレージに格納されることが出来る。他のページからのデータは、同様に、セッションストレージから消去されることが出来る。例えば、現在、以前、及び、次のページのデータが格納されることができ、任意の他のページのデータは、セッションストレージから取除かれることが出来る。幾つかの例示的実施形態において、ユーザが、データがまだロードされていないページに向かってスクロールするとき、そのページのデータは、ユーザが、新規のページから閾値距離内に入ったときにロードされる。例えば、ページは、スクリーンより大きく、ユーザは、最初、最初のページの一部のみを見るようにされることが出来る。ユーザは、ある距離をスクロールダウンし、依然、最初のページの中ほどまでしか来ていないことがある。ユーザは、それから、最初のページの終わり近くまでスクロールし、2番目のページのロードを開始することができる。閾値距離は、ピクセル(例えば、1000ピクセル)、アイテム(例えば、10アイテム)、あるいは、これらの任意の適切な組み合わせによって、測定されることが出来る。
図4は、幾つかの例示的実施形態による、シームレスなページ付け用のUIのスクリーン図400を示す。テキスト入力フィールド410は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力できるようにする。アイテム420は、検索問い合わせに応答したアイテムである。ページインジケータ430は、現在のページを指し示し、現在のページ範囲内に他のページを表示する。矢印440は、ユーザが、ページごとの結果の集合を一度に前後に移動することを可能とする。ページ付けツールは、ページインジケータ430と矢印440を含む。スクロールツール450は、ユーザが、一度に結果の集合を行ごとに前後に移動することを可能とする。スクリーン図400は、ページインジケータ430によって示される最初のページに、最初の16個のアイテム420が表示されていることを示す。
図5は、幾つかの例示的実施形態による、シームレスページ付け用のUIのスクリーン図500を示す。テキスト入力フィールド510は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。(9−24とラベル付けされる)アイテム520は、ユーザが、スクリーン図400に対し、2行スクロールダウンした後、表示される。ページインジケータ530は、これが、依然ページ1であると考えられることを示す。ページインジケータ530、矢印540、及びスクロールツール550は、スクリーン図400の対応するエレメントに関して、実質的に上述したようである。
図6は、幾つかの例示的実施形態による、シームレスページ付け用のUIのスクリーン図600を示す。テキスト入力フィールド610は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。(13−28とラベル付けされる)アイテム620は、ユーザが、スクリーン図500に対し、追加の行スクロールダウンした後、表示される。ページインジケータ630は、今、現在のページがページ2であることを指し示す。ユーザが、ページ1にスクロールバックすることを選択した場合、ページ1のアイテムは、セッションストレージから取得されることが出来る。ユーザは、ページインジケータ630に示されるページ番号を選択することが出来る。そのような選択に応答して、ページ付けツールは、選択ページにジャンプしてアイテムを表示させることが出来る。空のスペースは、スキップされたページを表すために生成されることが出来る。例えば、ユーザは、現在ページ2を見ており、ページ6を選択し、スキップされたページ3、4、及び5に対応して空のスペースを生成されることができ、現在の位置は、ページ6の先頭に更新されることが出来る。いくつかの例示的実施形態においては、ページ3−6の1以上が、予めロードされているだろう。これらの実施形態においては、空のスペースは、予めロードされていないページについてのみ生成されることが出来る。ページのピクセル位置は、ピクセルでの各ページの高さに、ページ数を乗算することによって計算されることが出来る。現在のページと、訪れた全ページ数は、セッションストレージに格納されることが出来る。ユーザが、新規のページにスクロールする、あるいは、次のページ矢印を押すとき、現在のページ数と全ページ数は、インクリメントされることが出来る。ユーザが、前のページにスクロールする、あるいは、前のページ矢印を押すとき、現在のページ数は、デクリメントされる。
幾つかの例示的実施形態において、テキスト入力フィールド610は、「スティッキー」あるいは、スクロール不可とし、ユーザがスクロールする、あるいは、結果に渡ってページ付けするに従い、スクリーン上の位置を維持することが出来る。同様に、ページ付けツールは、スティッキーとすることが出来る。ページ付けツールは、また、検索結果の最初のページに戻るように動作可能なエレメント(不図示)を含むことが出来る。ページインジケータ630、矢印640、及びスクロールツール650は、スクリーン図400の対応するエレメントに関して、実質的に上述のようである。
図7は、幾つかの例示的実施形態による、シームレスページ付けに適したUIのスクリーン図700を示す。テキスト入力フィールド710は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。(97−112とラベル付けされる)アイテム720は、例えば、ユーザが、最初の6ページの終わりに届いた後、更なるアイテムを見ることを選択した後、表示される。ページインジケータ730は、現在のページがページ7であることを示し、7−12のページ範囲を提示する。ページインジケータ730、矢印740、及びスクロールツール750は、スクリーン図400の対応するエレメントに関して、実質的に上述したようである。
ユーザは、表示アイテムのうちの1つのアイテムを選択し、アイテムのページを表示させる。アイテムのページを閲覧した後、ユーザは、結果リストに戻るために、あるいは、ブラウザに結果リストに戻らせるために、ウェブブラウザのバックボタンをクリックすることが出来る。デフォルトで、ウェブブラウザは、ページをリロードし、結果リストの先頭を表示することが出来る。ユーザは、ごく最近閲覧したページに戻ることを嗜好することが出来る。幾つかの例示的実施形態においては、ごく最近閲覧されたページは、(例えば、ウェブブラウザのセッションストレージ内、専用アプリケーションのデータ構造内、などに)格納され、ユーザが結果リストに戻った後、ユーザは、結果の先頭ではなく、以前の位置に戻るようにする。以前に閲覧されたページの表示を促進するために、ユーザによって最も最近閲覧されたページのピクセル位置が、現在のページと、セッションストレージからの訪問した全ての数のページにアクセスすることによって決定されることが出来る。空のページは、document.ready() functionにおいて固定の高さを有する空のDIVを生成することによって、DOM(document object model )を用いて生成されることが出来る。現在のページ及び前のページにおけるアイテムのデータは、セッションストレージからアクセスされることが出来る。あるいは、表示されるべきアイテムのデータは、(例えば、Ajax呼び出しを介して)アプリケーションサーバ118から取得されることが出来る。アプリケーションサーバ118からデータを取得するという決定は、セッションストレージからデータが得られないことに基づくことが出来る。ユーザは、結果のページをブックマークするためにウェブブラウザを用いることが出来る。後にブックマークを使用することで、ユーザは、結果の最初のページに戻ることが出来る。
ユーザが、アイテムを閲覧することから結果リストへ戻った後、ユーザによって既に閲覧された結果リスト内のアイテムは、スクリーン上に示されることが出来る。例えば、ユーザが以前に通り過ぎてスクロールしたアイテムは、特定の色の背景、特定の色の枠線、アイコン、チェックボックス、あるいは、それらの任意の適切な組み合わせによって示されることが出来る。ユーザが、詳細を見るために以前に選択したアイテムは、異なる色の背景、異なる色の枠線、異なるアイコン、異なる位置のチェックボックス、あるいは、それらの任意の適切な組み合わせによって示されることが出来る。これらの視覚的インジケータは、ユーザが、同一の場所を閲覧し続け、閲覧された結果が新規の結果あるいは既に見られた結果であるかを認識することを助け、ユーザがより早く、興味のアイテムを見つけるのを助けることが出来る。
図8は、幾つかの例示的実施形態による、シームレスページ付けの間の文脈的改善用のUIのスクリーン図800を示す。テキスト入力フィールド810は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力可能とする。スクロール可能な改善カテゴリ(例えば、スクロール可能な改善カテゴリ860)とスクロール可能な改善オプション(例えば、スクロール可能な改善オプション870)は、改善オプションを有効とするように動作可能とすることが出来る。スクリーン図800は、ページインジケータ830によって示される最初のページに、最初の12個のアイテム820が表示されていることを示している。ページインジケータ830は、現在のページを指し示し、現在のページ範囲内に他のページを表示する。矢印840は、ユーザが、結果の集合を(例えば、一度に1ページ)前後に移動することを可能とする。ページ付けツールは、ページインジケータ830と矢印840を含む。スクロールツール850は、ユーザが、結果の集合を(例えば、一度に1行、あるいは、一度に1ページ)前後に移動可能とする。幾つかの例示的実施形態において、テキスト入力フィールド810は、スクロール不可とし、ユーザが、結果をスクロールする、あるいは、ページ付けするに従い、スクリーン上での位置を維持することが出来る。同様に、ページ付けツールは、スクロール不可とすることが出来る。ページ付けツールは、また、検索結果の最初のページに戻るように動作可能なエレメント(不図示)を含むことが出来る。
図9は、幾つかの例示的実施形態による、シームレスページ付けの間の文脈改善用のUIのスクリーン図900を示す。スクリーン図900は、スクリーン図800のユーザが、3行スクロールダウンした後に提示されることが出来る。テキスト入力フィールド910は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。スクロール可能な改善カテゴリ(例えば、スクロール可能な改善カテゴリ860)とスクロール可能な改善オプション(例えば、スクロール可能な改善オプション870)は、スクリーンから消えることが出来る。他のスクロール可能な改善カテゴリとスクロール可能な改善オプション(例えば、スクロール可能な改善オプション960)は、改善オプションを有効とするように動作可能とされることが出来る。スクリーン図900は、ページインジケータ930によって示される最初のページ上に、(アイテム10−21としてラベル付けされる)アイテム920が表示されていることを示す。ページインジケータ930は、現在のページを指し示し、現在のページ範囲内に他のページを表示する。矢印940は、ユーザが、一度に1ページ、結果の集合を前後に移動可能とする。ページ付けツールは、ページインジケータ930と矢印940を含む。スクロールツール950は、ユーザが、結果の集合を(例えば、一度に1行、あるいは、一度に1ページ)前後に移動することを可能とする。
図10は、幾つかの例示的実施形態による、シームレスなページ付けの間の文脈的改善用のUIのスクリーン図1000を示す。スクリーン図1000は、ユーザが、スクリーン図900に対し、追加的な行をスクロールダウンした後に、(アイテム13−23とラベル付けされる)アイテム1020が表示されることを示す。テキスト入力フィールド1010は、現在の検索問い合わせを示し、ユーザが、新規の検索問い合わせを入力可能とする。スクロール不可な改善カテゴリ(例えば、スクロール不可な改善カテゴリ1060)は、ユーザが閾値を超えてスクロールするのに応答して、UIエレメントとして追加されていることが出来る。ページインジケータ1030は、現在のページを示し、現在のページ範囲内において、他のページを示す。矢印1040は、ユーザが、結果の集合を、一度に1ページ前後に移動することを可能とする。ページ付けツールは、ページインジケータ1030と矢印1040を含む。スクロールツール1050は、ユーザが、結果の集合を(例えば、一度に1行、あるいは、一度に1ページ)前後に移動することを可能とする。
改善オプションではなく、改善カテゴリを提示することの決定は、利用可能な画面サイズに基づくことが出来る。例えば、改善オプションの完全な集合は、スクリーンにフィットしないことがありうる。スクリーンが、すべての改善オプションを保持するのには小さすぎるという決定に基づいて、改善オプションの表示を起こさせるように動作可能な、改善カテゴリが提示されることが出来る。
改善カテゴリを提示する決定は、過去のユーザの振る舞いに基づくことが出来る。例えば、多くの改善オプションを提示されたユーザが、その選択肢の数に圧倒され、むしろ、検索を放棄する場合、より少ない数のカテゴリを提示することは、ユーザにとってより恐ろしくないことがある。過去のユーザの振る舞いは、改善オプションではなく、改善カテゴリを提示されるユーザに対し、より高い相互作用率を示すことによって、これを命令することが出来る。
幾つかの例示的実施形態において、改善カテゴリと改善オプションの両方が提示される。例えば、改善カテゴリは、改善オプションに対し、カテゴリヘッダとして提示されることができ、動作不可能とされることが出来る。他の例として、しばしば用いられるカテゴリは、改善オプションを表示するために拡大されることができ、稀にしか用いられないカテゴリは、カテゴリとして提示されるのみである。過去のユーザ振る舞いは、ある改善カテゴリにおけるオプションで、ユーザに対し、より高い相互作用率を示すことによって、これを命令することが出来る。
図11は、幾つかの例示的実施形態による、シームレスなページ付けの間の文脈的改善用のUIのスクリーン図110を示す。スクリーン図1100は、ユーザが、スクロール不可な改善カテゴリ1160を有効化した(例えば、クリックした)後に、表示されることが出来る。テキスト入力フィールド1110は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力可能とする。UIエレメント1170は、スクロール不可な改善カテゴリ1160の有効化に応答して、表示されることが出来る。UIエレメント1170は、3つの改善オプション(例えば、「改善1A」、「改善1B」、及び「改善1C」)と共に、カテゴリ(例えば、「改善カテゴリ1」)の指示を含む。改善オプションは、指示された改善を検索結果に適用するように動作可能とされることが出来る。例えば、ブランド改善は、検索結果をアイテムの特定のブランドに制限することが出来る。従って、ブランド改善を選択することは、改善された問い合わせについての検索結果を有するスクリーン図400あるいは800が、ユーザに提示されるようにすることが出来る。スクリーン図1100は、(アイテム13−23とラベル付けされる)アイテム1120(スクリーン図1000に示されるものと同一のアイテム)が表示されていることを示す。スクリーン図1000に示されるスクロール不可な改善カテゴリ(例えば、スクロール不可な改善カテゴリ1160)も依然表示されている。幾つかの例示的実施形態において、スクロール不可な改善カテゴリは、隠され、一方、UIエレメント1170は表示される。ページインジケータ1130は、現在のページを示し、現在のページ範囲内に他のページを示す。矢印1140は、ユーザが、結果の集合を、一度に1ページ前後に移動することを可能とする。ページ付けツールは、ページインジケータ1130と矢印1140を含む。スクロールツール1150は、ユーザが、結果の集合を(例えば、一度に1行、あるいは、一度に1ページ)前後に移動することを可能とする。
図12は、幾つかの例示的実施形態による、シームレスなページ付けの間の文脈的改善用のUIのスクリーン図1200を示す。スクリーン図1200は、図9のスクリーン図900を閲覧した後、ユーザが、追加の行だけスクロールダウンした後に、(アイテム13−23とラベル付けされる)アイテム1220が表示されていることを示す。テキスト入力フィールド1210は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力可能とする。スクロール不可な改善カテゴリ(例えば、スクロール不可な改善カテゴリ1260)は、ユーザが閾値を超えてスクロールすることに応じて、UIエレメントとして追加されていることが出来る。図12によって図示されるように、スクロール不可な改善カテゴリ1260は、ページから消えたスクロール可能な改善カテゴリとは異なる位置に配置されることが出来る。図12によって更に図示されるように、「改善カテゴリ3」とラベル付けされる、スクロール不可な改善カテゴリ1260は、ページから消えたスクロール可能な改善カテゴリとは異なるカテゴリとすることが出来る。例えば、スクロール可能な改善カテゴリは、一般的なカテゴリとすることができ、スクロール不可な改善カテゴリ1260は、ユーザあるいは文脈特有であることが出来る。例えば、一般的なカテゴリは、検索結果に基づくことが出来る(例えば、結果の最大の数が属するカテゴリ、あるいは、良く購入される結果の最大の数が属するカテゴリ)。一方、ユーザ特有な改善カテゴリは、ユーザによって適用された以前の改善に基づくことが出来る。例えば、ユーザは、しばしば、値段によって結果をフィルタリングし、$100より少ないコストのアイテムのみを見ることを好むことが出来る。結果として、ユーザベースの改善カテゴリは、価格フィルタのカテゴリからのものとすることができ、これから、ユーザは、価格についての個々の改善を選択することが出来る。同様に、分脈特有な改善カテゴリは、問い合わせの文脈に基づくことが出来る。例えば、問い合わせは、ある場所のモバイルデバイスから発行されることが出来る。結果として、文脈ベースの改善カテゴリは、場所フィルタのカテゴリとすることができ、これから、ユーザは、モバイルデバイスの場所のある距離内の結果についての個々の改善を選択することが出来る。
ページインジケータ1230は、現在のページを指し示し、現在のページ範囲内に他のページを表示する。矢印1240は、ユーザが、結果の集合を一度に1ページ前後に移動することを可能とする。ページ付けツールは、ページインジケータ1230と矢印1240を含む。スクロールツール1250は、ユーザが、結果の集合を(例えば、一度に1行、あるいは、一度に1ページ)前後に移動することを可能とする。
図13のスクリーン図1300は、最初の6ページの最後に達した後、ユーザが更なるアイテムを見ることを選択した後に、(97−111とラベル付けされている)アイテム1320が表示されていることを示す。テキスト入力フィールド1310は、現在の検索問い合わせを示し、ユーザが新規の検索問い合わせを入力することを可能とする。ページインジケータ1330は、現在のページがページ7であることを示し、7−12のページ範囲を提示する。
スクロール不可な改善オプション1360は、ユーザが閾値を超えてスクロールしたことに基づいて、スクロール不可な改善カテゴリ1260から生成されていることが出来る。例えば、スクロール不可な改善カテゴリ1260は、ユーザが、第1の閾値を超えてスクロールしたことに基づいて、提示されていることが出来る。スクロール不可な改善カテゴリオプションは、ユーザが、第2の閾値を超えてスクロールしたことに基づいて、より中心の位置まで、上方に移動されていることが出来る。スクロール不可な改善カテゴリオプションは、ユーザが、第3の閾値を超えてスクロールしたことに基づいて、改善3A、3B、及び3Cを含むように、拡大されていることが出来る。UIエレメント1360は、3個の改善オプション(例えば、「改善3A」、「改善3B」、及び「改善3C」)と共に、カテゴリ(例えば、「改善カテゴリ3」)の指示を含む。改善オプションは、検索結果に、指示された改善を適用するように動作可能とされることが出来る。例えば、ブランド改善は、検索結果を、アイテムの特定のブランドに制限することが出来る。従って、ブランド改善を選択することは、ユーザに、改善された問い合わせに対する検索結果を有する、スクリーン図400あるいは800を提示することが出来る。
ページインジケータ1330は、現在のページを指し示し、現在のページ範囲内において他のページを表示する。矢印1340は、ユーザが、結果の集合を(例えば、一度に1ページ)前後に移動することを可能とする。ページ付けツールは、ページインジケータ1330と矢印1240を含む。スクロールツール1350は、ユーザが、結果の集合を(例えば、一度に1行、あるいは、一度に1ページ)前後に移動することを可能とする。
図14は、幾つかの例示的実施形態による、シームレスなページ付けの方法1400を実行する場合のアプリケーションサーバ118の動作を図示するフローチャートである。方法1400の動作は、図2について上述したモジュールを用いて、アプリケーションサーバ118上で実行される検索アプリケーション121によって実行されることが出来る。
検索アプリケーション121は、例えば、販売アイテムを検索するクライアントマシン110あるいは112からの検索問い合わせ(動作1410)を受信することが出来る。検索アプリケーション121は、問い合わせを実行し、応答のアイテムを特定することが出来る(動作1420)。検索問い合わせに応答して、検索アプリケーション121は、応答のアイテムの部分集合をクライアントマシン110あるいは112に伝送することが出来る(動作1430)。応答のアイテムの部分集合は、複数ページの画面面積をカバーするのに十分であるだろう。伝送されるアイテムの数は、クライアントマシン110あるいは112から受信される機能データ、アプリケーションサーバ118によってアクセス可能な履歴データ、あるいは、その両方に基づくことが出来る。アプリケーションサーバ118は、追加の応答アイテムへのリクエストを受信し(動作1440)、リクエストに応答して追加の結果を伝送することが出来る(動作1450)。
図15は、幾つかの例示的実施形態による、シームレスなページ付けの方法1500を実行する場合のクライアントマシン110あるいは112の動作を図示するフローチャートである。方法1500における動作は、図3について上述したモジュールを用いて、クライアントマシン110あるいは112によって実行されることが出来る。
クライアントマシン110あるいは112は、検索問い合わせを伝送することが出来る(動作1510)。例えば、検索問い合わせは、UIモジュール350によって受信され、あるいは、テキスト入力フィールド410に入力されることが出来る。検索問い合わせは、上述の、方法1400を実行するアプリケーションサーバ118に伝送されることが出来る。検索問い合わせに応答して、クライアントマシン110あるいは112は、応答のアイテムの第1と第2のページを受信することが出来る(動作1520及び1530)。クライアントマシン110あるいは112は、ページ付け制御と共に、応答のアイテムの第1のページを表示することが出来る(動作1540及び1550)。クライアントマシン110あるいは112は、ページ付けコマンドを受信することが出来る(動作1560)。例えば、ページ付けコマンドは、UIモジュール350によって受信される、あるいは、ページ付け制御によって生成されることが出来る。ページ付けコマンドに応答して、クライアントマシン110あるいは112は、応答のアイテムの第2のページが提示され(動作1570)、及び、アプリケーションサーバ118からの応答のアイテムの第3のページをリクエストする(動作1580)ことが出来る。
図16は、幾つかの例示的実施形態による、シームレスなページ付けの方法1600を実行する場合のアプリケーションサーバ118の動作を図示するフローチャートである。方法1600における動作は、図2について上述したモジュールを用いて、アプリケーションサーバ118上で実行される検索アプリケーション121によって実行されることが出来る。
検索アプリケーション121は、例えば、販売アイテムを検索するクライアントマシン110あるいは112からの検索問い合わせ(動作1610)を受信することが出来る。検索アプリケーション121は、図2について、上述された基準の任意の組み合わせを用いて、ユーザに提示された結果のアイテムの数あるいは結果のページの数を決定することが出来る(動作1620)。検索問い合わせに応答して、検索アプリケーション121は、クライアントマシン110あるいは112に提示するためにページ数を伝送することが出来る(動作1630)。
図17は、幾つかの例示的実施形態による、シームレスなページ付けの方法1700を実行するクライアントマシン110あるいは112の動作を図示するフローチャートである。方法1700の動作は、図3について上述したモジュールを用いて、クライアントマシン110あるいは112によって実行されることが出来る。
クライアントマシン110あるいは112は、検索問い合わせを伝送することが出来る(動作1710)。例えば、検索問い合わせは、UIモジュール350によって受信され、あるいは、テキスト入力フィールド410に入力されることが出来る。検索問い合わせは、上述の方法1600を実行するアプリケーションサーバ118に伝送されることが出来る。検索問い合わせに応答して、クライアントマシン110あるいは112は、提示すべきアイテムのページ数を受信することが出来る(動作1720)。クライアントマシン110あるいは112は、結果のページの最初のページ数の中から選択するように動作可能なページ付け制御を表示することが出来る(動作1730)。例えば、ページ数が3の場合、ページ付け制御は、ユーザが、最初の3ページの任意のものを選択することを可能とするように動作可能とすることが出来る。
図18は、幾つかの例示的実施形態による、シームレスなページ付けを有する文脈的改善の方法1800を実行する場合のクライアントマシン110あるいは112の動作を図示するフローチャートである。方法1800における動作は、図2について上述したモジュールを用いて、アプリケーションサーバ118上で実行される検索アプリケーション121と共に、図3について上述したモジュールを用いて実行されることが出来る。
動作1810において、クライアントマシン110あるいは112は、UIを介して、ユーザから検索問い合わせを受信することが出来る。例えば、テキストフィールド及び提出ボタン(送信ボタン)が、ユーザに提示されることが出来る。ユーザはテキストフィールドに検索列を入力し、提出ボタンを押すことが出来る。
動作1820において、クライアントマシン110あるいは112は、検索問い合わせに対する応答のアイテムを受信することが出来る。例えば、クライアントマシン110あるいは112は、検索プリケーション121に検索問い合わせを送信することが出来る。検索アプリケーション121は、問い合わせを実行し、応答のアイテムを特定することが出来る。検索問い合わせに応答して、検索アプリケーション121は、クライアントマシン110あるいは112に、応答のアイテムのすべてあるいは部分集合を伝送することが出来る。
動作1830において、クライアントマシン110あるいは112は、スクロール可能なインタフェースにおいて、応答のアイテムを表示することが出来る。応答のアイテムは、複数ページの画面面積をカバーするのに十分とすることが出来る。
動作1840において、クライアントマシン110あるいは112は、スクロール可能なインタフェースが、閾値を超えてスクロールしたことを検出することが出来る。例えば、UIは、UIを上下にスクロールするように動作可能な、スクロールバーを含むことが出来る。閾値は、応答のアイテムの数、スクロールされたページの数、スクロールされたピクセルの数、あるいは、スクロールの他の測定値に基づいて、設定されていることが出来る。閾値は、ユーザのデバイスに基づいて、ユーザの以前の検索相互作用に基づいて、あるいは、他のユーザの検索相互作用に基づいて、設定されることが出来る。
動作1850において、クライアントマシン110あるいは112は、UIにスクロール不可なエレメントを追加する。例えば、スクロール不可な改善オプションが提示されることができ、ユーザの検索を改善するように動作することが出来る。他の例として、改善オプションを提示するように動作可能なスクロール不可なエレメントが提示されることが出来る。
図19は、幾つかの例示的実施形態による、シームレスなページ付けを有する文脈的な改善の方法1900を実行する場合のクライアントマシン110あるいは112の動作を図示するフローチャートである。方法1900における動作は、図2について上述したモジュールを用いた、アプリケーションサーバ118上で実行される検索アプリケーション121と共に、図3について上述したモジュールを用いて実行されることが出来る。
動作1910において、クライアントマシン110あるいは112は、UIを介して、ユーザから検索問い合わせを受信することが出来る。例えば、テキストフィールドと提出ボタンがユーザに提示されることが出来る。ユーザは、テキストフィールドに検索列を入力し、提出ボタンを押すことが出来る。
動作1920において、クライアントマシン110あるいは112は、検索問い合わせに対する応答アイテムを受信することが出来る。例えば、クライアントマシン110あるいは112は、検索問い合わせを検索アプリケーション121に送信することが出来る。検索アプリケーション121は、問い合わせを実行し、応答アイテムを特定することが出来る。検索問い合わせに応答して、検索アプリケーション121は、クライアントマシン110あるいは112に、応答アイテムのすべてあるいは部分集合を伝送することが出来る。
動作1930において、クライアントマシン110あるいは112は、スクロール可能なインタフェースに、応答アイテムを表示することが出来る。応答アイテムは、複数ページの画面面積をカバーするのに十分とすることが出来る。
動作1940において、クライアントマシン110あるいは112は、スクロール可能なインタフェースが、第1の閾値を超えてスクロールされたことを検出することが出来る。例えば、UIは、UIを上下にスクロールするように動作可能な、スクロールバーを含むことが出来る。第1の閾値は、応答アイテムの数、スクロールされたページの数、スクロールされたピクセルの数、あるいは、他のスクロールの測定値に基づいて、設定されていることが出来る。第1の閾値は、ユーザのデバイスに基づいて、ユーザの以前の検索相互作用に基づいて、あるいは、他のユーザの検索相互作用に基づいて設定されることが出来る。
動作1950において、クライアントマシン110あるいは112は、UIに対し、スクロール不可なエレメントを追加することが出来る。スクロール不可なエレメントの追加は、スクロール可能なインタフェースが、第1の閾値を超えてスクロールされたことの検出に基づくことが出来る。例えば、スクロール不可な改善オプションは、ユーザの検索を改善するように動作可能なものが、提示されることが出来る。他の例として、改善オプションを提示するように動作可能なスクロール不可なエレメントが提示されることが出来る。
動作1960において、クライアントマシン110あるいは112は、スクロール可能なインタフェースが、第2の閾値を超えてスクロールしたことを検出することが出来る。例えば、UIは、UIを上下にスクロールするように動作可能な、スクロールバーを含むことが出来る。第2の閾値は、応答アイテムの数、スクロールされたページの数、スクロールされたピクセルの数、あるいは、他のスクロールの測定値に基づいて、設定されていることが出来る。第2の閾値は、ユーザのデバイスに基づいて、ユーザの以前の検索相互作用に基づいて、あるいは、他のユーザの検索相互作用に基づいて、設定されることが出来る。第2の閾値は、絶対位置(例えば、結果リストの先頭から5スクリーン)あるいは、相対位置(例えば、第1の閾値から4スクリーン)として規定されることが出来る。
動作1970において、クライアントマシン110あるいは112は、動作1950において、UIに追加された、スクロール不可なエレメントを改変する。スクロール不可なエレメントを改変することは、スクロール可能なインタフェースが、第2の閾値を超えてスクロールしたことの検出に基づくことが出来る。例えば、改善オプションを提示するように動作可能なスクロール不可なエレメントは、スクロール可能なインタフェースが第1の閾値を超えてスクロールされたとき、提示されることができ、スクロール可能なインタフェースが、第2の閾値を超えてスクロールされたとき、ユーザからの更なる相互作用なしに、改善オプションを実際に提示するように、エレメントは改変されることが出来る。
図20は、幾つかの例示的実施形態による、シームレスなページ付けを有する文脈的な改善の方法2000を実行する場合の、クライアントマシン110あるいは112の動作を図示するフローチャートである。方法2000の動作は、図2について上述したモジュールを用いた、アプリケーションサーバ118上で実行される検索アプリケーション121と共に、図3について上述されたモジュールを用いて実行されることが出来る。動作2010−2060は、図19について上述された、動作1910−1960に対応する。
動作2070において、クライアントマシン110あるいは112は、第2のスクロール不可なエレメントを、動作2050においてUIに追加されたスクロール不可なエレメントに追加する。例えば、第1のスクロール不可なエレメントは、アイテムのブランドに関する改善オプションを提示するように動作可能とすることができ、第2のスクロール不可なエレメントは、アイテムの価格に関連した改善オプションを提示するように動作可能とすることが出来る。
様々な例示的実施形態によると、ここに記述された1以上の方法は、シームレスなページ付けの間、文脈的な改善を促進することが出来る。従って、ここに記述された1以上の方法は、ユーザによってリクエストされた情報の取得と提示を促進する一方、ユーザの検索の精度を増加するために、1以上の示唆された改善を示すことが出来る。
図21は、シームレスなページ付けに適した、例示的実施形態による、問い合わせデータフィーチャの使用を図示するブロック図2100である。データベース2110は、システムの幾人かのユーザの振る舞いに関するデータを伴った、ユーザの振る舞いの履歴のデータを格納することが出来る。一実施形態においては、すべてのユーザのアクションに関するデータは、データベース2110に格納される。データベース2110は、問い合わせ2130に対する不成功なセッションにおいて見られたページとアイテムの数と共に、問い合わせ2120に対する成功したセッションにおいて見られたページとアイテムの数を決定するために、利用されることが出来る。成功したセッションは、任意の方法でアイテムとユーザが相互作用するセッション(例えば、アイテムを見る、アイテムに入札する、アイテムを購入する、アイテムに加入する、など)あるいは、特定の相互作用が実行されるセッション(例えば、アイテムに入札する、アイテムを購入する、あるいは、その両方)とすることが出来る。不成功なセッションは、成功しなかった任意のセッションとすることが出来る。他の基準は、また、成功した、及び、不成功なセッションを特定するために用いられることが出来る。問い合わせ2120についての成功したセッションで見られたページ及びアイテムの数、問い合わせ2130についての不成功なセッションで見られたページとアイテムの数、あるいは、その両方に基づいて、問い合わせページ付けデータのデータベース2140は、生成され、あるいは、更新されることが出来る。データベース2140における情報に基づいて、問い合わせを行うユーザに表示するためのページ数が決定されることが出来る。追加的に、あるいは、別のものとして、データベース2140の情報に基づいて、スクロール不可なUIエレメントを提示する、あるいは、変更する前に、問い合わせを行ったユーザに表示するためのページ及びアイテムの数を決定することが出来る。
図22は、シームレスなページ付けに適した、例示的実施形態による、ユーザデータフィーチャの使用を図示するブロック図2200である。ブロック図2200において、ユーザの振る舞いの履歴のデータを含むデータベース2210は、ユーザ2230の不成功なセッションにおいて見られたページとアイテムの数と共に、ユーザ2220の成功したセッションにおいて見られたページとアイテムの数を決定するために利用されることが出来る。ユーザ2220の成功したセッションにおいて見られたページとアイテムの数、ユーザ2230の不成功なセッションにおいて見られたページとアイテムの数、あるいは、その両方に基づいて、ユーザページ付けデータのデータベース2240は、生成され、あるいは、更新されることが出来る。データベース2240における情報に基づいて、問い合わせを行うユーザへの表示のためのページ数が、決定されることが出来る。ユーザと問い合わせについてのユーザの振る舞いの履歴のデータは、組み合わせられ、あるいは、独立に、用いられることが出来る。例えば、ユーザデータのみに基づいて、提示されるべきページ数は、5であり、問い合わせデータのみに基づいて、提示されるべきページ数は7である場合、幾つかの例示的実施形態は、5ページを提示する一方、他方では、7を提示し、更に他方では、値を平均し、6を提示することが出来る。
図23は、シームレスなページ付けを有効にするかを決定する際に考慮されることが出来る幾つかの要因を図示する。シームレスなページ付けを有効にする決定は、同一の問い合わせ2305に対する他のユーザのページ付けデータ、異なる問い合わせ2310についてのこのユーザのページ付けデータ、クライアントマシン110のブラウザタイプ2320、クライアントマシン110あるいは112のデバイスタイプ2315、クライアントマシン110あるいは112のスクリーン解像度、結果の集合2330、クライアントマシン110あるいは112の位置2335、セッション文脈2340及び、他の信号2345に基づくことが出来る。決定2350において、決定は、1以上の入力要因に基づいて、シームレスなページ付けを有効あるいは無効とするためになされる。従って、シームレスなページ付けを有効とする結果2355に到達するか、デフォルトのページ付けを用いる結果2360に到達するかのいずれかである。例えば、シームレスなページ付けは、ある問い合わせを提出した他のユーザの以前の振る舞いに基づいて、その問い合わせについて無効とすることが出来る。同様に、シームレスなページ付けは、以前の問い合わせを提出(送信)した後のユーザの以前の振る舞いに基づいて、あるユーザについて、無効にすることが出来る。
デバイスタイプ2315は、考慮されることが出来る。例えば、フルスクリーンデバイス(例えば、デスクトップコンピュータ)を用いるユーザは、小さなスクリーンデバイス(例えば、モバイルデバイス)を用いる人よりも多くのページをスクロールする傾向を有することができ、提示すべきページ数は、フルスクリーンデバイスのユーザについてより多いことが出来る。デバイス要因は、また、他のユーザの以前の検索にアクセスするとき、適用されることが出来る。例えば、同一の問い合わせに対する他のユーザのすべての検索を考慮に入れるよりむしろ、同様なデバイスからの検索のみを考慮に入れることが出来る。類似性は、任意の適切な組み合わせでの、デバイス(例えば、アップルデバイス、HPデバイスなど)の製造者、デバイスのクラス(例えば、電話、タブレット、ラップトップ、デスクトップなど)、デバイスの機能(例えば、スクリーンサイズ、スクリーン解像度、タッチスクリーン、メモリ、プロセッサ速度など)、ネットワークの機能(例えば、アプリケーションサーバとクライアントマシンとの間の帯域、アプリケーションサーバとクライアントマシンとの間のレイテンシなど)、あるいは、他のデバイス要因に基づくことが出来る。
関連要因は、デバイスの速度あるいは、他の環境状況とすることが出来る。例えば、良く乗り物酔いするユーザは、静かにしているときと電車で移動しているときでは閲覧の仕方が異なるかも知れず、システムは、デバイスの速度に少なくとも部分的に基づいて、ページ付けを改変する程度に十分知的であることが出来る。これは、乗り物の運転者が、乗り物のヘッドユニットを介すなどして、検索結果と相互作用している実施形態に拡張することが出来る。そのような例において、ユーザの注意散漫は重要な要因であり、運転者の注意散漫を減少するために、そのような環境において、より簡単化された(おそらく、より少ないページの)インタフェースを提供するが過ぎることは望ましいだろう。
現在の問い合わせが提出される直前にユーザによって走らされる問い合わせあるいは複数の問い合わせのような、セッション文脈データ2340は考慮されることが出来る。例えば、ユーザが「iPhone 5」を検索するときに提示されるページ数は8とすることが出来るが、「電話(Phone)」の検索のすぐ後に検索するときは、提示されるページ数は、5とすることが出来る。他の文脈的な要因は、ユーザが検索問い合わせを実行した頻度とすることが出来る。例えば、収集アイテムを周期的に検索するユーザは、検索結果に高いレベルの興味を示しており、従って、結果の追加のページが提示されることが出来る。
ユーザあるいはデバイスの位置などの、位置特定(Geolocation )データ2335が考慮されることが出来る。例えば、市街地でのユーザは、郊外のユーザより多くのページをスクロールする傾向を有することができ、提示されるページ数は、市街地のユーザのほうが多いことが出来る。位置特定要因は、また、他のユーザの以前の検索にアクセスするとき、適用されることが出来る。例えば、同一の問い合わせについての他のユーザのすべての検索を考慮するのではなく、ユーザの領域からの検索のみを考慮に入れることが出来る。ユーザの領域は、市、国、州などの行政区、あるいは、ユーザのある半径内(例えば、5マイル、50マイル、あるいは、200マイル)のすべての他のユーザを含む地理学的領域として規定されることが出来る。他の例示的実施形態においては、領域は、以前のユーザの振る舞いに基づいて分類されることが出来る。例えば、ユーザは、家から閲覧している場合と、職場から閲覧している場合で異なる行動をすることが出来る。ユーザの家と職場の位置の位置特定は、追跡されることができ、この情報は、ユーザに基づいてのみではなく、ユーザが家にいるか、職場にいるかに基づいても、ページ付けをカスタム化する際に利用されることが出来る。
時間的要因も適用されることが出来る。例えば、ユーザあるいは問い合わせのすべての履歴データを見るのではなく、特定の時間からの振る舞いデータのみを用いることが出来る。異なる時間的要因は、ユーザについての履歴データ及び問い合わせについての履歴データ用に用いられることができ、時間的要因は、一方について用いられ、他方については用いられないことができ、あるいは、同一の時間的要因が、両方用に用いられることが出来る。例えば、過去2週間にわたるユーザの振る舞いが考慮されることができ、過去2週間のその問い合わせの他のユーザの振る舞いが考慮されることが出来る。
社会的要因も考慮することが出来る。例えば、結果のより多いページをしばしば閲覧するユーザの友人であるソーシャルネットワークのユーザは、結果のより少ないページをしばしば閲覧するユーザの友人であるユーザよりも、結果のより多くのページを見ることを好むかもしれない。社会的要因は、また、他のユーザの以前の検索にアクセスするとき、適用されることが出来る。例えば、同一の問い合わせの他のユーザのすべての検索を考慮するのではなく、友人からの検索のみを考慮することが出来る。他の人間関係は、また、友人の友人、特定のグループのメンバー、特定のフィードへの加入などが、考慮されることが出来る。
広告要因も考慮されることが出来る。例えば、広告は、アイテムと共に表示されることが出来る。広告主は、提示される各広告について、クリックあたり(per-click )、印象あたり(per-impression )、あるいは、販売あたり(per-sale )のレートで支払いを行うことが出来る。従って、相互作用するアイテムを選択する前に、アイテムのより多くのページを閲覧することをユーザに進めることは利益のあることであろうし、より多くの広告に関連した問い合わせ、あるいは、高いレートで売られる広告は、より少ない、あるいは、より利益の少ない広告の問い合わせよりも、提示される結果のページがより多いだろう。
ダイレクトマネタイゼーションも考慮されることが出来る。例えば、検索結果の後のページに現れるアイテムの所有者は、そのアイテムを含めるために、検索結果の十分なページが提示されることを薦めるために、手数料を支払うことに関心があるかもしれない。同様に、検索結果の始めのほうのページに現れるアイテムの所有者は、ユーザにアイテムと相互作用することを薦めるため、提示されるページ数を減らすために、手数料を支払うことに興味があるかもしれない。幾つかの例示的実施形態においては、これにより、検索結果の順番は、マネタイゼーションによって影響を受けず、依然、検索結果のマネタイゼーションを可能にすることが出来る。
幾つかの例示的実施形態においては、ユーザがアイテムと相互作用する前に表示されるアイテムの平均数は、上述したように、表示される結果のページ数を決定するために用いられる。他の例示的実施形態においては、ユーザがアイテムと相互作用する前に表示されるアイテムの中位数が用いられる。中位数を用いることは、ユーザの50%がより多くのアイテムを見ることを好むが、50%は、より少ないことを好む、ことを意味するだろう。他の割合も用いられることができる。例えば、表示されるべきページ数は、ユーザの95%によって見られたページの最大数に基づくことが出来る。各場合において、アイテムあるいはページの特定された数は、アイテムに相互作用する前に、平均のユーザによって見られたアイテム数であると考えられることが出来る。
相互作用の割合の例示的表が以下に示される。
この例示的表に見られるように、13,620,362回の同様な検索が、現在の問い合わせの前に、ユーザによって実行された。それらの検索のうち、55.94%(あるいは、7,619,219回の検索)は、最初のページでのアイテムの相互作用となり、10.26%(あるいは、1,398,029回の検索)は、2番目のページでのアイテムの相互作用となった、などである。従って、50%の閾値が選択されたなら、特定されたページ数は、1で、85%の閾値が選択されたなら、特定されたページ数は、8である。
様々な例示的実施形態によると、ここに記述した方法の1以上は、シームレスなページ付けを促進することが出来る。従って、ここに記述された1以上の方法は、考慮すべきアイテムの示唆された数を示しつつ、ユーザによってリクエストされた情報の取得と提示を促進することが出来る。ページ付け制御において、制限された数のページのみを提示することは、アイテムの決定された数よりも多いものを見ることなく、ユーザにアイテムと相互作用することを薦めることができ、検索エンジンあるいはユーザによる結果の集合とより大きく関係し、ユーザによる時間を節約し、検索エンジンによってユーザに提供されるアイテムを多く販売するという、ユーザにとってのより良い経験となることが出来る。ページ付け制御を提供することは、また、結果の集合内で、ユーザが現在の位置を追跡し続けることを助け、ユーザが、ユーザによって心に引っ掛けられた、興味のあるアイテムにより迅速に戻ってくることを可能とすることが出来る。
様々な例示的実施形態によると、ここに記述した方法の1以上は、シームレスなページ付けの間、文脈的な改善を促進することが出来る。従って、ここに記述した1以上の方法は、ユーザの検索の精度を増加するために、1以上の示唆された改善を示しつつ、ユーザによってリクエストされた情報の取得と提示を促進することが出来る。
これらの効果が集合的に考慮される場合、ここに説明した1以上の方法は、さもなければ、検索に含まれていたであろうある努力あるいは資源の必要性を不要にすることが出来る。興味のあるアイテムを特定するにおいてユーザによって行われる努力は、ここに説明した1以上の方法によって削減されることが出来る。1以上のマシン、データベースあるいはデバイス(例えば、クライアント−サーバシステム100内の)によって用いられる計算資源は、同様に削減されることが出来る。そのような計算資源の例は、プロセッササイクル、ネットワークトラフィック、メモリ使用率、データストレージ容量、消費電力及び、冷却能力を含む。
モジュール、コンポーネント、及び、ロジック
ある実施形態は、ロジック、あるいは、幾つかのコンポーネント、モジュール、あるいは、機構を含むとしてここに記述されている。モジュールは、ソフトウェアモジュール(例えば、非一時的マシン読取り可能な媒体に実装されたコード)あるいは、ハードウェア実装モジュールのいずれかを構成することが出来る。ハードウェア実装モジュールは、ある動作を実行することが出来る、実体的ユニットであり、ある方法で、構成され、あるいは、配列されることが出来る。例示的実施形態においては、1以上のコンピュータシステム(例えば、スタンドアロン、クライアントあるいはサーバコンピュータシステム)あるいは、1以上のプロセッサは、ここに説明したように、ある動作を実行するように動作するハードウェア実装モジュールとして、ソフトウェア(例えば、アプリケーションあるいはアプリケーションの一部)によって構成されることが出来る。
様々な実施形態においては、ハードウェア実装モジュールは、機械的あるいは電子的に実装されることが出来る。例えば、ハードウェア実装モジュールは、ある動作を実行するために固定的に構成される専用回路あるいは、ロジック(例えば、フィールドプログラマブルゲートアレイ(FPGA)あるいは、アプリケーション特有集積回路(ASIC)などの特殊目的プロセッサとして)を含むことが出来る。ハードウェア実装モジュールは、また、ある動作を実行するために、ソフトウェアによって一時的に構成されるプログラマブルロジックあるいは回路(例えば、汎用プロセッサあるいは他のプログラマブルプロセッサ内に含まれるとして)を含むことが出来る。専用及び固定的に構成される回路において、あるいは、一時的に構成される回路(例えば、ソフトウェアによって構成される)において、機械的にハードウェア実装モジュールを実装することの決定は、コストと時間を考慮に入れてなされることが出来ることは理解されるだろう。
従って、語句「ハードウェエア実装モジュール」は、実体性のあるエンティティを含むことは理解されるべきであり、エンティティは、ある方法で、及び/あるいは、ここに説明したある動作を実行するために、物理的に構成され、固定的に構成され(例えば、ハードワイヤード)あるいは、一時的あるいは遷移的に構成され(例えば、プログラムされ)る。ハードウェア実装モジュールが、一時的に構成される(例えば、プログラムされる)実施形態を考慮すると、ハードウェア実装モジュールのそれぞれは、任意の一時点で、構成される、あるいは、具体化される必要はない。例えば、ハードウェア実装モジュールが、ソフトウェアを用いて構成される汎用プロセッサを含む場合、汎用プロセッサは、異なる時点において、それぞれの異なるハードウェア実装モジュールとして構成されることが出来る。従って、ソフトウェアは、例えば、ある一時点においては、特定のハードウェア実装モジュールを構成し、異なる一時点においては、異なるハードウェア実装モジュールを構成するように、プロセッサを構成することが出来る。
ハードウェア実装モジュールは、他のハードウェア実装モジュールに情報を提供したり、これから情報を受信したりすることが出来る。従って、記述されたハードウェア実装モジュールは、通信可能なように結合されているとみなすことが出来る。複数のそのようなハードウェア実装モジュールは同時に存在する場合、通信は、ハードウェア実装モジュールを接続する信号伝送(例えば、適切な回路及びバスを介して)によって達成されることが出来る。複数のハードウェア実装モジュールが異なる時点で構成され、あるいは、具体化される実施形態においては、そのようなハードウェア実装モジュール間の通信は、例えば、複数のハードウェア実装モジュールがアクセスを有するメモリ構造における情報の格納及び取得を介して達成されることが出来る。例えば、一つのハードウェア実装モジュールは、動作を実行し、通信可能なように結合されるメモリデバイスにおけるその動作の出力を格納することが出来る。更なるハードウェア実装モジュールは、そして、後の時点で、格納された出力を取得し、処理するために、メモリデバイスにアクセスすることが出来る。ハードウェア実装モジュールは、また、入力あるいは出力デバイスと通信を開始することができ、資源(例えば、情報の集合)に操作することが出来る。
ここに記述された例示的方法の様々な動作は、関連する動作を実行するように、一時的に構成される(例えば、ソフトウェアによって)あるいは、固定的に構成される1以上のプロセッサによって、少なくとも部分的に、実行されることが出来る。一時的に、あるいは、固定的に構成されるかには関係なく、そのようなプロセッサは、1以上の動作あるいは機能を実行するように動作可能なプロセッサ実装モジュールを構成することが出来る。ここに述べられるモジュールは、幾つかの例示的実施形態においては、プロセッサ実装モジュールを含むことが出来る。
同様に、ここに記述された方法は、少なくとも部分的にプロセッサ実装されることが出来る。例えば、方法の動作の少なくとも幾つかは、1つあるいは複数のプロセッサあるいはプロセッサ実装モジュールによって実行されることが出来る。動作のあるものの実行は、1以上のプロセッサ間で分散されることが出来、単一のマシン内に留まるのみではなく、複数のマシンに渡って展開されることが出来る。幾つかの例示的実施形態においては、プロセッサあるいは複数のプロセッサは、単一の場所(例えば、ホーム環境内、オフィス環境内、あるいは、サーバファームとして)に位置することが出来るが、他の実施形態においては、プロセッサは、複数の場所に渡って分散されることが出来る。
1以上のプロセッサは、また、「クラウドコンピューティング」環境において、あるいは、「ソフトウェアアズサービス」(SaaS)として、関連の動作の実行をサポートするために動作することが出来る。例えば、動作の少なくとも幾つかは、コンピュータのグループ(例えば、複数のプロセッサを含むマシンの例として)によって実行されることができ、これらの動作は、ネットワーク(例えば、インターネット)を介して、及び、1以上の適切なインタフェース(例えば、API)を介して、アクセスすることが出来る。
[電子装置及びシステム]
例示的実施形態は、デジタル電子回路、あるいは、コンピュータハードウェア、ファームウェア、ソフトウェア、あるいは、これらの組み合わせによって実装されることが出来る。例示的実施形態は、例えば、情報担体、例えば、プログラマブルプロセッサ、コンピュータ、あるいは、複数のコンピュータなどのデータ処理装置による実行のための、あるいは、この動作を制御するためのマシン読取り可能な媒体において、実体的に実装されたコンピュータプログラムなどのコンピュータプログラム製品を用いて、実装されることが出来る。
コンピュータプログラムは、コンパイルされた、あるいは、インタプリタの言語を含む、プログラム言語の任意の形態に書くことが出来、スタンドアロンのプログラムとして、あるいは、モジュール、サブルーチン、あるいは、コンピューティング環境に用いられるのに適した他のユニットを含む任意の形態で展開されることが出来る。コンピュータプログラムは、1つのコンピュータ上で、あるいは、1つの場所にある、あるいは、複数の場所に渡って分散されて、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるために、展開されることが出来る。
例示的実施形態においては、動作は、入力データに操作をし、出力を生成することによって、機能を実行するために、コンピュータプログラムを実行する1以上のプログラマブルプロセッサによって実行されることが出来る。方法動作は、また、例えば、フィールドプログラマブルゲートアレイ(FPGA)あるいは、特定用途向け集積回路(ASIC)などの専用ロジック回路によって実行されることができ、例示的実施形態の装置は、これらとして、実装されることが出来る。
コンピューティングシステムは、クライアントとサーバを含むことが出来る。クライアントとサーバは、一般には、相互に離れており、典型的には、通信ネットワークを介して相互作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアント−サーバ関係を有するコンピュータプログラムによって生じる。プログラマブルコンピューティングシステムを展開する実施形態においては、ハードウェアとソフトウェアの両方のアーキテクチャを考慮に入れる必要があることは理解されるだろう。特に、ある機能を、固定的に構成されたハードウェア(例えば、ASIC)、一時的に構成されるハードウェア(例えば、ソフトウェアとプログラマブルプロセッサの組み合わせ)、あるいは、固定的に構成されるハードウェアと一時的に構成されるハードウェアの組み合わせの、いずれで実装するかの選択は、設計選択であることが出来ることは理解されるだろう。以下は、様々な例示的実施形態において展開されることが出来るハードウェア(例えば、マシン)及びソフトウェアアーキテクチャを記述する。
[例示的マシンアーキテクチャ及びマシン読取り可能な媒体]
図24は、マシンに、ここに議論した任意の1以上の方法を実行させる命令が実行されるコンピュータシステム2400の例示的形態のマシンのブロック図である。別の実施形態においては、マシンは、スタンドアロンデバイスとして動作し、他のマシンに接続(例えば、ネットワーク化)されることが出来る。ネットワーク化された展開においては、マシンは、サーバ−クライアントネットワーク環境においては、サーバあるいはクライアントマシンの機能で動作し、ピアツーピア(あるいは、分散)ネットワーク環境においては、ピアマシンとして動作することが出来る。マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレット、ウェアラブルデバイス(例えば、スマートウォッチ、あるいは、スマート眼鏡)、ウェブ装置、ネットワークルータ、スイッチあるいはブリッジ、あるいは、そのマシンによって取られるべきアクションを指定する命令(シーケンシャルあるいは他のもの)を実行する能力のある任意のマシンとすることが出来る。更に、単一のマシンのみが図示されているが、語句「マシン」は、ここに議論した任意の1以上の方法を実行するための命令のセット(あるいは複数のセット)を、個別に、あるいは、協働して実行するマシンの任意の集合を含むようにも取られるべきである。
例示的コンピュータシステム2400は、バス2408を介して相互に通信する、プロセッサ2402(例えば、中央演算装置(CPU)、グラフィック処理ユニット(GPU)あるいはその両方)、メインメモリ2404、及び、静的メモリ2406を含む。コンピュータシステム2400は、更に、ビデオディスプレイユニット2410(例えば、液晶ディスプレイ(LCD)、あるいは、陰極線管(CRT))を含むことが出来る。コンピュータシステム2400は、また、英数字入力デバイス2412(例えば、キーボードあるいはタッチ感応ディスプレイスクリーン)、カーソル制御デバイス2414(例えば、マウス)、ディスクドライブユニット2416、信号生成デバイス2418(例えば、スピーカ)及び、ネットワークインタフェースデバイス2420を含む。
[マシン読取り可能な媒体]
ディスクドライブユニット2416は、ここに記述した任意の1以上の方法あるいは機能を実装し、あるいは、これによって利用される命令及びデータ構造の1以上のセット(例えば、ソフトウェア)2424が格納されるマシン読取り可能な媒体2422を含む。命令2424は、また、コンピュータシステム2400によって実行される間、メインメモリ2404内及び/あるいはプロセッサ2402内に、完全に、あるいは、少なくとも部分的に存在することができ、メインメモリ2404とプロセッサ2402は、また、マシン読取り可能な媒体を構成することが出来る。
マシン読取り可能な媒体2422は、例示的実施形態においては、単一の媒体であるとして示されているが、語句「マシン読取り可能な媒体」は、1以上の命令あるいはデータ構造を格納する単一の媒体あるいは複数の媒体(例えば、集中型あるいは分散型データベース、及び/あるいは関連するキャッシュ及びサーバ)を含むことが出来る。語句「マシン読取り可能な媒体」は、また、マシンによる実行のための命令を格納し、符号化し、あるいは、担持することが出来、マシンに、本発明の任意の1以上の方法を実行させ、あるいは、そのような命令によって利用される、あるいは、それに関連するデータ構造を格納し、符号化し、あるいは、担持することができる任意の実体性のある媒体を含むと取られるべきである。語句「マシン読取り可能な媒体」は、従って、これらには限定されないが、固体メモリ、及び、光及び磁気媒体を含むと取られるべきである。マシン読取り可能な媒体の特定の例は、例として、例えば、EPROM(Erasable Programmable Read-Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスク及び着脱可能なディスク、磁気光ディスクなどの磁気ディスク、CD−ROM、及び、DVD−ROMディスクを含む不揮発性メモリを含む。
[伝送媒体]
命令2424は、更に、伝送媒体を用いた通信ネットワーク2426を介して送信あるいは受信されることが出来る。命令2424は、ネットワークインタフェースデバイス2420及び、複数の既知の伝送プロトコルの任意の1つ(例えば、HTTP)を用いて送信されることが出来る。通信ネットワーックの例は、LAN(local area network )、WAN、インターネット、携帯電話ネットワーク、通常の旧式電話(POTS)ネットワーク(Plain Old Telephone (POTS) network)及び、無線データネットワーク(例えば、WiFi及びWiMaxネットワーク)を含む。語句「伝送媒体」は、マシンによる実行のために命令を格納し、符号化し、あるいは、担持出来、デジタルあるいはアナログ通信信号あるいは、そのようなソフトウェアの通信を促進する他の非実体的媒体を含む、任意の非実体的媒体を含むように取られるべきである。
実施形態が、特定の例示的実施形態を参照して記述されたが、様々な改変及び変更が、本発明のより広い精神と範囲から外れることなく、これらの実施形態になされ得ることは明確であろう。従って、明細書及び図は、限定的な意味ではなく、例示的であるとみなされるべきである。その一部を形成する添付の図面は、主題が実施されることが出来る特定の実施形態を、例示の方法で、限定ではなく、示す。図示された実施形態は、当業者が、ここに開示される教示を実施することが出来るように、十分に詳細に記述される。他の実施形態は、構造的あるいは論理的代替及び変更が、この開示の範囲を外れることなくなされ得るように、利用され、それらから導き出されることが出来る。従って、この詳細な説明は、限定的な意味に取られるべきではなく、様々な実施形態の範囲は、請求項が許される均等物の全範囲と共に、添付の請求項によってのみ規定される。
本発明の主題のそのような実施形態は、便宜のため、及び、1より多く実際に開示される場合、任意の単一の発明あるいは発明の概念にこの出願の範囲を、自主的に限定することを意図することなしに、単に語句「発明」によって、個別に、及び/あるいは集合的に、ここに参照されることが出来る。従って、特定の実施形態が、図示され、ここに記述されたが、同一の目的を達成するように意図された任意の配置は、示された特定の実施形態の代替とすることが出来ることは理解されるべきである。この開示は、様々な実施形態の任意の、及びすべての適応あるいは変形をカバーすることを意図されている。上記実施形態と、ここに特には記述されていない他の実施形態の組み合わせは、上記記述を吟味した当業者には明確であろう。