JP6511417B2 - バーティカルベースのクエリのオプション化 - Google Patents

バーティカルベースのクエリのオプション化 Download PDF

Info

Publication number
JP6511417B2
JP6511417B2 JP2016153527A JP2016153527A JP6511417B2 JP 6511417 B2 JP6511417 B2 JP 6511417B2 JP 2016153527 A JP2016153527 A JP 2016153527A JP 2016153527 A JP2016153527 A JP 2016153527A JP 6511417 B2 JP6511417 B2 JP 6511417B2
Authority
JP
Japan
Prior art keywords
search
data store
search query
user
object type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016153527A
Other languages
English (en)
Other versions
JP2016212908A (ja
Inventor
サンカー、スリラム
アシス、イゴール ヒベイロ デ
アシス、イゴール ヒベイロ デ
Original Assignee
フェイスブック,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2016212908A publication Critical patent/JP2016212908A/ja
Application granted granted Critical
Publication of JP6511417B2 publication Critical patent/JP6511417B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本開示は、データベースに関する。
ソーシャルネットワーキング・ウェブサイトを含むソーシャル・ネットワーキング・システムにより、そのユーザ(人または団体など)は、ソーシャル・ネットワーキング・システムと対話し、ソーシャル・ネットワーキング・システムを介して互いに対話することができる。ソーシャル・ネットワーキング・システムは、ユーザからの入力により、ユーザに関連付けられたユーザ・プロフィールをソーシャル・ネットワーキング・システムに作成するとともに格納する。ユーザ・プロフィールは、ユーザの人口統計の情報、通信チャンネル情報、および個人的な関心についての情報を含む。ソーシャル・ネットワーキング・システムは、ユーザからの入力により、ソーシャル・ネットワーキング・システムの他のユーザとのユーザの関係の記録を生成するとともに格納する他、2人以上のユーザ間のソーシャルな対話を促進するためのサービス(例えば、ウォール・ポスト、写真共有、イベント構成、メッセージ、ゲーム、あるいは広告)を提供する。
ソーシャル・ネットワーキング・システムは、1つ以上のネットワーク上で、そのサービスに関係するコンテンツやメッセージを、ユーザのモバイルや他のコンピューティング・デバイスに送信する。ユーザは、ユーザのユーザ・プロフィールおよびソーシャル・ネットワーキング・システム内の他のデータにアクセスするために、ユーザのモバイルや他のコンピューティング・デバイスにソフトウェア・アプリケーションを更にインストールする。ソーシャル・ネットワーキング・システムは、ユーザにつながる他のユーザの集約されたストーリーのニュースフィードのような、ユーザに表示するべきコンテンツ・オブジェクトの個別化された組を生成する。
本発明は、明細書に開示される。
所定の実施形態において、検索クエリにおける検索語を識別し、また、検索語をオプションにすることにより検索クエリを修正することによって、検索クエリを最適化する方法が開示される。所定の実施形態では、1台以上のコンピューティング・デバイスが検索クエリを受信し、検索クエリにおいて、複数のオブジェクト・タイプのうちの第1のオブジェクト・タイプに関連付けられる検索語を識別する。コンピューティング・デバイスは、検索クエリにおける検索語をオプションにすることにより、検索クエリを修正する。コンピューティング・デバイスは第1のオブジェクト・タイプの第1のデータ格納オブジェクトに対して、実行用の修正された検索クエリを送信する。コンピューティング・デバイスは、オブジェクト・タイプのうちの第2のオブジェクト・タイプのオブジェクトを格納する第2のデータ・ストアに対して、実行用の修正なしの検索クエリを更に送信し、修正された検索クエリの実行による第1の検索結果と修正なしの検索クエリを実行することによる第2の検索結果とを集約する。
ソーシャル・ネットワーキング・システムに関連付けられたネットワーク環境を例示する図。 ソーシャル・グラフを例示する図。 ソーシャル・ネットワーキング・システムのオブジェクトの格納のための分割を例示する図。 検索クエリを最適化する方法を例示する図。 コンピュータ・システムを例示する図。
図1は、ソーシャル・ネットワーキング・システムに関連する例示的なネットワーク環境100を示す。ネットワーク環境100は、ネットワーク110によって互いに接続されたユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサード・パーティ・システム170を含む。図1はユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム(third−party system)170、およびネットワーク110の特定の構成を示すが、本開示は、ユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム170、およびネットワーク110の任意の適切な構成を企図する。限定ではなく例として、ネットワーク110を迂回して、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサード・パーティ・システム170のうちの2つ以上を互いに直接的に接続することができる。別の例として、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサード・パーティ・システム170のうちの2つ以上を、物理的または論理的に、全体的または部分的に共に配置することができる。さらに、図1は特定の数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム170、およびネットワーク110を示すが、本開示は、任意の適切な数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム170、およびネットワーク110を企図する。限定ではなく例として、ネットワーク環境100は、複数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サード・パーティ・システム170、およびネットワーク110を含むことができる。
特定の実施形態では、ユーザ101は、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を介して対話または通信する個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサード・パーティ・アプリケーション)、または(例えば、個人またはエンティティの)グループでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワークをホストするネットワーク・アドレス指定可能コンピューティング・システム(network−addressable computing system)でよい。ソーシャル・ネットワーキング・システム160は、例えば、ユーザ・プロファイル・データ、概念プロファイル・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関する他の適切なデータなどのソーシャル・ネットワーキング・データを生成、格納、受信、および送信することができる。ネットワーク環境100の他の構成要素により、直接的に、またはネットワーク110を介して、ソーシャル・ネットワーキング・システム160にアクセスすることができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、例えば、適切なプライバシー設定を設定することなどにより、ユーザ101がそのアクションをソーシャル・ネットワーキング・システム160によって記録させること、または他のシステム(例えば、サード・パーティ・システム170)と共有させることを選択するか、または選択しないことを可能にする許可サーバ(あるいは他の適切な1つ以上のコンポーネント)を含むことができる。ユーザのプライバシー・セッティングにより、ユーザに関連付けられるどのような情報のログが記録されるか、どのようにユーザに関連付けられる情報のログが記録されるか、いつユーザに関連付けられる情報がログを記録されるか、誰がユーザに関連付けられる情報のログを記録するか、誰がユーザに関連付けられる情報を共有するか、いかなる目的でユーザに関連付けられる情報のログを記録するか、あるいは情報を共有するかが決定される。認証サーバは、好適にブロッキング、データ・ハッシング、匿名化、あるいは他の適切な技術を介してソーシャル・ネットワーキング・システム160のユーザの1つ以上のプライバシー・セッティングを強化することに使用される。所定の実施形態では、サード・パーティ・システム170は、ウェブサイトおよびアプリケーションをホストすることができるネットワーク・アドレス指定可能なコンピューティング・システムである。サード・パーティ・システム170は、例えばウェブ・ページ、テキスト、画像、動画、オーディオ、あるいはアプリケーションなどのサードパーティ・システムデータを生成し、格納し、送受信する。ネットワーク環境100の他の構成要素により、直接的に、またはネットワーク110を介して、サード・パーティ・システム170にアクセスすることができる。特定の実施形態では、1人または複数のユーザ101は、1つまたは複数のクライアント・システム130を使用して、ソーシャル・ネットワーキング・システム160またはサード・パーティ・システム170にアクセスしてデータを送り、ソーシャル・ネットワーキング・システム160またはサード・パーティ・システム170からデータを受信することができる。クライアント・システム130は、直接的に、ネットワーク110を介して、またはサード・パーティ・システムを介して、ソーシャル・ネットワーキング・システム160またはサード・パーティ・システム170にアクセスすることができる。限定ではなく例として、クライアント・システム130は、ソーシャル・ネットワーキング・システム160を介してサード・パーティ・システム170にアクセスすることができる。クライアント・システム130は、例えば、パーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなどの任意の適切なコンピューティング装置でよい。
本開示は任意の適切なネットワーク110を企図する。限定ではなく例として、ネットワーク110のうちの1つまたは複数の部分は、アドホック・ネットワーク(ad hoc network)、イントラネット、エクストラネット、仮想プライベート・ネットワーク(virtual private network:VPN)、ローカル・エリア・ネットワーク(local area network:LAN)、ワイヤレスLAN(wireless LAN:WLAN)、広域ネットワーク(wide area network:WAN)、ワイヤレスWAN(wireless WAN:WWAN)、大都市圏ネットワーク(metropolitan area network:MAN)、インターネットの一部、公衆交換電話網(Public Switched Telephone Network:PSTN)の一部、携帯電話網、またはこれらの2つ以上の組合せを含むことができる。ネットワーク110は1つまたは複数のネットワーク110を含むことができる。
リンク150は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサード・パーティ・システム170を通信ネットワーク110に接続するか、または互いに接続することができる。本開示は任意の適切なリンク150を企図する。特定の実施形態では、1つまたは複数のリンク150は、1つまたは複数のワイヤーライン(wireline)(例えば、デジタル加入者線(Digital Subscriber Line:DSL)またはData Over Cable Service Interface Specification(DOCSIS)など)、ワイヤレス(例えば、Wi−FiまたはWorldwide Interoperability for Microwave Access(WiMAX)など)、または光(例えば、同期光ネットワーク(Synchronous Optical Network:SONET)または同期デジタル階層(Synchronous Digital Hierarchy:SDH)など)リンクを含む。特定の実施形態では、1つまたは複数のリンク150はそれぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク150、または2つ以上のそのようなリンク150の組合せを含む。リンク150は、必ずしもネットワーク環境100全体を通じて同一である必要はない。1つまたは複数の第1のリンク150は、1つまたは複数の点で1つまたは複数の第2のリンク150と異なることがある。
図2は、例示的なソーシャル・グラフ200を示す。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のデータ・ストア(data store)内に1つまたは複数のソーシャル・グラフ200を格納することができる。特定の実施形態では、ソーシャル・グラフ200は、複数のノード(これは複数のユーザ・ノード202または複数の概念ノード(concept node)204を含むことができる)と、ノードを接続する複数のエッジ(edge)206とを含むことができる。図2に示される例示的なソーシャル・グラフ200は、説明のために、2次元視覚マップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム160、クライアント・システム130、またはサード・パーティ・システム170は、ソーシャル・グラフ200および適切なアプリケーションについての関連するソーシャル・グラフ情報にアクセスすることができる。ソーシャル・グラフ200のノードおよびエッジを、データ・オブジェクトとして、例えばデータ・ストア(ソーシャル・グラフ・データベースなど)内に格納することができる。そのようなデータ・ストアは、ソーシャル・グラフ200のノードまたはエッジの1つまたは複数の検索可能または照会可能な索引を含むことができる。
特定の実施形態では、ユーザ・ノード202は、ソーシャル・ネットワーキング・システム160のユーザに対応することができる。限定ではなく例として、ユーザは、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を介して対話または通信する個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサード・パーティ・アプリケーション)、または(例えば、個人またはエンティティの)グループでよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム160にアカウントを登録するとき、ソーシャル・ネットワーキング・システム160は、ユーザに対応するユーザ・ノード202を作成し、1つまたは複数のデータ・ストア内にユーザ・ノード202を格納することができる。本明細書で説明するユーザおよびユーザ・ノード202は、適切な場合、登録されたユーザおよび登録されたユーザに関連するユーザ・ノード202を指す。追加または代替として、本明細書で説明するユーザおよびユーザ・ノード202は、適切な場合、ソーシャル・ネットワーキング・システム160に登録していないユーザを指す。特定の実施形態では、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集される情報に、ユーザ・ノード202を関連付けることができる。限定ではなく例として、ユーザは、ユーザの名前、プロファイル写真、連絡先情報、誕生日、性別、結婚状況、家族状況、職業、学歴、好み、関心、または他の人口統計情報を提供することができる。特定の実施形態では、ユーザに関連する情報に対応する1つまたは複数のデータ・オブジェクトにユーザ・ノード202を関連付けることができる。特定の実施形態では、ユーザ・ノード202は、1つまたは複数のウェブ・ページに対応することができる。
特定の実施形態では、概念ノード204は概念(concept)に対応することができる。限定ではなく例として、概念は、場所(例えば、映画館、レストラン、ランドマーク、または都市など)、ウェブサイト(例えば、ソーシャル・ネットワーク・システム160に関連するウェブサイトまたはウェブ・アプリケーション・サーバに関連するサード・パーティ・ウェブサイトなど)、エンティティ(例えば、人、会社、グループ、スポーツ・チーム、または有名人など)、ソーシャル・ネットワーキング・システム160内またはウェブ・アプリケーション・サーバなどの外部サーバ上に位置することのできるリソース(例えば、オーディオ・ファイル、ビデオ・ファイル、デジタル・フォト、テキスト・ファイル、構造化された文書、またはアプリケーションなど)、物的または知的財産(例えば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著作物など)、ゲーム、活動、アイデアまたは理論、他の適切な概念、あるいは2つ以上のそのような概念に対応することができる。ユーザによって提供される概念の情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集される情報に概念ノード204を関連付けることができる。限定ではなく例として、概念の情報は、名前またはタイトル、1つまたは複数のイメージ(例えば、本のカバー・ページのイメージ)、位置(例えば、住所または地理的位置)、ウェブサイト(それをURLに関連付けることができる)、連絡先情報(例えば、電話番号またはeメール・アドレス)、他の適切な概念情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態では、概念ノード204に関連する情報に対応する1つまたは複数のデータ・オブジェクトに概念ノード204を関連付けることができる。特定の実施形態では、概念ノード204は1つまたは複数のウェブ・ページに対応することができる。
特定の実施形態では、ソーシャル・グラフ200内のノードは、ウェブ・ページ(「プロファイル・ページ」と呼ばれることがある)を表すこと、またはウェブ・ページによって表すことができる。プロファイル・ページは、ソーシャル・ネットワーキング・システム160によってホストすること、またはソーシャル・ネットワーキング・システム160にとってアクセス可能にすることができる。プロファイル・ページはまた、サード・パーティ・サーバ170に関連するサード・パーティ・ウェブサイト上でホストすることもできる。限定ではなく例として、特定の外部ウェブ・ページに対応するプロファイル・ページは、特定の外部ウェブ・ページでよく、プロファイル・ページは、特定の概念ノード204に対応することができる。プロファイル・ページは、他のユーザのすべてまたは選択された一部分によって閲覧可能とすることができる。限定ではなく例として、ユーザ・ノード202は、対応するユーザがその中でコンテンツを追加し、宣言を行い、あるいはユーザ自身を表現することのできる、対応するユーザ・プロファイル・ページを有することができる。限定ではなく別の例として、概念ノード204は、特に概念ノード204に対応する概念に関連して、1人または複数のユーザがその中でコンテンツを追加し、宣言を行い、またはユーザ自身を表現することのできる、対応する概念プロファイル・ページを有することができる。
特定の実施形態では、概念ノード204は、サード・パーティ・システム170によってホストされるサード・パーティ・ウェブページまたはリソースを表すことができる。サード・パーティ・ウェブページまたはリソースは、他の要素において、コンテンツ、選択可能な、もしくは他のアイコン、またはアクションもしくは活動を表す(例えば、JAVA(登録商標)Script、AJAX、またはPHPコードで実装することのできる)他の対話型オブジェクトを含むことができる。限定ではなく例として、サード・パーティ・ウェブページは、「いいね」、「チェックイン(check in)」、「食べる(eat)」、「レコメンド(recommend)」、または別の適切なアクションもしくは活動などの、選択可能なアイコンを含むことができる。サード・パーティ・ウェブページを閲覧するユーザは、アイコンのうちの1つ(例えば、「食べる」)を選択し、クライアント・システム130に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム160に送信させることによってアクションを実施することができる。メッセージに応答して、ソーシャル・ネットワーキング・システム160は、ユーザに対応するユーザ・ノード202と、サード・パーティ・ウェブページまたはリソースに対応する概念ノード204との間のエッジ(例えば、「食べる」エッジ)を作成し、1つまたは複数のデータ・ストア内にエッジ206を格納することができる。
特定の実施形態では、1つまたは複数のエッジ206によってソーシャル・グラフ200内の1対のノードを互いに接続することができる。1対のノードを接続するエッジ206は、その1対のノード間の関係を表すことができる。特定の実施形態では、エッジ206は、1対のノード間の関係に対応する1つまたは複数のデータ・オブジェクトまたは属性を含むか、または表すことができる。限定ではなく例として、第1のユーザは、第2のユーザが第1のユーザの「友人」であることを示すことができる。この表示に応答して、ソーシャル・ネットワーキング・システム160は、第2のユーザに「友人要求」を送信することができる。第2のユーザが「友人要求」を確認した場合、ソーシャル・ネットワーキング・システム160は、第1のユーザのユーザ・ノード202をソーシャル・グラフ200内の第2のユーザのユーザ・ノード202に接続するエッジ206を作成し、データ・ストア164のうちの1つまたは複数の中にエッジ206をソーシャル・グラフ情報として格納することができる。図2の例では、ソーシャル・グラフ200は、ユーザ「A」とユーザ「B」のユーザ・ノード202間の友人関係を示すエッジ206と、ユーザ「C」とユーザ「B」のユーザ・ノード202間の友人関係を示すエッジとを含む。本開示は、特定のユーザ・ノード202を接続する特定の属性を有する特定のエッジ206を説明するかまたは図示するが、本開示は、ユーザ・ノード202を接続する任意の適切な属性を有する任意の適切なエッジ206を企図する。限定ではなく例として、エッジ206は、友人関係、家族関係、ビジネスまたは雇用関係、ファン関係(fan relationship)、フォロワ関係、ビジター関係(visitor relationship)、加入者関係、上位/従属関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表すことができる。さらに、本開示は一般にノードが接続されているものとして説明するが、本開示はまた、ユーザまたは概念が接続されているものとして説明する。本明細書では、接続されているユーザまたは概念に対する参照は、適切な場合、1つまたは複数のエッジ206によってソーシャル・グラフ200内で接続されているユーザまたは概念に対応するノードを指すことがある。
特定の実施形態では、ユーザ・ノード202と概念ノード204との間のエッジ206は、概念ノード204に関連する概念に対する、ユーザ・ノード202に関連するユーザによって実施される特定のアクションまたは活動を表すことができる。限定ではなく例として、図2に示されるように、ユーザは、概念に対して「いいね」を表明し、概念に「出席し」、概念を「再生し」、概念を「聴取し」、概念を「調理し」、概念に「取り組み」、または概念を「視聴する」ことができ、そのそれぞれは、エッジ・タイプまたはサブタイプに対応することができる。概念ノード204に対応する概念プロファイル・ページは、例えば、選択可能な「チェックイン」アイコン(例えば、クリッカブル(clickable)「チェックイン」アイコンなど)または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム160は、それぞれのアクションに対応するユーザのアクションに応答して、「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく別の例として、ユーザ(ユーザ「C」)が、特定のアプリケーション(オンライン音楽アプリケーションであるSPOTIFY)を使用して、特定の歌を聴取することができる(「イマジン」)。この場合、ソーシャル・ネットワーキング・システム160は、(図2に示すように)ユーザに対応するユーザ・ノード202と、歌およびアプリケーションに対応する概念ノード204との間の「聴取済み(listened)」エッジ206および「使用済み(used)」エッジを作成し、ユーザが歌を聴取し、アプリケーションを使用したことを示すことができる。さらに、ソーシャル・ネットワーキング・システム160は、(図2に示すように)歌およびアプリケーションに対応する概念ノード204間の「再生済み(played)」エッジ206を作成し、特定の歌が特定のアプリケーションによって再生されたことを示すことができる。この場合、「再生済み」エッジ206は、外部アプリケーション(SPOTIFY)によって外部オーディオ・ファイル(歌「イマジン」)に対して実施されたアクションに対応する。本開示は、ユーザ・ノード202および概念ノード204を接続する特定の属性を有する特定のエッジ206を説明するが、本開示は、ユーザ・ノード202および概念ノード204を接続する任意の適切な属性を有する任意の適切なエッジ206を企図する。さらに、本開示は単一の関係を表すユーザ・ノード202と概念ノード204との間のエッジを説明するが、本開示は、1つまたは複数の関係を表すユーザ・ノード202と概念ノード204との間のエッジを企図する。限定ではなく例として、エッジ206は、ユーザが特定の概念を好むこと、および特定の概念を使用したことの両方を表すことができる。あるいは、別のエッジ206は、(図2の、ユーザ「E」に関するユーザ・ノード202と、「SPOTIFY」に関する概念ノード204との間で示されるように)ユーザ・ノード202と概念ノード204との間の各タイプの関係(または複数の単一の関係)を表すことができる。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200内のユーザ・ノード202と概念ノード204との間のエッジ206を作成することができる。限定ではなく例として、(例えば、ユーザのクライアント・システム130によってホストされるウェブ・ブラウザまたは専用アプリケーションを使用することによって)概念プロファイル・ページを閲覧するユーザは、「いいね」アイコンをクリックまたは選択することにより、ユーザが概念ノード204によって表される概念を好むことを示すことができ、それによって、ユーザのクライアント・システム130に、ユーザが概念プロファイル・ページに関連する概念を好むことを示すメッセージをソーシャル・ネットワーキング・システム160に送信させることができる。メッセージに応答して、ソーシャル・ネットワーキング・システム160は、ユーザと概念ノード204との間の「いいね」エッジ206で示されるように、ユーザに関連するユーザ・ノード202と、概念ノード204との間のエッジ206を作成することができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のデータ・ストア内にエッジ206を格納することができる。特定の実施形態では、特定のユーザ・アクションに応答して、エッジ206をソーシャル・ネットワーキング・システム160によって自動的に形成することができる。限定ではなく例として、第1のユーザが写真をアップロードし、映画を視聴し、または歌を聴取する場合、第1のユーザに対応するユーザ・ノード202と、これらの概念に対応する概念ノード204との間のエッジ206を形成することができる。本開示は、特定の方式で特定のエッジ206を形成することを説明するが、本開示は、任意の適切な方式で任意の適切なエッジ206を形成することを企図する。
更に、任意の2つのノード間の隔たりの度合いは、1つのノードから別のノードまでソーシャル・グラフを横断するのに必要な最小数のホップ(あるいはエッジ)として定義される。2つのノード間の隔たりの度合いは、ユーザ間、あるいはソーシャル・グラフにおける2つのノードによって表される両概念の間の関連性の基準と考えられる。
上述したように、ソーシャル・ネットワーキング・システムは1つ以上のデータ・ストアにソーシャル・グラフの情報および他のソーシャル・ネットワーキング・システム関連情報を格納する。所定の実施形態では、データ・ストアに格納される情報は、所定のデータ構造体によって整理される。データ・ストアはそれぞれ、リレーショナル・データベース、列指向(columnar)データベース、相関関係データベース、あるいは他の適切なデータベースである。所定の実施形態においては、任意の適切なタイプのデータベースが考えられる。所定の実施形態においては、ソーシャル・ネットワーキング・システム、クライアント・システム、あるいはサード・パーティ・システムが、データ・ストアに格納される情報を管理、検索、修正、付加、あるいは削除可能なインターフェースが提供される。
付加的に、データベースは複数のパーティションに分割される。パーティションはそれぞれ個別のサーバによって、あるいは個別の物理的な位置に保持される。データベースの各パーティションのインデックスがデータベース全体のためのインデックスよりも小さいと、分割により、データベースにアクセスする際のパフォーマンスが改善される。複数のパーティションが多くのサーバに分配されると(パーティションの各々は、地理的に多様な位置で複写される)、分割により、データベースにアクセスする際のパフォーマンスおよび信頼性が更に改善される。データベースはデータベースの行(あるいは列)を個別に格納することにより分割される。データベースはハッシング・アルゴリズムを使用することによっても分割される。データベースは、データベース(例えば、米国の各時間帯の顧客)によって保持されるデータのある実際の世界の区分化によっても分割される。所定の実施形態においては、オブジェクト・タイプに基づきデータのコレクションのストレージがパーティション分割される。所定の実施形態においては、複数のパーティションにデータ・オブジェクトが格納され、各パーティションは1つのオブジェクト・タイプのデータ・オブジェクトを保持する。
図3は、ソーシャル・ネットワーキング・システムのオブジェクトの格納のためのパーティション分割、あるいはデータのコレクションを格納する任意の適切なシステムを例示する図である。図3の例では、複数のデータ・ストアあるいはバーティカル(verticals)(例えば、P1、P2、P3など)は、ソーシャル・ネットワーキング・システムのオブジェクトを格納する。所定の実施形態では、データ・ストアはそれぞれ対応するデータストレージ・デバイス340に複数のオブジェクト・タイプのうちの特定のオブジェクト・タイプのオブジェクトを格納するように構成される。オブジェクト・タイプは、ユーザ、ウェブ・ページ、アプリケーション、グループ、音楽、写真、動画、投稿、ニュース、質問、コメント、イベント、メッセージ、オファー(例えばクーポン)、およびレビューである。所定の実施形態においては、ソーシャル・ネットワーキング・システムの任意の適切なオブジェクト・タイプや、データのコレクションを格納する任意のシステムが考えられる。例えば、図3に例示されるバーティカルP1はユーザ・オブジェクトを格納し、バーティカルP2はウェブ・ページ・オブジェクトを格納し、バーティカルP3はアプリケーション・オブジェクトを格納する。すなわち、データ・ストアはそれぞれ、単一のオブジェクト・タイプのオブジェクトを格納する。所定の実施形態では、各データ・ストアやバーティカルに格納されるオブジェクトは、検索インデックスによってインデックスを付けられる。検索インデックスは、1台以上のコンピューティング・デバイス(例えばサーバ)を含む、各インデックス・サーバ330によってホストされる。
所定の実施形態では、1台以上のコンピューティング・デバイス(例えば、ソーシャル・ネットワーキング・システムのサーバ)にホストされるサーバ処理は、図3に例示するバーティカルにオブジェクトを格納する。サーバ処理はオブジェクトを受信し、受信オブジェクトのオブジェクト・タイプを識別する。例えば、サーバ処理は、特定のユーザによってソーシャル・ネットワーキング・システムにアップロードされるアプリケーションを受信し、アプリケーションのオブジェクト・タイプ(例えばアプリケーション)を識別する。サーバ処理は、受信アプリケーションに識別子(例えば、文字列)を割り当てる。付加的に、サーバ処理は、受信オブジェクトに関連付けられた情報を決定する。例えば、サーバ処理は、アプリケーション、アプリケーションに関するコメント、あるいはアプリケーションの位置を使用して、1人以上のユーザを決定する。サーバ処理は、識別されるオブジェクト・タイプのオブジェクトを格納するように構成される少なくとも1つの特定のデータ・ストアに受信オブジェクトを格納する。例えば、サーバ処理は、図3に例示するアプリケーション・バーティカルP3に受信アプリケーションを格納する。サーバ処理は、特定のデータ・ストアに受信オブジェクトに関連付けられた情報を格納する。サーバ処理は、受信オブジェクトに少なくとも一部基づき特定のデータ・ストアの検索インデックスを更新する。
いくつかの実施形態では、受信オブジェクト(例えば、受信アプリケーション)は、ソーシャル・ネットワーキング・システムのソーシャル・グラフの特定のノードに相当する。特定のノードと別のノードとをつなげるエッジは、受信オブジェクトと、別のノードに対応するユーザ(あるいは概念)との関係を示す。すなわち、サーバ処理は、特定のデータ・ストア(識別されたオブジェクト・タイプの)に、ソーシャル・グラフにおける受信オブジェクトの情報、および受信オブジェクトに対応するノード同士をつなげる1つ以上のエッジの情報を格納する。サーバ処理は、受信オブジェクトに基づきデータ・ストアの検索インデックスを、また、受信オブジェクトに関連付けられる関係(すなわちエッジ)を更新する。
ユーザあるいはコンピューティング・プロセスは、図3に例示するバーティカルに実行用の検索クエリを送り、これにより、バーティカルのインデックス・サーバは、検索クエリに対して1つ以上の検索結果を検索するとともに返す。インデックス・サーバはその全体において検索クエリを使用して検索結果を検索する。しかしながら、検索クエリ全体に基づく検索結果は最適ではないであろう。例えば、ユーザは、「farmville」という名のゲーム・アプリケーションを検索するために検索クエリ「farmvilleアプリ」を送信する。検索クエリ「farmvilleアプリ」全体が図3に例示するアプリケーション・バーティカルP3に送信されると、アプリケーション・バーティカルP3が「farmville」あるいは「farmville 2」のようなアプリケーション・オブジェクトのみを格納するがアプリケーション・オブジェクト「farmvilleアプリ」を格納しないため、アプリケーション・バーティカルP3のインデックス・サーバは、一致の結果を返さないであろう。これに対し、検索クエリ「farmville」がアプリケーション・バーティカルP3に送信されると、アプリケーション・バーティカルP3のインデックス・サーバは、一致した結果(例えばアプリケーション「farmville」および「farmville 2」)を返す。すなわち、検索クエリが特定のバーティカルに送信される際に検索クエリにおける1つ以上の用語が取り払われるかオプションとされると、検索クエリにより、よりよい検索結果が生成される。所定の実施形態において、検索クエリにおける検索語をオプションにすることにより、検索クエリを最適化する方法が開示される。所定の実施形態においては、検索クエリにおいて検索語およびその対応するバーティカルが識別され、検索語をオプションにすることにより検索クエリが修正され、修正された検索クエリが、実行するために対応するバーティカルに送信される。
図4は、検索クエリを最適化する方法400を例示する。方法400は、ソーシャル・ネットワーキング・システムの1台以上のコンピューティング・デバイス(例えばサーバ)、あるいは1つ以上のデータベースを含む任意の適切なシステムによってホストされる集約処理(例えば、図3に例示されるトップ集約装置320)によって実行される。方法は工程410で開始する。所定の実施形態においては、工程410で、集約処理は検索クエリを受信する。例えば、集約処理は図3に例示するような検索クエリを受信する。検索クエリはテキスト・ストリングを含む。検索クエリは、PHPプロセス(あるいはソーシャル・ネットワーキング・システムの別のプロセス)を介してユーザによって送信される構造化しているか、実質的に構造化していないテキスト・ストリングである。検索クエリは、「farmvilleアプリ」、「ベックス会社」、「レイク・タホ」、あるいは「米国大統領」などのテキスト・ストリングである。
所定の実施形態では、ソーシャル・ネットワーキング・システムは、実行するために、特定のバーティカルに送信される検索クエリにおいてオプションとされる1つ以上の検索語を指定する。例えば、ソーシャル・ネットワーキング・システムは、アプリケーション・バーティカルP3に送信される検索クエリにおいてオプションとされる検索語「アプリ」、「アプリケーション」、および「ゲーム」を指定する。ソーシャル・ネットワーキング・システムは、ページ・バーティカルP2に送信される検索クエリにおいてオプションとされる検索語「単ページ」、「複数ページ」、「会社」、「会社概要」、および「com」を指定する。ソーシャル・ネットワーキング・システムは、ユーザ・バーティカルP1に送信される検索クエリにおいてオプションとされる検索語「友達」および「人」を指定する。ソーシャル・ネットワーキング・システムは、グループ・オブジェクト・タイプのオブジェクトを格納するデータ・ストアに送信される検索クエリにおいてオプションとされる検索語「単グループ」および「複数グループ」を更に指定する。所定の実施形態において、工程420では、集約処理は、検索クエリにおける複数のオブジェクト・タイプのうちの第1のオブジェクト・タイプに関連付けられる検索語を識別する。すなわち、集約処理は、検索クエリにおける第1のオブジェクト・タイプのオブジェクトを格納する特定のバーティカルに対応する検索語を識別する。検索語は、実行するために、特定のバーティカルに送信される検索クエリにおいてオプションとされる。
所定の実施形態において、工程430では、集約処理は、検索クエリにおける検索語をオプションにすることにより、検索クエリを修正する。集約処理は、検索クエリから検索語を取り除くことにより検索語をオプションにする。例えば、集約処理は、検索クエリ「farmvilleアプリ」においてアプリケーション・オブジェクト・タイプに関連付けられる検索語「アプリ」を識別する。集約処理は、検索クエリから検索語を取り除くことにより検索語「アプリ」をオプションにする。すなわち、集約処理は検索クエリを「farmville」と修正する。別の例において、集約処理は、検索クエリ「ベックス会社」を受信する(例えば「ベック」あるいは「ベックス」という名の会社を検索するユーザから)。集約処理は、検索クエリ「ベックス会社」においてウェブ・ページ・オブジェクト・タイプに関連付けられる検索語「会社」を識別する。集約処理は、検索クエリから検索語を取り除くことにより検索語「会社」をオプションにする。すなわち、集約処理は検索クエリを「ベックス」と修正する。一実施形態において、集約処理は、検索クエリから「a」、「an」、あるいは「the」のような1つ以上のストップワードを取り除く。例えば、集約処理は、検索クエリ「米国大統領」から「the」を取り除く。
別例においては、集約処理は、検索クエリにおける検索語に値を割り当てることにより、検索語をオプションにする。修正された検索クエリは、修正された検索クエリの実行から、値を超えるすべての結果に対する検索語に一致する結果の比を要求する。例えば、集約処理は、検索クエリ「farmvilleアプリ」において検索語「アプリ」に0.2の値を割り当てる。集約処理は検索クエリを「farmvilleアプリ 0.2」と修正する。修正済の検索クエリ「farmvilleアプリ 0.2」は、検索結果の20%(すなわち0.2)が検索語「アプリ」と一致する必要があり、検索結果の残りの80%がその検索語を省略することを要求する。すなわち、修正済の検索クエリ「farmvilleアプリ 0.2」の100の検索結果がある場合、20の結果が検索語「アプリ」と一致する必要があり、80の結果が検索クエリの残り(すなわち「farmville」)のみと一致する。別の例において、集約処理は検索クエリ「レイク・タホ」を受信する。集約処理は、検索クエリ「レイク・タホ」において、ウェブ・ページ・オブジェクト・タイプに関連付けられる検索語「レイク」を識別する。集約処理は、検索クエリ「レイク・タホ」における検索語「レイク」に0.4の値を割り当てる。修正済の検索クエリ「レイク 0.4 タホ」は、検索結果の40%が検索語「レイク」と一致する必要があり、検索結果の残りの60%がその検索語を省略する。すなわち、修正済の検索クエリ「レイク 0.4 タホ」の100の検索結果がある場合、40の結果が検索語「レイク」と一致する必要があり、60の結果が検索クエリの残り(すなわち「タホ」)にのみ一致する。
所定の実施形態において、工程440では、集約処理は、第1のオブジェクト・タイプのオブジェクトを格納する第1のデータ・ストアに対して、実行用の修正された検索クエリを送信する。すなわち、集約処理は、識別される検索語に対応するバーティカルに対して、実行用の修正された検索クエリを送信する。例えば、アプリケーション・オブジェクト・タイプに関連付けられる識別された検索語「アプリ」を有する検索クエリ「farmvilleアプリ」において、集約処理は、図3に例示するアプリケーション・バーティカルP3に、修正済みの検索クエリ「farmville」(あるいは「farmvilleアプリ 0.2」)を送信する。アプリケーション・バーティカルP3が「farmville」を含む名前を有するアプリケーション・オブジェクトを格納する可能性が高く、アプリケーション・バーティカルP3が名前「farmvilleアプリ」を有するアプリケーション・オブジェクトを格納する可能性が低いため、上述したように、修正済の検索クエリはよりよい検索結果を生成する。別の例において、ウェブ・ページ・オブジェクト・タイプに関連付けられる識別された検索語「会社」を有する検索クエリ「ベックス会社」に関して、集約処理は図3に例示するページ・バーティカルP2に修正済の検索クエリ「ベックス」を送信する。別の例において、ウェブ・ページ・オブジェクト・タイプに関連付けられる識別された検索語「レイク」を有する検索クエリ「レイク・タホ」に関して、集約処理は図3に例示するページ・バーティカルP2に修正済の検索クエリ「レイク 0.4 タホ」を送信する。
第1のオブジェクト・タイプのオブジェクトを格納する第1のデータ・ストアに対して、実行用の修正された検索クエリを送信することに付加的に、所定の実施形態において、集約処理は、オブジェクト・タイプのうちの第2のオブジェクト・タイプのオブジェクトを格納する第2のデータ・ストアに対して、実行用の修正なしの検索クエリを送信する。すなわち、(識別された)第1のオブジェクト・タイプのオブジェクトを格納するデータ・ストアに修正された検索クエリを送信することに付加的に、集約処理は、第1のオブジェクト・タイプとは異なるオブジェクト・タイプのオブジェクトを各々格納する他のデータ・ストアに修正なしの検索クエリを送信する。例えば、集約処理は図3に例示するユーザ・バーティカルP1に、あるいはページ・バーティカルP2に、未修正の検索クエリ「farmvilleアプリ」を送信する。別の例において、集約処理は図3に例示するユーザ・バーティカルP1に、あるいはアプリケーション・バーティカルP3に、未修正の検索クエリ「ベックス会社」を送信する。集約処理は図3に例示するユーザ・バーティカルP1に、あるいはアプリケーション・バーティカルP3に、未修正の検索クエリ「レイク・タホ」を送信する。
所定の実施形態において、集約処理は、修正された検索クエリの実行による第1の検索結果と修正なしの検索クエリ実行による第2の検索結果とを集約する。例えば、上述した検索クエリ「farmvilleアプリ」において、集約装置は、アプリケーション・バーティカルP3から(修正済の検索クエリ「farmville」あるいは「farmvilleアプリ 0.2」に基づき)検索される検索結果の第1のリスト、並びにユーザ・バーティカルP1およびページ・バーティカルP2から(未修正の検索クエリ「farmvilleアプリ」に基づき)検索される検索結果の第2のリストを集約する。集約処理は、検索結果の第1および第2のリストにOR演算子を適用することにより、検索結果の第1および第2のリストを集約する。すなわち、集約される結果は、第1および第2のリストの検索結果の結合である。付加的に、所定の実施形態においては、集約処理は、第1の検索結果に少なくとも一部基づいて、集約された結果をランク付けする。例えば、集約処理は、(例えば、アプリケーション・バーティカルP3から修正済の検索クエリ「farmville」あるいは「farmvilleアプリ 0.2」に基づき検索される)第1の検索結果を、(例えば、ユーザ・バーティカルP1およびページ・バーティカルP2から未修正の検索クエリ「farmvilleアプリ」に基づき検索される)第2の検索結果よりも高くランク付けする。
特定の実施形態は、適切な場合、図4の方法の1つまたは複数のステップを反復することができる。本開示は、図4の方法の特定のステップが特定の順序で行われるものとして説明および図示するが、本開示は、任意の適切な順序で行われる図4の方法の任意の適切なステップを企図する。さらに、本開示は、図4の方法の特定のステップを実施する特定の構成要素、装置、またはシステムを説明および図示するが、本開示は、図4の方法の任意の適切なステップを実施する任意の適切な構成要素、装置、またはシステムの任意の適切な組合せを企図する。
図5は、例示的なコンピュータ・システム500を示す。特定の実施形態では、1つまたは複数のコンピュータ・システム500は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータ・システム500は、本明細書で説明または図示される機能を提供する。特定の実施形態では、1つまたは複数のコンピュータ・システム500上で実行中のソフトウェアが、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施しまたは本明細書で説明または図示される機能を提供する。特定の実施形態は、1つまたは複数のコンピュータ・システム500の1つまたは複数の部分を含む。本明細書では、適切な場合、コンピュータ・システムに対する参照はコンピューティング装置を包含し、逆も同様である。さらに、適切な場合、コンピュータ・システムに対する参照は、1つまたは複数のコンピュータ・システムを包含する。
本開示は、任意の適切な数のコンピュータ・システム500を企図する。本開示は、任意の適切な物理的形態を取るコンピュータ・システム500を企図する。限定ではなく例として、コンピュータ・システム500は、組込みコンピュータ・システム、システム・オン・チップ(SOC)、シングル・ボード・コンピュータ・システム(SBC)(例えば、コンピュータ・オン・モジュール(COM)やシステム・オン・モジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話型キオスク、メインフレーム、コンピュータ・システムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらの2つ以上の組合せでよい。適切な場合、コンピュータ・システム500は、1つまたは複数のコンピュータ・システム500を含むことができ、一体型または分散型でよく、複数の場所にわたるものでよく、複数のマシンにわたるものでよく、複数のデータセンタにわたるものでよく、またはクラウド内に常駐することができ、クラウドは、1つまたは複数のネットワーク内の1つまたは複数のクラウド構成要素を含むことができる。適切な場合、1つまたは複数のコンピュータ・システム500は、実質的な空間的または時間的な限定なしに、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実施することができる。限定ではなく例として、1つまたは複数のコンピュータ・システム500は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップをリアル・タイムに、またはバッチ・モードで実施することができる。適切な場合、1つまたは複数のコンピュータ・システム500は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを異なる時刻または異なる場所で実施することができる。
特定の実施形態では、コンピュータ・システム500は、プロセッサ502、メモリ504、ストレージ506、入力/出力(I/O)インターフェース508、通信インターフェース510、およびバス512を含む。本開示は、特定の構成の、特定の数の特定の構成要素を有する特定のコンピュータ・システムを説明および図示するが、本開示は、任意の適切な構成の、任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータ・システムを企図する。
特定の実施形態では、プロセッサ502は、コンピュータ・プログラムを構成するような命令を実行するハードウェアを含む。限定ではなく例として、命令を実行するために、プロセッサ502は、内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506から命令を取り出し(またはフェッチし)、その命令を復号化および実行し、次いで内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506に1つまたは複数の結果を書き込むことができる。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ502を企図する。限定ではなく例として、プロセッサ502は、1つまたは複数の命令キャッシュ、1つまたは複数のデータ・キャッシュ、および1つまたは複数の変換ルックアサイド・バッファ(translation lookaside buffer:TLB)を含むことができる。命令キャッシュ内の命令は、メモリ504またはストレージ506内の命令のコピーでよく、命令キャッシュは、プロセッサ502によるそうした命令の検索を加速することができる。データ・キャッシュ内のデータは、プロセッサ502で実行中の命令が演算するためのメモリ504またはストレージ506内のデータ、プロセッサ502で実行中の後続の命令によるアクセスのために、またはメモリ504もしくはストレージ506に書き込むために、プロセッサ502で実行された以前の命令の結果、あるいは他の適切なデータのコピーでもよい。データ・キャッシュは、プロセッサ502による読取りまたは書込み演算を加速することができる。TLBはプロセッサ502のための仮想アドレス変換(virtual−address translation)を加速することができる。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレス用の1つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ502を企図する。適切な場合、プロセッサ502は、1つまたは複数の演算論理装置(arithmetic logic unit:ALU)を含むことができ、マルチコア・プロセッサでよく、または1つまたは複数のプロセッサ502を含むことができる。本開示は特定のプロセッサを説明および図示するが、本開示は任意の適切なプロセッサを企図する。
特定の実施形態では、メモリ504は、プロセッサ502が実行するための命令、またはプロセッサ502が演算するためのデータを格納するメイン・メモリを含む。限定ではなく例として、コンピュータ・システム500は、ストレージ506または別のソース(例えば、別のコンピュータ・システム500など)からメモリ504に命令をロードすることができる。次いでプロセッサ502は、メモリ504から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ502は、内部レジスタまたは内部キャッシュから命令を取り出し、その命令を復号化することができる。命令の実行中または実行後に、プロセッサ502は、1つまたは複数の結果(これは中間結果または最終結果でよい)を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ502は、そうした結果の1つまたは複数をメモリ504に書き込むことができる。特定の実施形態では、プロセッサ502は、(ストレージ506または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ504内の命令のみを実行し、(ストレージ506または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内、またはメモリ504内のデータのみに対して演算する。1つまたは複数のメモリ・バス(これはそれぞれアドレス・バスおよびデータ・バスを含むことができる)が、プロセッサ502をメモリ504に結合することができる。バス512は、以下で説明するように、1つまたは複数のメモリ・バスを含むことができる。特定の実施形態では、1つまたは複数のメモリ管理ユニット(memory management unit:MMU)が、プロセッサ502とメモリ504との間に常駐し、プロセッサ502によって要求されたメモリ504へのアクセスを可能にする。特定の実施形態では、メモリ504はランダム・アクセス・メモリ(RAM)を含む。適切な場合、このRAMは揮発性メモリでよい。適切な場合、このRAMはダイナミックRAM(DRAM)またはスタティックRAM(SRAM)でよい。さらに、適切な場合、このRAMは、単一ポートまたはマルチポートRAMでよい。本開示は任意の適切なRAMを企図する。適切な場合、メモリ504は、1つまたは複数のメモリ504を含むことができる。本開示は特定のメモリを説明および図示するが、本開示は任意の適切なメモリを企図する。
特定の実施形態では、ストレージ506は、データまたは命令用のマス・ストレージを含む。限定ではなく例として、ストレージ506は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)・ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス(USB)ドライブ、あるいはこれらのうちの2つ以上の組合せを含むことができる。ストレージ506は、適切な場合、取外し可能または取外し不能(または固定)媒体を含むことができる。ストレージ506は、適切な場合、コンピュータ・システム500の内部または外部でよい。特定の実施形態では、ストレージ506は不揮発性固体メモリである。特定の実施形態では、ストレージ506は読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムされたROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気消去可能PROM(EEPROM)、電気書換え可能ROM(EAROM)、またはフラッシュ・メモリ、あるいはこれらのうちの2つ以上の組合せでよい。本開示は、任意の適切な物理的形態を有するマス・ストレージ506を企図する。適切な場合、ストレージ506は、プロセッサ502とストレージ506との間の通信を可能にする1つまたは複数のストレージ制御ユニットを含むことができる。適切な場合、ストレージ506は、1つまたは複数のストレージ506を含むことができる。本開示は特定のストレージを説明および図示するが、本開示は任意の適切なストレージを企図する。
特定の実施形態では、I/Oインターフェース508は、コンピュータ・システム500と1つまたは複数のI/O装置との間の通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム500は、適切な場合、これらのI/O装置のうちの1つまたは複数を含むことができる。これらのI/O装置のうちの1つまたは複数は、人とコンピュータ・システム500との間の通信を可能にすることができる。限定ではなく例として、I/O装置は、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の適切なI/O装置、またはこれらのうちの2つ以上の組合せを含むことができる。I/O装置は1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/O装置およびそのための任意の適切なI/Oインターフェース508を企図する。適切な場合、I/Oインターフェース508は、プロセッサ502がこれらのI/O装置のうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。I/Oインターフェース508は、適切な場合、1つまたは複数のI/Oインターフェース508を含むことができる。本開示は特定のI/Oインターフェースを説明および図示するが、本開示は任意の適切なI/Oインターフェースを企図する。
特定の実施形態では、通信インターフェース510は、コンピュータ・システム500と、1つまたは複数の別のコンピュータ・システム500あるいは1つまたは複数のネットワークとの間の通信(例えば、パケット・ベースの通信など)用の1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、通信インターフェース510は、イーサネット(登録商標)または他のワイヤ・ベースのネットワークと通信するネットワーク・インターフェース・コントローラ(network interface controller:NIC)またはネットワーク・アダプタ、あるいはWi−Fiネットワークなどのワイヤレス・ネットワークと通信するワイヤレスNIC(wire−based network or a wireless:WNIC)またはワイヤレス・アダプタを含むことができる。本開示は、任意の適切なネットワークおよびそのための任意の適切な通信インターフェース510を企図する。限定ではなく例として、コンピュータ・システム500は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、大都市圏ネットワーク(metropolitan area network:MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスでよい。1例を挙げると、コンピュータ・システム500は、ワイヤレスPAN(WPAN)(例えば、BLUETOOTH(登録商標) WPANなど)、Wi−Fiネットワーク、WI−MAXネットワーク、携帯電話網(例えば、Global System for Mobile Communication(GSM(登録商標))ネットワークなど)、または他の適切なワイヤレス・ネットワーク、あるいはこれらのうちの2つ以上の組合せと通信することができる。コンピュータ・システム500は、適切な場合、これらのネットワークのいずれかに関する任意の適切な通信インターフェース510を含むことができる。通信インターフェース510は、適切な場合、1つまたは複数の通信インターフェース510を含むことができる。本開示は特定の通信インターフェースを説明および図示するが、本開示は任意の適切な通信インターフェースを企図する。
特定の実施形態では、バス512は、コンピュータ・システム500の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、バス512は、アクセラレーテッド・グラフィックス・ポート(Accelerated Graphics Port:AGP)または他のグラフィックス・バス、Enhanced Industry Standard Architecture(EISA)バス、フロント・サイド・バス(FSB)、HYPERTRANSPORT(HT)相互接続、Industry Standard Architecture(ISA)バス、INFINIBAND相互接続、低ピン・カウント(low−pin−count:LPC)バス、メモリ・バス、Micro Channel Architecture(MCA)バス、Peripheral Component Interconnect(PCI)バス、PCI−Express(PCIe)バス、serial advanced technology attachment(SATA)バス、Video
Electronics Standards Association local(VLB)バス、または別の適切なバス、あるいはこれらのうちの2つ以上の組合せを含むことができる。バス512は、適切な場合、1つまたは複数のバス512を含むことができる。本開示は特定のバスを説明および図示するが、本開示は、任意の適切なバスまたは相互接続を企図する。
本明細書では、コンピュータ可読非一時的記憶媒体は、適切な場合、1つまたは複数の半導体ベースの、または他の集積回路(IC)(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスク・ドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)・ディスケット、フロッピー(登録商標)・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。
本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「または」は排他的ではなく包含的である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AまたはB」は「A、B、またはその両方」を意味する。さらに、別段に明記されていない限り、または文脈によって示されていない限り、「および」は協同および個々の両方である。したがって、本明細書では、別段に明記されていない限り、または文脈によって示されていない限り、「AおよびB」は、「AおよびBが一緒に、または個別に」を意味する。
本開示の範囲は、当業者なら理解するはずである、本明細書で説明または図示される例示的実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または図示される例示的実施形態に限定されない。さらに、本開示は、本明細書のそれぞれの実施形態が特定の構成要素、要素、機能、動作、またはステップを含むものとして説明および図示するが、これらの実施形態のいずれも、当業者なら理解するはずである、本明細書のどこかで説明または図示される構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは置換を含むことができる。さらに、特定の機能を実施するように適合され、配置され、実施することが可能であり、実施するように構成され、実施することが可能にされ、実施するように動作可能である装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲での参照は、その装置、システム、または構成要素がそのように適合され、配置され、可能であり、構成され、可能にされ、動作可能にされる限り、その装置、システム、構成要素またはその特定の機能が活動化され、オンにされ、またはロック解除されるか否かに関わらず、その装置、システム、構成要素を包含する。

Claims (28)

  1. 1台以上のコンピューティング・デバイスの1つ以上のプロセッサによる方法であって、
    前記プロセッサによって、クライアント・システムから複数の検索語を含む検索クエリを受信する工程と、
    前記プロセッサによって、前記検索クエリ中の第1の検索語が複数のオブジェクト・タイプのうちの第1のオブジェクト・タイプの記述子であることを判定する工程と、
    前記プロセッサによって、複数のデータ・ストアのうち前記第1の検索語に対応する第1のデータ・ストアを識別する工程であって、前記第1のデータ・ストアは前記第1のオブジェクト・タイプのオブジェクトのみを格納する、識別する工程と、
    前記プロセッサによって、前記第1の検索語が前記第1のオブジェクト・タイプの記述子であるという判定に基づき、前記検索クエリから前記第1の検索語を取り除くことにより、前記検索クエリを修正する工程と、
    前記プロセッサによって、前記第1のデータ・ストアに結合された第1のインデックス・サーバを用いて、前記第1のデータ・ストアから修正済の前記検索クエリに応じた第1の検索結果を取得する工程であって、前記第1のインデックス・サーバは前記第1のデータ・ストアに格納された前記第1のオブジェクト・タイプのオブジェクトに関連付けられたサーチ・インデックスをホストし、取得された前記第1の検索結果は修正済の前記検索クエリに適合し、取得された前記第1の検索結果は前記第1の検索語には適合しない、第1の検索結果を取得する工程と、
    前記プロセッサによって、前記検索クエリに応じて、1つ以上の前記第1の検索結果を前記クライアント・システムに送信する工程とを含む方法。
  2. 複数のノードと同ノード同士をつなげる複数のエッジとを含むソーシャル・グラフにアクセスする工程をさらに含み、該ノードのうちの2つの間の前記エッジの各々は、前記ノード間の一次の隔たりを示し、該ノードは、
    前記クライアント・システムの第1のユーザに対応する第1のノードであって、該第1のユーザはオンライン・ソーシャル・ネットワークのユーザである、第1のノードと、
    前記オンライン・ソーシャル・ネットワークに関連付けられる複数のオブジェクトに対応する複数の第2のノードとを含む、請求項1に記載の方法。
  3. 前記第1のデータ・ストアは、前記第1のオブジェクト・タイプの1つ以上のオブジェクトに対応する1つ以上の第2のノードを前記ソーシャル・グラフの1つ以上の他のノードとつなげる1つ以上のエッジに関する情報をさらに含む、請求項2に記載の方法。
  4. 前記クライアント・システムに送信される前記1つ以上の第1の検索結果の各々は前記第2のノードのうちの1つ以上に対応する、請求項2に記載の方法。
  5. 新しいオブジェクトが前記オンライン・ソーシャル・ネットワークによって受信されると、前記第1のデータ・ストアを更新する工程をさらに含み、前記第1のデータ・ストアの前記更新は、該新しいオブジェクトに対応する第2のノードを前記第1のノードにつなげる1つ以上のエッジに関する情報の更新を含む、請求項2に記載の方法。
  6. 前記複数のオブジェクト・タイプのうちの第2のオブジェクト・タイプのオブジェクトを格納する第2のデータ・ストアに対して実行用の修正のない前記検索クエリを送信する工程と、
    前記修正のない前記検索クエリの前記第2のデータ・ストアに対する実行による第2の検索結果と前記第1の検索結果を集約する工程とをさらに含む、請求項1に記載の方法。
  7. 前記第1の検索結果に少なくとも一部基づき、前記集約された検索結果をランク付けする工程をさらに含む、請求項6に記載の方法。
  8. 前記第1の検索結果は前記第2の検索結果よりも高くランク付けされる、請求項7に記載の方法。
  9. 前記複数のデータ・ストアは複数のオブジェクト・タイプのオブジェクトを含み、各データ・ストアは、1つのオブジェクト・タイプのオブジェクトのみを含む、請求項1に記載の方法。
  10. オブジェクトのオブジェクト・タイプを識別する工程と、
    前記オブジェクトに識別子を割り当てる工程と、
    前記識別されたオブジェクト・タイプのオブジェクトを格納するように構成されるデータ・ストアに前記オブジェクトを格納する工程とをさらに含む、請求項1に記載の方法。
  11. ソーシャル・ネットワーキング・システムの集約処理を使用して、前記第1のデータ・ストアに対して実行用の修正済の前記検索クエリを送信する工程をさらに含む、請求項1に記載の方法。
  12. 前記第1のオブジェクト・タイプはユーザ、ウェブ・ページ、アプリケーション、あるいはグループである、請求項1に記載の方法。
  13. 前記1台以上のコンピューティング・デバイスおよび前記複数のデータ・ストアはソーシャル・ネットワーキング・システムに関連付けられる、請求項1に記載の方法。
  14. ソフトウェアを具体化する1つまたは複数の非一時的なコンピュータ可読記憶媒体であって、該ソフトウェアは実行時に、
    1つ以上のコンピューティング・デバイスによって、クライアント・システムから複数の検索語を含む検索クエリを受信し、
    前記コンピューティング・デバイスによって、前記検索クエリ中の第1の検索語が複数のオブジェクト・タイプのうちの第1のオブジェクト・タイプの記述子であることを判定し、
    前記コンピューティング・デバイスによって、複数のデータ・ストアのうち前記第1の検索語に対応する第1のデータ・ストアを識別し、前記第1のデータ・ストアは前記第1のオブジェクト・タイプのオブジェクトのみを格納し、
    前記コンピューティング・デバイスによって、前記第1の検索語が前記第1のオブジェクト・タイプの記述子であるという判定に基づき、前記検索クエリから第1の検索語を取り除くことにより、前記検索クエリを修正し、
    前記コンピューティング・デバイスによって、前記第1のデータ・ストアに結合された第1のインデックス・サーバを用いて、前記第1のデータ・ストアから修正済の前記検索クエリに応じた第1の検索結果を取得し、前記第1のインデックス・サーバは前記第1のデータ・ストアに格納された前記第1のオブジェクト・タイプのオブジェクトに関連付けられたサーチ・インデックスをホストし、取得された前記第1の検索結果は修正済の前記検索クエリに適合し、取得された前記第1の検索結果は前記第1の検索語には適合せず、
    前記コンピューティング・デバイスによって、前記検索クエリに応じて、1つ以上の前記第1の検索結果を前記クライアント・システムに送信する、ように動作可能である、非一時的なコンピュータ可読記憶媒体。
  15. 前記ソフトウェアは実行時に、
    前記複数のオブジェクト・タイプのうちの第2のオブジェクト・タイプのオブジェクトを格納する第2のデータ・ストアに対して実行用の修正のない前記検索クエリを送信し、
    前記修正のない前記検索クエリの前記第2のデータ・ストアに対する実行による第2の検索結果と前記第1の検索結果を集約するようにさらに動作可能である、請求項14に記載の媒体。
  16. 1つ以上のプロセッサと、
    前記プロセッサによって実行可能な指示を含む、前記プロセッサに接続される非一時的なメモリとを備え、前記プロセッサは前記指示の実行時に、
    クライアント・システムから複数の検索語を含む検索クエリを受信し、
    前記検索クエリ中の第1の検索語が複数のオブジェクト・タイプのうちの第1のオブジェクト・タイプの記述子であることを判定し、
    複数のデータ・ストアのうち前記第1の検索語に対応する第1のデータ・ストアを識別し、前記第1のデータ・ストアは前記第1のオブジェクト・タイプのオブジェクトのみを格納し、
    前記第1の検索語が前記第1のオブジェクト・タイプの記述子であるという判定に基づき、前記検索クエリから第1の検索語を取り除くことにより、前記検索クエリを修正し、
    前記第1のデータ・ストアに結合された第1のインデックス・サーバを用いて、前記第1のデータ・ストアから修正済の前記検索クエリに応じた第1の検索結果を取得し、前記第1のインデックス・サーバは前記第1のデータ・ストアに格納された前記第1のオブジェクト・タイプのオブジェクトに関連付けられたサーチ・インデックスをホストし、取得された前記第1の検索結果は修正済の前記検索クエリに適合し、取得された前記第1の検索結果は前記第1の検索語には適合せず、
    前記検索クエリに応じて、1つ以上の前記第1の検索結果を前記クライアント・システムに送信するように動作可能である、コンピュータ・システム。
  17. 前記1つ以上のプロセッサは前記指示の実行時に、
    複数のノードと同ノード同士をつなげる複数のエッジとを含むソーシャル・グラフにアクセスするようにさらに動作可能であり、該ノードのうちの2つの間の前記エッジの各々は、前記ノード間の一次の隔たりを示し、該ノードは、
    前記クライアント・システムの第1のユーザに対応する第1のノードであって、該第1のユーザはオンライン・ソーシャル・ネットワークのユーザである、第1のノードと、
    前記オンライン・ソーシャル・ネットワークに関連付けられる複数のオブジェクトに対応する複数の第2のノードとを含む、請求項16に記載のコンピュータ・システム。
  18. 前記第1のデータ・ストアは、前記第1のオブジェクト・タイプの1つ以上のオブジェクトに対応する1つ以上の第2のノードを前記ソーシャル・グラフの1つ以上の他のノードとつなげる1つ以上のエッジに関する情報をさらに含む、請求項17に記載のコンピュータ・システム。
  19. 前記クライアント・システムに送信される前記1つ以上の第1の検索結果の各々は前記第2のノードのうちの1つ以上に対応する、請求項17に記載のコンピュータ・システム。
  20. 前記1つ以上のプロセッサは前記指示の実行時に、
    新しいオブジェクトが前記オンライン・ソーシャル・ネットワークによって受信されると、前記第1のデータ・ストアを更新するようにさらに動作可能であり、前記第1のデータ・ストアの前記更新は、該新しいオブジェクトに対応する第2のノードを前記第1のノードにつなげる1つ以上のエッジに関する情報の更新を含む、請求項17に記載のコンピュータ・システム。
  21. 前記1つ以上のプロセッサは前記指示の実行時に、
    前記複数のオブジェクト・タイプのうちの第2のオブジェクト・タイプのオブジェクトを格納する第2のデータ・ストアに対して実行用の修正のない前記検索クエリを送信し、
    前記修正のない前記検索クエリの前記第2のデータ・ストアに対する実行による第2の検索結果と前記第1の検索結果を集約するようにさらに動作可能である、請求項16に記載のコンピュータ・システム。
  22. 前記1つ以上のプロセッサは前記指示の実行時に、
    前記第1の検索結果に少なくとも一部基づき、前記集約された検索結果をランク付けするようにさらに動作可能である、請求項21に記載のコンピュータ・システム。
  23. 前記第1の検索結果は前記第2の検索結果よりも高くランク付けされる、請求項22に記載のコンピュータ・システム。
  24. 前記複数のデータ・ストアは複数のオブジェクト・タイプのオブジェクトを含み、各データ・ストアは、1つのオブジェクト・タイプのオブジェクトのみを含む、請求項16に記載のコンピュータ・システム。
  25. 前記1つ以上のプロセッサは前記指示の実行時に、
    オブジェクトのオブジェクト・タイプを識別し、
    前記オブジェクトに識別子を割り当て、
    前記識別されたオブジェクト・タイプのオブジェクトを格納するように構成されるデータ・ストアに前記オブジェクトを格納する、ようにさらに動作可能である、請求項16に記載のコンピュータ・システム。
  26. 前記1つ以上のプロセッサは前記指示の実行時に、
    ソーシャル・ネットワーキング・システムの集約処理を使用して、前記第1のデータ・ストアに対して実行用の修正済の前記検索クエリを送信するようにさらに構成される、請求項16に記載のコンピュータ・システム。
  27. 前記第1のオブジェクト・タイプはユーザ、ウェブ・ページ、アプリケーション、あるいはグループである、請求項16に記載のコンピュータ・システム。
  28. 前記コンピュータ・システムおよび前記複数のデータ・ストアはソーシャル・ネットワーキング・システムに関連付けられる、請求項16に記載のコンピュータ・システム。
JP2016153527A 2013-04-08 2016-08-04 バーティカルベースのクエリのオプション化 Active JP6511417B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/858,775 2013-04-08
US13/858,775 US9336312B2 (en) 2013-04-08 2013-04-08 Vertical-based query optionalizing

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016507565A Division JP5986339B2 (ja) 2013-04-08 2014-04-03 バーティカルベースのクエリのオプション化

Publications (2)

Publication Number Publication Date
JP2016212908A JP2016212908A (ja) 2016-12-15
JP6511417B2 true JP6511417B2 (ja) 2019-05-15

Family

ID=51655225

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016507565A Expired - Fee Related JP5986339B2 (ja) 2013-04-08 2014-04-03 バーティカルベースのクエリのオプション化
JP2016153527A Active JP6511417B2 (ja) 2013-04-08 2016-08-04 バーティカルベースのクエリのオプション化

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016507565A Expired - Fee Related JP5986339B2 (ja) 2013-04-08 2014-04-03 バーティカルベースのクエリのオプション化

Country Status (11)

Country Link
US (2) US9336312B2 (ja)
EP (1) EP2984592B1 (ja)
JP (2) JP5986339B2 (ja)
KR (2) KR102099205B1 (ja)
CN (2) CN107729525A (ja)
AU (3) AU2014251231B2 (ja)
BR (1) BR112015025722A8 (ja)
CA (2) CA2973749A1 (ja)
IL (2) IL241899A (ja)
MX (1) MX346840B (ja)
WO (1) WO2014168805A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019477B2 (en) * 2015-04-06 2018-07-10 International Business Machines Corporation Anticipatory query completion by pattern detection
US10445755B2 (en) 2015-12-30 2019-10-15 Paypal, Inc. Data structures for categorizing and filtering content
US20180068023A1 (en) * 2016-09-07 2018-03-08 Facebook, Inc. Similarity Search Using Polysemous Codes
US10880685B2 (en) * 2018-01-08 2020-12-29 Facebook, Inc. Provisioning content across multiple devices
WO2024015323A1 (en) * 2022-07-11 2024-01-18 Pryon Incorporated Methods and systems for improved document processing and information retrieval

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5873080A (en) * 1996-09-20 1999-02-16 International Business Machines Corporation Using multiple search engines to search multimedia data
US6898592B2 (en) 2000-12-27 2005-05-24 Microsoft Corporation Scoping queries in a search engine
US7716199B2 (en) * 2005-08-10 2010-05-11 Google Inc. Aggregating context data for programmable search engines
US7743045B2 (en) 2005-08-10 2010-06-22 Google Inc. Detecting spam related and biased contexts for programmable search engines
US20050131872A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Query recognizer
US7987181B2 (en) * 2004-06-16 2011-07-26 Symantec Operating Corporation System and method for directing query traffic
US8086605B2 (en) * 2005-06-28 2011-12-27 Yahoo! Inc. Search engine with augmented relevance ranking by community participation
US8166059B2 (en) * 2005-07-08 2012-04-24 Oracle International Corporation Optimization of queries on a repository based on constraints on how the data is stored in the repository
US8005825B1 (en) 2005-09-27 2011-08-23 Google Inc. Identifying relevant portions of a document
CN101401062A (zh) * 2006-02-16 2009-04-01 移动容量网络公司 确定相关来源、查询及合并多个内容来源的结果的方法和系统
US7805441B2 (en) 2006-03-06 2010-09-28 Yahoo! Inc. Vertical search expansion, disambiguation, and optimization of search queries
JP2007323394A (ja) * 2006-06-01 2007-12-13 Ritsumeikan メタ検索システム及びメタ検索方法とこれに用いるユーザ端末及びプログラム
US7558787B2 (en) * 2006-07-05 2009-07-07 Yahoo! Inc. Automatic relevance and variety checking for web and vertical search engines
US9477969B2 (en) * 2006-12-12 2016-10-25 Yahoo! Inc. Automatic feed creation for non-feed enabled information objects
WO2009023984A1 (en) * 2007-08-17 2009-02-26 Google Inc. Ranking social network objects
US20090125504A1 (en) 2007-11-08 2009-05-14 Randy Adams Systems and methods for visualizing web page query results
EP2234297A1 (en) * 2009-03-26 2010-09-29 novero GmbH Method for operating a portable mobile internet media recorder
US9519716B2 (en) * 2009-03-31 2016-12-13 Excalibur Ip, Llc System and method for conducting a profile based search
JP2010267075A (ja) * 2009-05-14 2010-11-25 Canon Inc 情報処理装置、情報処理方法、プログラム及び記憶媒体
US9495460B2 (en) * 2009-05-27 2016-11-15 Microsoft Technology Licensing, Llc Merging search results
US20110153425A1 (en) * 2009-06-21 2011-06-23 James Mercs Knowledge based search engine
US8583673B2 (en) * 2009-08-17 2013-11-12 Microsoft Corporation Progressive filtering of search results
US8386482B2 (en) 2009-09-02 2013-02-26 Xurmo Technologies Private Limited Method for personalizing information retrieval in a communication network
US8392411B2 (en) * 2010-05-20 2013-03-05 Google Inc. Automatic routing of search results
US20120166276A1 (en) * 2010-12-28 2012-06-28 Microsoft Corporation Framework that facilitates third party integration of applications into a search engine
CN102591880B (zh) * 2011-01-14 2015-02-18 阿里巴巴集团控股有限公司 信息提供方法及装置
CN102591890B (zh) * 2011-01-17 2016-06-15 腾讯科技(深圳)有限公司 一种展示搜索信息的方法及搜索信息展示装置
US9633109B2 (en) 2011-05-17 2017-04-25 Etsy, Inc. Systems and methods for guided construction of a search query in an electronic commerce environment
US8601027B2 (en) * 2011-06-20 2013-12-03 Google Inc. Query-based user groups in social networks
US8949232B2 (en) * 2011-10-04 2015-02-03 Microsoft Corporation Social network recommended content and recommending members for personalized search results
US20130159288A1 (en) * 2011-12-16 2013-06-20 Rawllin International Inc. Information graph
US9158801B2 (en) * 2012-07-27 2015-10-13 Facebook, Inc. Indexing based on object type
US9116918B1 (en) * 2012-11-14 2015-08-25 Google Inc. Methods, systems, and media for interpreting queries
US9171063B2 (en) * 2013-03-13 2015-10-27 Facebook, Inc. Short-term hashes

Also Published As

Publication number Publication date
AU2018203101B2 (en) 2019-07-04
AU2014251231B2 (en) 2016-08-11
CN105264526B (zh) 2017-12-12
CA2908149C (en) 2017-08-29
KR101669184B1 (ko) 2016-10-25
JP2016516252A (ja) 2016-06-02
US20160188666A1 (en) 2016-06-30
KR20150140333A (ko) 2015-12-15
CA2973749A1 (en) 2014-10-16
CA2908149A1 (en) 2014-10-16
AU2018203101A1 (en) 2018-05-24
KR20160120801A (ko) 2016-10-18
EP2984592A4 (en) 2016-10-12
BR112015025722A2 (pt) 2017-07-18
IL247622B (en) 2018-02-28
CN105264526A (zh) 2016-01-20
IL241899A (en) 2016-10-31
WO2014168805A1 (en) 2014-10-16
MX346840B (es) 2017-04-03
CN107729525A (zh) 2018-02-23
US9336312B2 (en) 2016-05-10
KR102099205B1 (ko) 2020-04-09
JP2016212908A (ja) 2016-12-15
AU2016222355A1 (en) 2016-09-22
US10649992B2 (en) 2020-05-12
JP5986339B2 (ja) 2016-09-06
AU2014251231A1 (en) 2015-11-19
EP2984592B1 (en) 2019-03-06
BR112015025722A8 (pt) 2019-12-17
MX2015014200A (es) 2016-05-05
EP2984592A1 (en) 2016-02-17
US20140304250A1 (en) 2014-10-09

Similar Documents

Publication Publication Date Title
JP6363133B2 (ja) 抽出演算子
JP6483092B2 (ja) 更新レイヤを伴うデータベース・シャーディング
JP6511417B2 (ja) バーティカルベースのクエリのオプション化
US10318652B2 (en) Short-term hashes
US10983973B2 (en) Database sharding with incorporated updates

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190408

R150 Certificate of patent or registration of utility model

Ref document number: 6511417

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250