JP6363133B2 - 抽出演算子 - Google Patents

抽出演算子 Download PDF

Info

Publication number
JP6363133B2
JP6363133B2 JP2016128361A JP2016128361A JP6363133B2 JP 6363133 B2 JP6363133 B2 JP 6363133B2 JP 2016128361 A JP2016128361 A JP 2016128361A JP 2016128361 A JP2016128361 A JP 2016128361A JP 6363133 B2 JP6363133 B2 JP 6363133B2
Authority
JP
Japan
Prior art keywords
object type
user
objects
search
data store
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
JP2016128361A
Other languages
English (en)
Other versions
JP2016170820A (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 JP2016170820A publication Critical patent/JP2016170820A/ja
Application granted granted Critical
Publication of JP6363133B2 publication Critical patent/JP6363133B2/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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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/2455Query execution
    • 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/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • 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/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この開示は、一般にソーシャルネットワーキング・システムに関する。
ソーシャルネットワーキング・ウェブサイトを含むソーシャルネットワーキング・システムは、そのユーザ(人または組織)がソーシャルネットワーキング・システムと、またソーシャルネットワーキング・システムを通じて互いに対話することを可能にする。ソーシャルネットワーキング・システムは、ユーザからの入力と共に、ソーシャルネットワーキング・システム内でそのユーザに関連付けられているユーザ・プロフィールを作成し記憶する。ユーザ・プロフィールは、人口統計情報、通信チャネル情報、およびユーザの個人的関心に関する情報を含んでもよい。また、ソーシャルネットワーキング・システムは、ユーザからの入力と共に、ソーシャルネットワーキング・システムの他のユーザとのユーザの関係の記録を作成および記憶し、サービス(たとえば、ウォール投稿、写真の共有、イベントの主催、メッセージング、ゲーム、または広告)を提供し、ユーザ間またはユーザの間でのソーシャル対話を容易にする。
ソーシャルネットワーキング・システムは、1または複数のネットワークを通じて、そのサービスに関係するコンテンツまたはメッセージをユーザの移動体コンピューティング・デバイスまたは他のコンピューティング・デバイスに送信する。ユーザは、ソーシャルネットワーキング・システム内のそのユーザのユーザ・プロフィールおよび他のデータにアクセスするために、ユーザの移動体コンピューティング・デバイスまたは他のコンピューティング・デバイス上にソフトウェア・アプリケーションをインストールしてもよい。ソーシャルネットワーキング・システムは、ユーザに接続された他のユーザの集約されたストーリのニュースフィードなど、コンテンツ・オブジェクトのパーソナライズされたセットを生成し、ユーザに対して表示してもよい。
ソーシャルネットワーキング・システムに関連付けられている例示的なネットワーク環境の図。 例示的なソーシャル・グラフの図。 ソーシャルネットワーキング・システムのオブジェクトを記憶するための例示的な分割の図。 正引きインデックスを使用して検索するための例示的な方法の図。 例示的なコンピュータ・システムの図。
特定の実施形態は、第1のオブジェクト・タイプの第1の検索結果を要求する検索クエリを受信し、検索クエリは、第2のオブジェクト・タイプの第2の検索結果を要求する内部クエリを含む。特定の実施形態は、第2のオブジェクト・タイプに対応するデータ・ストアの逆引きインデックスにアクセスし、内部クエリによって要求された第2の検索結果を取り出す。特定の実施形態は、データ・ストアの正引きインデックスにアクセスし、第2の検索結果を使用して第1の検索結果を取り出す。
図1は、ソーシャルネットワーキング・システムに関連付けられている例示的なネットワーク環境100を示す。ネットワーク環境100は、互いにネットワーク110によって接続されたユーザ101、クライアント・システム130、ソーシャルネットワーキング・システム160、およびサードパーティ・システム170を含む。図1は、ユーザ1
01、クライアント・システム130、ソーシャルネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の特定の構成を示すが、この開示は、ユーザ101、クライアント・システム130、ソーシャルネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の任意の好適な構成を企図する。限定するものとしてではなく一例として、クライアント・システム130、ソーシャルネットワーキング・システム160、およびサードパーティ・システム170の2以上は、ネットワーク110をバイパスして互いに直接的に接続されてもよい。別の例として、クライアント・システム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は、オンライン・ソーシャル・ネットワークをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャルネットワーキング・システム160は、たとえばユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の好適なデータなど、ソーシャルネットワーキング・データを生成、記憶、受信、および送信する。ソーシャルネットワーキング・システム160は、ネットワーク環境100の他の構成要素によって、直接的に、またはネットワーク110を通じてアクセスされてもよい。特定の実施形態では、ソーシャルネットワーキング・システム160は、ユーザ101がたとえば適切なプライバシ設定を設定することによってなど、自分達のアクションをソーシャルネットワーキング・システム160によって記録させる、または他のシステム(たとえば、サードパーティ・システム170)と共有させることについてオプトインまたはオプトアウトすることを可能にする認可サーバを含んでもよい。特定の実施形態では、サードパーティ・システム170は、ウェブサイトまたはアプリケーションをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。サードパーティ・システム170は、たとえば限定しないが、ウェブ・ページ、テキスト、画像、映像、オーディオ、またはアプリケーションなど、サードパーティ・システム・データを生成、記憶、受信、および送信する。サードパーティ・システム170は、ネットワーク環境100の他の構成要素によって、直接的に、またはネットワーク110を通じてアクセスされてもよい。特定の実施形態では、1または複数のユーザ101が1または複数のクライアント・システム130を使用し、ソーシャルネットワーキング・システム160またはサードパーティ・システム170にアクセスし、データを送り、それらからデータを受信してもよい。クライアント・システム130は、ソーシャルネットワーキング・システム160またはサードパーティ・システム170に直接的に、ネットワーク110を通じて、またはサードパーティ・システムを通じてアクセスしてもよい。限定するものとしてではなく一例として、クライアント・システム130は、サードパーティ・システム170にソーシャルネットワーキング・システム160を通じてアクセスしてもよい。クライアン
ト・システム130は、たとえばパーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなど、任意の好適なコンピューティング・デバイスであってよい。
この開示は、任意の好適なネットワーク110を企図する。限定するものとしてではなく一例として、ネットワーク110の1または複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、携帯電話ネットワーク、またはこれらの2以上の組合せを含んでもよい。ネットワーク110は、1または複数のネットワーク110を含んでもよい。
リンク150は、クライアント・システム130、ソーシャルネットワーキング・システム160、およびサードパーティ・システム170を通信ネットワーク110に、または互いに接続する。この開示は、任意の好適なリンク150を企図する。特定の実施形態では、1または複数のリンク150は、1または複数の有線(たとえば、デジタル加入者線(DSL)またはDOCSIS(Data Over Cable Service Interface Specification)など)、無線(たとえば、Wi−FiまたはWiMAX(Worldwide interoperability for
Microwave Access)など)、または光(たとえば、同期光ネットワーク(SONET)または同期デジタル・ハイアラーキ(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または複数のソーシャル・グラフ200を1または複数のデータ・ストア内に記憶する。特定の実施形態では、ソーシャル・グラフ200は、複数のノード(複数のユーザノード202または複数のコンセプトノード204を含んでもよい)と、それらのノードを接続する複数のエッジ206とを含んでもよい。図2に示されている例示的なソーシャル・グラフ200は、説明のために、2次元の視覚マップ表現で示されている。特定の実施形態では、ソーシャルネットワーキング・システム160、クライアント・システム130、またはサードパーティ・システム170は、適切な用途のためにソーシャル・グラフ200および関連するソーシャル・グラフ情報にアクセスする。ソーシャル・グラフ200のノードおよびエッジは、データ・オブジェクトとして、たとえばデータ・ストア(ソーシャル・グラフ・データベースなど)内に記憶されてもよい。そのようなデータ・ストアは、ソーシャル・グラフ200のノードまたはエッジの、1または複数の検索可能または照会可能なインデックスを含んでもよい。
特定の実施形態では、ユーザノード202は、ソーシャルネットワーキング・システム160のユーザに対応する。限定するものとしてではなく一例として、ユーザは、ソーシャルネットワーキング・システム160と、またはソーシャルネットワーキング・システム160を通じて対話または通信する個人(人間のユーザ)、エンティティ(たとえば、企業、事業者、またはサードパーティ・アプリケーション)、または(たとえば、個人またはエンティティの)グループであってよい。特定の実施形態では、ユーザがアカウント
をソーシャルネットワーキング・システム160に登録するとき、ソーシャルネットワーキング・システム160は、そのユーザに対応するユーザノード202を作成し、そのユーザノード202を1または複数のデータ・ストア内に記憶する。本明細書に記載のユーザおよびユーザノード202は、適切な場合、登録されたユーザ、および登録されたユーザに関連付けられているユーザノード202に及ぶ。それに加えて、または代替として、本明細書に記載のユーザおよびユーザノード202は、適切な場合、ソーシャルネットワーキング・システム160に登録しなかったユーザに及ぶ。特定の実施形態では、ユーザノード202は、ユーザによって提供された情報、またはソーシャルネットワーキング・システム160を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、ユーザは、自分の名前、プロフィール写真、連絡先情報、誕生日、性別、婚姻状態、家族状態、雇用、学歴、好み、関心、または他の人口統計情報を提供してもよい。特定の実施形態では、ユーザノード202は、ユーザに関連付けられている情報に対応する1または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、ユーザノード202は、1または複数のウェブ・ページに対応してもよい。
特定の実施形態では、コンセプトノード204は、コンセプトに対応する。限定するものとしてではなく一例として、コンセプトは、場所(たとえば、映画館、レストラン、目印、または都市など)、ウェブサイト(たとえば、ソーシャルネットワーキング・システム160に関連付けられているウェブサイト、またはウェブアプリケーションサーバに関連付けられているサードパーティウェブサイトなど)、エンティティ(たとえば、人、事業者、グループ、スポーツチーム、または有名人など)、ソーシャルネットワーキング・システム160内、またはウェブアプリケーションサーバなど外部サーバ上に位置するリソース(たとえば、オーディオファイル、映像ファイル、デジタル写真、テキストファイル、構造化文書、またはアプリケーションなど)、実際の財産または知的財産(たとえば、彫刻、絵画、映画、ゲーム、楽曲、着想、写真、または書物など)、ゲーム、アクティビティ、着想もしくは理論、別の好適なコンセプト、または2以上のそのようなコンセプトに対応してもよい。コンセプトノード204は、ユーザによって提供されたコンセプトの情報、またはソーシャルネットワーキング・システム160を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、コンセプトの情報は、名前もしくはタイトル、1または複数の画像(たとえば、本の表紙の画像)、ロケーション(たとえば、住所または地理的ロケーション)、(URLに関連付けられる)ウェブサイト、連絡先情報(たとえば、電話番号または電子メール・アドレス)、他の好適なコンセプト情報、またはそのような情報の任意の好適な組合せを含んでもよい。特定の実施形態では、コンセプトノード204は、コンセプトノード204に関連付けられている情報に対応する1または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、コンセプトノード204は、1または複数のウェブ・ページに対応してもよい。
特定の実施形態では、ソーシャル・グラフ200内のノードは、ウェブ・ページを表しても、ウェブ・ページによって表されてもよい(「プロフィールページ」と呼ばれる)。プロフィールページは、ソーシャルネットワーキング・システム160によってホストされ、またはそこからアクセス可能であってもよい。また、プロフィールページは、サードパーティ・システム170に関連付けられているサードパーティウェブサイト上でホストされてもよい。限定するものとしてではなく一例として、特定の外部ウェブ・ページに対応するプロフィールページは、その特定の外部ウェブ・ページであってもよく、プロフィールページが、特定のコンセプトノード204に対応してもよい。プロフィールページは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であってもよい。限定するものとしてではなく一例として、ユーザノード202は、対応するユーザがコンテンツを追加し、宣言をし、または他の方法で自分を表現する、対応するユーザプロフィー
ルページを有してもよい。限定するものとしてではなく別の例として、コンセプトノード204は、1または複数のユーザがコンセプトノード204に対応するコンセプトに特に関連してコンテンツを追加し、宣言をし、またはユーザ自身を表現する、対応するコンセプトプロフィールページを有してもよい。
特定の実施形態では、コンセプトノード204は、サードパーティ・システム170によってホストされるサードパーティウェブページまたはリソースを表す。サードパーティウェブページまたはリソースは、要素の中でもとりわけ、コンテンツ、選択可能なアイコンもしくは他のアイコン、またはアクションもしくはアクティビティを表す(たとえば、JavaScript(登録商標)、AJAX、またはPHPコードにより実装される)他の対話可能なオブジェクトを含んでもよい。限定するものとしてではなく一例として、サードパーティウェブページは、「いいね」、「チェックイン」、「食べる」、「推奨する」、または別の好適なアクションまたはアクティビティなど、選択可能なアイコンを含んでもよい。サードパーティウェブページを閲覧するユーザは、アイコンの1つ(たとえば、「食べる」)を選択することによって、アクションを行う。これによって、クライアント・システム130は、ユーザのアクションを示すメッセージをソーシャルネットワーキング・システム160へ送信する。ソーシャルネットワーキング・システム160は、メッセージに応答して、ユーザに対応するユーザノード202とサードパーティウェブページまたはリソースに対応するコンセプトノード204との間にエッジ(たとえば、「食べる」エッジ)を作成し、エッジ206を1または複数のデータ・ストア内に記憶する。
特定の実施形態では、ソーシャル・グラフ200内の1対のノードが、1または複数のエッジ206によって互いに接続されてもよい。1対のノードを接続するエッジ206は、その対のノード間の関係を表す。特定の実施形態では、エッジ206は、1対のノード間の関係に対応する1または複数のデータ・オブジェクトまたは属性を含み、または表してもよい。限定するものとしてではなく一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを示してもよい。この示したことに応答して、ソーシャルネットワーキング・システム160は、「友達要求」を第2のユーザに送信してもよい。第2のユーザが「友達要求」を確認した場合、ソーシャルネットワーキング・システム160は、ソーシャル・グラフ200内で第1のユーザのユーザノード202を第2のユーザのユーザノード202に接続するエッジ206を作成し、エッジ206をソーシャル・グラフ情報としてデータ・ストア24の1または複数に記憶してもよい。図2の例では、ソーシャル・グラフ200は、ユーザ「A」とユーザ「B」とのユーザノード202間の友達関係を示すエッジ206と、ユーザ「C」とユーザ「B」とのユーザノード202間の友達関係を示すエッジとを含む。本開示は特定のユーザノード202を接続する特定の属性を有する特定のエッジ206について記載し示しているが、本開示は、ユーザノード202を接続する任意の好適な属性を有する任意の好適なエッジ206を企図する。限定するものとしてではなく一例として、エッジ206は、友達関係、家族関係、仕事関係もしくは雇用関係、ファン関係、フォロワ関係、ビジタ関係、加入者関係、主従関係、相互的関係、非相互的関係、別の好適なタイプの関係、または2以上のそのような関係を表してもよい。さらに、本開示は一般にノードを接続されているものとして記載しているが、本開示は、ユーザまたはコンセプトも接続されているものとして記載している。本明細書では、接続されているユーザまたはコンセプトへの言及は、適切な場合、ソーシャル・グラフ200内で1または複数のエッジ206によって接続されているユーザまたはコンセプトに対応するノードに及ぶ。
特定の実施形態では、ユーザノード202とコンセプトノード204との間のエッジ206は、コンセプトノード204に関連付けられているコンセプトに向かってユーザノード202に関連付けられているユーザによって行われる特定のアクションまたはアクティビティを表してもよい。限定するものとしてではなく一例として、図2に示されているよ
うに、ユーザは、コンセプトに対して「いいね」と表明することができ、コンセプトに「通った」、コンセプトを「プレイした」、「聴いた」、「調理した」、コンセプトに「勤務した」、またはコンセプトを「見た」のであり、コンセプトのそれぞれは、エッジタイプまたはサブタイプに対応する。コンセプトノード204に対応するコンセプトプロフィールページは、たとえば、選択可能な「チェックイン」アイコン(たとえば、クリッカ可能な「チェックイン」アイコン)または選択可能な「お気に入りに追加」アイコンを含んでもよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャルネットワーキング・システム160は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジ、または「チェックイン」エッジを作成する。限定するものとしてではなく別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンラインミュージックアプリケーションであるSPOTIFY)を使用して特定の楽曲(ランブル・オン)を聴く。この場合には、ソーシャルネットワーキング・システム160は、ユーザに対応するユーザノード202と楽曲およびアプリケーションに対応するコンセプトノード204との間に「聴いた」エッジ206および「使用した」エッジ(図2に図示)を作成し、ユーザがその楽曲を聞き、そのアプリケーションを使用したことを示す。さらに、ソーシャルネットワーキング・システム160は、楽曲およびアプリケーションに対応するコンセプトノード204間に「プレイした」エッジ206(図2に図示)を作成し、特定の楽曲が特定のアプリケーションによってプレイされたことを示す。この場合には、「プレイした」エッジ206は、外部アプリケーション(SPOTIFY)によって外部オーディオファイル(楽曲「イマジン」)に対して行われたアクションに対応する。本開示は、ユーザノード202とコンセプトノード204とを接続する特定の属性を有する特定のエッジ206について記載しているが、本開示は、ユーザノード202とコンセプトノード204とを接続する任意の好適な属性を有する任意の好適なエッジ206を企図する。さらに、本開示は、ユーザノード202とコンセプトノード204の間の単一の関係を表すエッジについて記載しているが、本開示は、ユーザノード202とコンセプトノード204との間の1または複数の関係を表すエッジを企図する。限定するものとしてではなく一例として、エッジ206は、ユーザが「いいね」と表明したこと、および特定のコンセプトを使用したことの両方を表してもよい。あるいは、別のエッジ206が、ユーザノード202とコンセプトノード204(図2に示されているように、ユーザ「E」に関するユーザノード202と「SPOTIFY」に関するコンセプトノード204)との間の関係の各タイプ(または単一の関係の複数)を表してもよい。
特定の実施形態では、ソーシャルネットワーキング・システム160は、ソーシャル・グラフ200内でユーザノード202とコンセプトノード204との間にエッジ206を作成する。限定するものとしてではなく一例として、(たとえば、ウェブブラウザまたはユーザのクライアント・システム130によってホストされる専用アプリケーションを使用することによってなど)コンセプトプロフィールページを閲覧するユーザは、「いいね」アイコンをクリックまたは選択することによって、ユーザがコンセプトノード204によって表されたコンセプトに対して「いいね」と表明することを示す。これによって、ユーザのクライアント・システム130は、コンセプトプロフィールページに関連付けられているコンセプトに対してユーザが「いいね」と表明することを示すメッセージをソーシャルネットワーキング・システム160へ送信する。ソーシャルネットワーキング・システム160は、そのメッセージに応答して、ユーザとコンセプトノード204との間の「いいね」エッジ206によって示されているように、ユーザに関連付けられているユーザノード202とコンセプトノード204との間にエッジ206を作成してもよい。特定の実施形態では、ソーシャルネットワーキング・システム160は、エッジ206を1または複数のデータ・ストア内に記憶してもよい。特定の実施形態では、エッジ206は、特定のユーザアクションに応答してソーシャルネットワーキング・システム160によって自動的に形成されてもよい。限定するものとしてではなく一例として、第1のユーザが写真をアップロードし、映画を見たか、または楽曲を聴いた場合、エッジ206は、第1の
ユーザに対応するユーザノード202とそれらのコンセプトに対応するコンセプトノード204との間に形成されてもよい。本開示は、特定のエッジ206を特定の方法で形成することについて記載しているが、本開示は、任意の好適なエッジ206を任意の好適な方法で形成することを企図する。
さらに、任意の2つのノード間の分離度は、一方のノードから他方のノードにソーシャル・グラフを横断するために必要とされるホップの最小数として定義される。2つのノード間の分離度は、ソーシャル・グラフ内の2つのノードによって表されるユーザ間またはコンセプト間の関連性の尺度と考えることができる。
ソーシャルネットワーキング・システムによって記憶されるデータ(たとえば、ソーシャル・グラフのためのデータ)の量は、非常に大きなものとなり得る。たとえば、カリフォルニア州メンロー・パークのFacebook(登録商標)によって使用されるソーシャル・グラフは、10程度の多数のノードと、1010程度の多数のエッジとを有する可能性がある。典型的には、大規模データベースなどデータの大規模な集まりは、いくつかのパーティションに分割され得る。各パーティションは、別々のサーバによって、または別々物理的ロケーションで保持され得る。データベースの各パーティションのためのインデックスがデータベース全体のためのインデックスより小さくなるにつれて、分割により、データベースにアクセスする際の性能を改善する。パーティションが多数のサーバにわたって分散され得るにつれて(一方、各パーティションは、地理的に多様なロケーションで複製されてもよい)、分割により、データベースにアクセスする際の性能および信頼性を改善することができる。通常、データベースは、データベースの行(または列)を別々に記憶することによって分割される。また、データベースは、ハッシング・アルゴリズムを使用することによって分割されてもよい。また、データベースは、データベースによって保持されるデータの任意の実世界の区分(たとえば、米国の各時間帯内の顧客)によって分割されてもよい。特定の実施形態は、オブジェクト・タイプに基づいてデータの集まりのストレージを分割する。特定の実施形態は、データ・オブジェクトを複数のパーティションで記憶することができ、各パーティションは、単一のオブジェクト・タイプに対応するデータ・オブジェクトを保持する。
図3は、ソーシャルネットワーキング・システムのオブジェクトを記憶するための例示的な分割を示す。図3の例では、複数のデータ・ストア、すなわちバーティカル(たとえば、P1、P2、P3など)が、ソーシャルネットワーキング・システムのオブジェクトを記憶する。特定の実施形態では、各データ・ストアは、複数のオブジェクト・タイプのうちの特定のオブジェクト・タイプのオブジェクトをそれぞれのデータ記憶デバイス340内に記憶するように構成されてもよい。また、各データ・ストアは、記憶された各オブジェクトに関連付けられている情報をデータ記憶デバイス340内に記憶するように構成されてもよい。オブジェクト・タイプは、ユーザ、写真、投稿、ウェブ・ページ、またはアプリケーションであってよい。オブジェクト・タイプの他の例は、音楽、コメント、イベント、メッセージ、オファー(たとえば、クーポン)、および評論であってもよい。この開示は、ソーシャルネットワーキング・システムにとっての任意の好適なオブジェクト・タイプを企図する。
たとえば、図3に示されているユーザ・バーティカルP1は、ユーザ・オブジェクトを記憶する。ユーザ・バーティカルP1内に記憶される各ユーザ・オブジェクトは、識別子(たとえば、文字列)、ユーザ名、およびソーシャルネットワーキング・システムのユーザ用のプロフィール写真を含む。また、ソーシャルネットワーキング・システムは、ユーザ・バーティカルP1内に、言語、ロケーション、教育、1または複数の電子メール・アドレス、関心、交際状態、友達のリスト、家族のリスト、プライバシ設定など、ユーザ・オブジェクトに関連付けられている情報を記憶してもよい。たとえば、図3に示されてい
る投稿バーティカルP2は、投稿オブジェクトを記憶する。投稿バーティカルP2内に記憶される各投稿オブジェクトは、識別子、ソーシャルネットワーキング・システムに投稿される投稿のためのテキスト文字列を含む。また、ソーシャルネットワーキング・システムは、投稿バーティカルP2内に、タイム・スタンプ、作者、プライバシ設定、その投稿に対して「いいね」と表明するユーザ、「いいね」の総数、コメント、コメントの総数、ロケーションなど、投稿オブジェクトに関連付けられている情報を記憶してもよい。たとえば、写真バーティカルP3は、写真オブジェクト(または映像もしくはオーディオなど他の媒体タイプのオブジェクト)を記憶する。写真バーティカルP3内に記憶される各写真オブジェクトは、識別子および写真を含む。また、ソーシャルネットワーキング・システムは、写真バーティカルP3内に、タイム・スタンプ、作者、プライバシ設定、写真内でタグ付けされているユーザ、その写真に対して「いいね」と表明するユーザ、コメントなど、写真オブジェクトに関連付けられている情報を記憶してもよい。
特定の実施形態では、各バーティカル内に記憶されるオブジェクトは、1または複数の検索インデックスによってインデックス付けされる。検索インデックスは、1または複数のコンピューティング・デバイス(たとえば、サーバ)を含むそれぞれのインデックス・サーバ330によってホストされてもよい。インデックス・サーバ330は、ユーザまたはソーシャルネットワーキング・システム(またはサードパーティ・システム)の他のプロセスによってソーシャルネットワーキング・システムにサブミットされたデータ(たとえば、写真、および写真に関連付けられている情報)に基づいて検索インデックスを更新する。また、インデックス・サーバ330は、定期的(たとえば、24時間ごと)に検索インデックスを更新する。インデックス・サーバ330は、検索語を含むクエリを受け取り、その検索語に対応する1または複数の検索インデックスからの検索結果にアクセスし取り出す。いくつかの実施形態では、特定のオブジェクト・タイプに対応するバーティカルは、それぞれがそれぞれの検索インデックスを備える複数の物理パーティションまたは論理パーティションを備えてもよい。
特定の実施形態では、第1のオブジェクト・タイプに対応するバーティカルのための検索インデックスは、逆引きインデックスを含む。逆引きインデックスは、第2のオブジェクト・タイプに関連付けられている検索語を第1のオブジェクト・タイプの1または複数の検索結果にマッピングする。たとえば、図3に示されている投稿バーティカルP2内の逆引きインデックスは、(posts_liked_by:<user>)などユーザ(user)に関連付けられている検索語を<user>から<user>によって「いいね」と表明されている投稿(posts_liked_by)のリストにマッピングする。逆引きインデックスは、<posts_commented_by:<user>)などユーザに関連付けられている検索語を<user>から<user>によってコメントされた投稿(posts_commented_by)のリストにマッピングする。たとえば、図3に示されている写真バーティカルP3内の逆引きインデックスは、(photos_liked_by:<user>)などユーザに関連付けられている検索語を<user>から<user>によって「いいね」と表明されている写真(photos_liked_by)のリストにマッピングする。逆引きインデックスは、(photos_tagged_with:<user>)などユーザに関連付けられている検索語を<user>から<user>がタグ付けされている写真(photos_tagged_with)のリストにマッピングする。一実施形態では、特定のオブジェクト・タイプに対応するバーティカルのための逆引きインデックスは、特定のオブジェクト・タイプに関連付けられている検索語を、同じ特定のオブジェクト・タイプの1または複数の検索結果にマッピングする。たとえば、図3に示されているユーザ・バーティカルP1内の逆引きインデックスは、(friends:<user>)などユーザに関連付けられている検索語を<user>から<user>の友達(friends)の(すなわち、ユーザ・オブジェクト・タイプの)リストにマッピングする。
特定の実施形態では、第1のオブジェクト・タイプに対応するバーティカルのための検索インデックスは、正引きインデックスを備えてもよい。正引きインデックスは、第1のオブジェクト・タイプに関連付けられている検索語を第2のオブジェクト・タイプの1または複数の検索結果にマッピングする。たとえば、投稿バーティカルP2内の正引きインデックスは、(likers_of:<post>)など投稿(post)に関連付けられている検索語を<post>から<post>に対して「いいね」と表明している(likers_of)ユーザのリストにマッピングする。正引きインデックスは、(author_of:<post>)など投稿に関連付けられている検索語を<post>から<post>の作者(author_of)であるユーザにマッピングする。たとえば、写真バーティカルP3内の正引きインデックスは、(tagged_in:<photo>)など写真(photo)に関連付けられている検索語を<photo>から<photo>内でタグ付けされている(tagged_in)ユーザのリストにマッピングする。正引きインデックスは、(commenters_of:<photo>)など写真に関連付けられている検索語を<photo>から<photo>についてコメントしている(commenters_of)ユーザのリストにマッピングする。正引きインデックスは、検索語について1対1マッピングを備える。また、正引きインデックスは、検索語について1対少数マッピングを備える。一方、逆引きインデックスは、検索語について1対多マッピングを備える。たとえば、写真バーティカルP3の正引きインデックスは、写真をその写真の所有者(その写真をソーシャルネットワーキング・システムにアップロードしたユーザ)にマッピングする。たとえば、写真バーティカルP3の正引きインデックスは、写真をその写真にタグ付けされている数人のユーザ(たとえば、ユーザ10人未満)にマッピングする。一方、写真バーティカルP3の逆引きインデックスは、ユーザをそのユーザがタグ付けされている多数の写真(たとえば、写真100枚超)にマッピングする。
特定の実施形態は、正引きインデックスを使用する効率的な検索のための方法を表す。図4は、正引きインデックスを使用して検索するための例示的な方法400を示す。方法400は、ソーシャルネットワーキング・システムの1または複数のコンピューティング・デバイス(たとえば、サーバ)によって実装され得る。方法400は、ステップ410で始まる。特定の実施形態では、ステップ410で、1または複数のコンピューティング・デバイスは、第1のオブジェクト・タイプの1または複数の第1の検索結果を要求する検索クエリを受信する。検索クエリは、第2のオブジェクト・タイプの1または複数の第2の検索結果を要求する内部クエリを含む。たとえば、図3に示されているアグリゲータ・プロセス320が検索クエリ(extract author(term posts_liked_by:<9>))を受け取る。検索クエリは、(抽出(extract)演算子で)<9>のユーザ識別子を有するユーザによって「いいね」と表明されている投稿(posts_liked_by)について1または複数の作者(author)における検索結果を要求する。検索クエリは、ユーザ<9>によって「いいね」と表明されている投稿(posts_liked_by)における検索結果を要求する検索語に対応する内部(内側の)クエリ(term posts_liked_by:<9>)を含む。すなわち、検索クエリは、第1のオブジェクト・タイプ(ユーザ)の第1の検索結果を要求し、一方、内部クエリは、第2のオブジェクト・タイプ(投稿)の第2の検索結果を要求する。
アグリゲータ・プロセス320は、ソーシャルネットワーキング・システムの1または複数のコンピューティング・デバイス(たとえば、サーバ)によってホストされる1または複数のコンピューティング・プロセスであってよい。たとえば、アグリゲータ・プロセス320は、図3に示されているPHP(ハイパーテキスト・プリプロセッサ)プロセス310からの検索要求に基づいて検索クエリを決定する。PHPプロセス310は、ソー
シャルネットワーキング・システムの1または複数のコンピューティング・デバイス(たとえば、サーバ)によってホストされる1または複数のコンピューティング・プロセスであってよい。検索要求は、ユーザまたはソーシャルネットワーキング・システム(またはサードパーティ・システム)の別のプロセスによってPHPプロセスにサブミットされた構造化テキスト文字列または実質的に構造化されていないテキスト文字列であってもよい。たとえば、アグリゲータ・プロセス320は、ユーザ<9>によってPHPプロセス310にサブミットされた検索要求「私が「いいね」と表明している投稿の作者は誰か」に基づいて検索クエリ(extract author(term posts_liked_by:<9>))を決定する。
特定の実施形態では、ステップ420で、1または複数のコンピューティング・デバイスは、第2のオブジェクト・タイプに対応するデータ・ストアの逆引きインデックスにアクセスする。特定の実施形態では、ステップ430で、1または複数のコンピューティング・デバイスは、第2のオブジェクト・タイプに対応するデータ・ストアの逆引きインデックスを使用して、内部クエリによって要求された第2の検索結果を取り出す。たとえば、アグリゲータ・プロセス320は、上記の検索クエリ(extract author(term posts_liked_by:<9>))を図3に示されている投稿バーティカルP2にサブミットし、投稿バーティカルP2のインデックス・サーバ330を投稿バーティカルP2の逆引きインデックスにアクセスさせる。逆引きインデックスは、<user>に関連付けられている検索語(posts_liked_by:<user>)を<user>によって「いいね」と表明されている投稿(posts_liked_by)のリストにマッピングする。インデックス・サーバは、逆引きインデックスにアクセスし、内部検索クエリ(term posts_liked_by:<9>)によって要求されたユーザ<9>によって「いいね」と表明されている投稿のリストを取り出す。たとえば、ユーザ<9>によって「いいね」と表明されている投稿のリストは、識別子<1000>、識別子<2000>、識別子<3000>、識別子<4000>、識別子<5000>、および識別子<6000>を有する投稿を含んでもよい。
特定の実施形態では、ステップ440で、1または複数のコンピューティング・デバイスは、第2のオブジェクト・タイプに対応するデータ・ストアの正引きインデックスにアクセスする。特定の実施形態では、ステップ450で、1または複数のコンピューティング・デバイスは、第2の検索結果と第2のオブジェクト・タイプに対応するデータ・ストアの正引きインデックスとを使用して、検索クエリによって要求された第1の検索結果を取り出す。たとえば、上記の投稿バーティカルP2のインデックス・サーバは、投稿バーティカルP2の正引きインデックスにアクセスする。正引きインデックスは、<post>に関連付けられている検索語(author:<post>)を<post>の作者(author)にマッピングする。インデックス・サーバは、(前述の抽出演算子を使用して)内部検索クエリ(term posts_liked_by:<9>)についての投稿の結果リスト(<1000>、<2000>、<3000>、<4000>、<5000>、<6000>)を用いて正引きインデックスにアクセスし、投稿のリスト(<1000>、<2000>、<3000>、<4000>、<5000>、<6000>)についてそれぞれの作者のリスト(たとえば、<31>、<41>、<51>)を取り出す。
前述のように、投稿バーティカルP2は、それぞれがそれぞれの検索インデックスを備える複数の物理パーティションまたは論理パーティションを備えてもよい。アグリゲータ・プロセスは、検索クエリ(extract author(term posts_liked_by:<9>))を投稿バーティカルP2の各パーティションにサブミットする。各パーティションのインデックス・サーバは、各パーティションの逆引きインデックスおよび正引きインデックスにアクセスし、上述のように検索結果をアグリゲータに返す
。次いで、アグリゲータ・プロセスは、パーティションからの検索結果を集約する。たとえば、第1のパーティションは、検索結果の作者<31>および作者<51>を返す。第2のパーティションは、検索結果の作者<41>および作者<51>を返す。アグリゲータ・プロセスは、結果を(たとえば、OR演算を実施することによって)集約し、<31>、<41>、および<51>の集約された結果をもたらす。
正引きインデックスが存在する場合、図4の方法は、検索性能を改善する。なぜなら、複雑な検索クエリ(たとえば、2以上の検索クエリを含むクエリ)でも、1つの特定のオブジェクト・タイプに対応する1つのバーティカルにアクセスするだけでよいからである。対照的に、正引きインデックスが存在しない場合、複雑な検索クエリは、異なる特定のオブジェクト・タイプにそれぞれが対応する2以上のバーティカルにアクセスすることを必要とし得る。一例として、上述のユーザ<9>によって「いいね」と表明されている投稿の作者を検索することなど複雑な検索クエリについて、アグリゲータ・プロセスは、最初に第1の検索クエリ(term posts_liked_by:<9>)を投稿バーティカルP2にサブミットする。投稿バーティカルP2のインデックス・サーバは、第1の検索クエリを用いて(ユーザをユーザによって「いいね」と表明されている投稿(posts_liked_by)にマッピングする)投稿バーティカルP2の逆引きインデックスにアクセスし、アグリゲータ・プロセスに、ユーザ<9>によって「いいね」と表明されている投稿のリスト(たとえば、<1000>、<2000>、<3000>、<4000>、<5000>、<6000>)を返す。次いで、アグリゲータ・プロセスは、検索クエリの第2のセット(term author:<1000>)、(term author:<2000>)、(term author:<3000>)などをユーザ・バーティカルP1にサブミットする。すなわち、投稿バーティカルP2内に正引きインデックスが存在しない場合、アグリゲータ・プロセスは、ユーザ・バーティカルP1を1回だけでなく複数回ルック・アップすることが必要となり得る。ユーザ・バーティカルP1のインデックス・サーバは、(投稿をその作者にマッピングする)ユーザ・バーティカルP1の逆引きインデックスにアクセスし、アグリゲータ・プロセスに、投稿のリスト(<1000>、<2000>、<3000>、<4000>、<5000>、<6000>)について作者(author)のリスト(たとえば、<31>、<41>、<51>)を返す。
さらに、前述のように、正引きインデックスは、1対1または1対少数である検索語をインデックスする。したがって、バーティカルの正引きインデックスは、1対多マッピングを有する検索語をインデックスするバーティカルの逆引きインデックスより著しく小さいものとなり得る。したがって、正引きインデックスは、そのより小さいサイズにより検索クエリについてアクセス時間および取出し時間が改善され得るので、検索性能をさらに改善する。
特定の実施形態では、アグリゲータ・プロセスは、第1のオブジェクト・タイプに対応する少なくとももう1つのデータ・ストアにアクセスすることによって第1の検索結果をランク付けする。たとえば、アグリゲータ・プロセスは、上記の作者のリスト(<31>、<41>、<51>)をユーザ・バーティカルP1にサブミットする。サーバ・プロセス(ソーシャルネットワーキング・システムの1または複数のコンピューティング・デバイスによってホストされる)は、作者<31>、作者<41>、および作者<51>を検索クエリ(extract author(term posts_liked_by:<9>))のユーザ<9>に対するそれらのそれぞれの関係に基づいてランク付けする。たとえば、サーバ・プロセスが(たとえば、1または複数の検索インデックスにアクセスすることによって)作者がユーザ<9>の家族であると決定した場合、サーバ・プロセスは作者をより高くランク付けしてもよい。たとえば、サーバ・プロセスが(たとえば、1または複数の検索インデックスにアクセスすることによって)作者が所定の数(たとえば
、3)より多い共通の関心(または、共通の一次友達)を有すると決定した場合、サーバ・プロセスは作者をより高くランク付けしてもよい。サーバ・プロセスは、作者<31>、<41>、<51>間のランク順をアグリゲータ・プロセスに返す。
他の実施形態では、第2のオブジェクト・タイプに対応するデータ・ストアの1または複数のコンピューティング・デバイス(たとえば、インデックス・サーバ)は、第1の検索結果をランク付けする。たとえば、投稿バーティカルP2のインデックス・サーバは、上記の検索結果の作者<31>、作者<41>、および作者<51>を、それらの作者が書いた、ユーザ<9>によって「いいね」と表明されている投稿のリスト(<1000>、<2000>、<3000>、<4000>、<5000>、<6000>)内の投稿の数に基づいてランク付けする。たとえば、ユーザ<41>が投稿<1000>、<2000>、<3000>を書き、ユーザ<31>が投稿<5000>および投稿<6000>を書き、ユーザ<51>が投稿<4000>を書いた場合、インデックス・サーバは、ユーザ<41>がユーザ<9>によって「いいね」と表明されている投稿のリスト内の投稿の大多数を書いたので、ユーザ<41>を最高としてランク付けしてもよい。インデックス・サーバは、ランク付けされた検索結果(<41>、<31>、<51>)を第1の検索結果としてアグリゲータ・プロセスに返す。別の例として、インデックス・サーバは、投稿をその投稿の「いいね」の総数にマッピングする正引きインデックスにアクセスする。インデックス・サーバは、正引きインデックスにアクセスし、ユーザ<9>によって「いいね」と表明されている投稿のリストの各投稿について「いいね」の総数を取り出す。インデックス・サーバは、投稿のリスト内の投稿を、「いいね」のそれぞれの総数に基づいてランク付けし、上位にランク付けされた投稿(たとえば、3位までにランク付けされた、または最も多く「いいね」と表明された投稿)を第1の検索結果としてアグリゲータ・プロセスに返す。
特定の実施形態は、適切な場合、図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から命令を取り出し(またはフェッチし)、それらを復号および実行し、次いで、1または複数の結果を内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506に書き込む。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレス用に1または複数の内部キャッシュを含んでもよい。この開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ502を企図する。限定するものとしてではなく一例として、プロセッサ502は、1または複数の命令キャッシュ、1または複数のデータ・キャッシュ、および1または複数の変換索引バッファ(TLB)を含んでもよい。命令キャッシュ内の命令は、メモリ504またはストレージ506内の命令のコピーであってもよく、命令キャッシュは、プロセッサ502によるこれらの命令の取り出しを高速化する。データ・キャッシュ内のデータは、プロセッサ502にて実行される命令が操作するための、メモリ504またはストレージ506内のデータのコピー、プロセッサ502で実行される後続の命令によるアクセスための、またはメモリ504もしくはストレージ506に書き込むための、プロセッサ502で実行された以前の命令の結果、あるいは他の好適なデータであってもよい。データ・キャッシュは、プロセッサ502による読出しまたは書込み動作を高速化する。TLBは、プロセッサ502のために仮想アドレス変換を高速化する。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレス用に1または複数の内部レジスタを含む。この開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ502を企図する。適切な場合、プロセッサ502は、1または複数の算術論理演算ユニット(ALU)を含むことができ、マルチコア・プロセッサであってもよく、1または複数のプロセッサ502を含んでもよい。この開示は、特定のプロセッサについて記載
し示しているが、この開示は、任意の好適なプロセッサを企図する。
特定の実施形態では、メモリ504は、プロセッサ502が実行するための命令、またはプロセッサ502が操作するためのデータを記憶するための主記憶装置を含む。限定するものとしてではなく一例として、コンピュータ・システム500は、ストレージ506または別のソース(たとえば、別のコンピュータ・システム500など)からメモリ504に命令をロードする。次いで、プロセッサ502は、メモリ504から内部レジスタまたは内部キャッシュに命令をロードする。命令を実行するために、プロセッサ502は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号する。命令の実行中、または実行後、プロセッサ502は、1または複数の結果(中間結果であることも最終結果であることもある)を内部レジスタまたは内部キャッシュに書き込む。次いで、プロセッサ502は、それらの結果の1または複数をメモリ504に書き込む。特定の実施形態では、プロセッサ502は、1もしくは複数の内部レジスタもしくは内部キャッシュ内、または(ストレージ506もしくは他の場所ではなく)メモリ504内の命令だけを実行し、1もしくは複数の内部レジスタもしくは内部キャッシュ内、または(ストレージ806もしくは他の場所ではなく)メモリ504内のデータだけを操作する。1または複数のメモリ・バス(それぞれがアドレス・バスとデータ・バスを含むことがある)がプロセッサ502をメモリ504に結合してもよい。バス512は、下記に記載されているように、1または複数のメモリ・バスを含んでもよい。特定の実施形態では、1または複数のメモリ管理ユニット(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は、ETHERNET(登録商標)もしくは他の有線ベースのネットワークとの通信のためのインターフェース・コントローラ(NIC)もしくはネットワーク・アダプタ、またはWI−FIネットワークなど無線ネットワークとの通信のための無線NIC(WNIC)もしくは無線アダプタを含んでもよい。この開示は、任意の好適なネットワーク、およびそのための任意の好適な通信インターフェース510を企図する。限定するものとしてではなく一例として、コンピュータ・システム500は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはインターネットの1もしくは複数の部分、あるいはこれらの2以上の組合せと通信する。これらのネットワークの1または複数のうちの1または複数の部分は、有線であっても無線であってもよい。一例として、コンピュータ・システム500は、無線PAN(WPAN)(たとえば、BLUETOOTH(登録商標)WPANなど)、WI−FIネットワーク、WI−MAXネットワーク、携帯電話ネットワーク(たとえば、グローバル移動体通信システム(GSM(登録商標))ネットワークなど)、もしくは他の好適な無線ネットワーク、またはこれらの2以上の組合せと通信する。コンピュータ・システム500は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース510を含んでもよい。通信インターフェース510は、適切な場合、1または複数の通信インターフェース510を含んでもよい。この開示は、特定の通信インターフェースについて記載し示しているが、この開示は、任意の好適な通信インターフェースを企図する。
特定の実施形態では、バス512は、コンピュータ・システム500の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、バス512は、アクセラレィティッド・グラフィックス・ポート(AGP)もしくは他のグラフィックス・バス、EISA(Enhanced Industry Standard Architecture)バス、フロントサイド・バス(FSB)、HT(HYPERTRANSPORT)相互接続、ISA(Industry Standard Architecture)バス、インフィニバンド相互接続、LPC(low−pin−count)バス、メモリ・バス、MCA(Micro Channel Architecture)バス、PCI(Peripheral Compo
nent Interconnect)バス、PCIエクスプレス(PCIe)バス、SATA(serial advanced technology attachment)バス、VLB(Video Electronics Standards Association local)バス、もしくは別の好適なバス、またはこれらの2以上の組合せを含んでもよい。バス512は、適切な場合、1または複数のバス512を含んでもよい。この開示は、特定のバスについて記載し示しているが、この開示は、任意の好適なバスまたは相互接続を企図する。
本明細書では、1または複数の非一時的コンピュータ可読記憶媒体は、適切な場合、1または複数の半導体ベースの、もしくは他の集積回路(IC)(たとえば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC))、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスク・ドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー・ディスケット、フロッピー・ディスク・ドライブ(FDD)、磁気テープ、ソリッドステート・ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはセキュア・デジタル・ドライブ、任意の他の好適な非一時的コンピュータ可読記憶媒体、またはこれらの2以上の組合せを含んでもよい。非一時的コンピュータ可読記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
本明細書では、「または(もしくは)」は、別段明確に示されていない限り、または別段文脈によって示されない限り、包括的(inclusive)であり、排他的なものではない。したがって、本明細書では、「AまたはB」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「A、B、またはその両方」を意味する。さらに、「および」は、別段明確に示されていない限り、または別段文脈によって示されない限り、共同であり、個別的でもある。したがって、本明細書では、「AおよびB」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「AおよびBを共同で、または個別的に」意味する。
この開示の範囲は、当業者であれば理解するであろう、本明細書に記載され、または示されている例示的な実施形態に対する変更、置換、変形、代替、および修正すべてを包含する。この開示の範囲は、本明細書に記載され、または示されている例示的な実施形態に限定されない。さらに、この開示は、それぞれの実施形態について、本明細書では、特定の構成要素、要素、機能、動作、またはステップを含むものとして記載し示しているが、これらの実施形態のいずれも、当業者であれば理解するであろう、本明細書のどこかに記載され、または示されている構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含んでもよい。さらに、添付の特許請求の範囲において、特定の機能を実施するように適合された、するように配置された、することが可能な、するように構成された、することが可能である、するように動作可能である、またはするように動作する装置もしくはシステム、または装置もしくはシステムの構成要素に言及することは、その装置、システム、または構成要素がそのように適合され、配置され、動作可能であり、構成され、可能であり、動作可能であり、動作する限り、それ、またはその特定の機能が作動される、オンにされる、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。

Claims (23)

  1. 1以上のコンピューティング・デバイスが、
    第1のユーザのクライアント・システムから、第1のオブジェクト・タイプのオブジェクトを求める検索クエリを受信する工程であって、前記検索クエリは、第2のオブジェクト・タイプのオブジェクトを要求する内部クエリを備え、要求された前記オブジェクトは、複数のオブジェクト・タイプのオブジェクトをそれぞれ記憶する複数のデータ・ストアに記憶された構造化文書であり、各データ・ストアは、単一のオブジェクト・タイプのオブジェクトだけを記憶する、工程と、
    前記第2のオブジェクト・タイプのオブジェクトだけを記憶する第2のデータ・ストアの逆引きインデックスを使用して、前記内部クエリによって要求された前記第2のオブジェクト・タイプの1以上のオブジェクトを識別する、第2のオブジェクト・タイプ識別工程と、
    前記第2のオブジェクト・タイプの識別された前記1以上のオブジェクトの各々について、前記検索クエリによって要求された第1のオブジェクト・タイプの前記1以上のオブジェクトを識別する工程であって、前記第1のオブジェクト・タイプの前記1以上のオブジェクトは、前記第1のオブジェクト・タイプのオブジェクトだけを記憶する第1のデータ・ストアの逆引きインデックスを使用して識別される、第1のオブジェクト・タイプ識別工程と、
    前記検索クエリに応答して複数の検索結果を集約する工程であって、各検索結果は、前記第1のオブジェクト・タイプの識別されたオブジェクトに対応している、工程と、
    集約された前記検索結果の1以上を前記第1のユーザのクライアント・システムに送信する工程と、を備える方法。
  2. 複数のノードと、前記ノード同士を接続する複数のエッジとを備えるソーシャル・グラフにアクセスする工程であって、前記ノードのうちの2つの間の前記エッジの各々は、それらの間の単一の分離度を表す、工程をさらに備え、前記ノードは、
    前記第1のユーザに対応する第1のノードであって、前記第1のユーザは、オンライン・ソーシャル・ネットワークのユーザである、第1のノードと、
    前記オンライン・ソーシャル・ネットワークに関連付けられている複数のオブジェクト
    にそれぞれ対応する複数の第2のノードと、を含む、請求項1に記載の方法。
  3. 前記第1のオブジェクト・タイプの識別されたオブジェクトの各々は、前記ソーシャル・グラフ内における前記第1のノードの分離度のしきい値内である第2のノードに対応する、請求項2に記載の方法。
  4. 前記第1のオブジェクト・タイプ識別工程は、
    前記第1のオブジェクト・タイプに対応する前記第1のデータ・ストアの逆引きインデックスにアクセスする工程であって、前記逆引きインデックスは、第1の関係に応じてソーシャル・グラフのコンセプト・ノードを前記ソーシャル・グラフの1以上のユーザ・ノードにマッピングする、工程と、
    識別された前記第2のオブジェクト・タイプのオブジェクトの1以上と、前記第1のオブジェクト・タイプに対応する前記第1のデータ・ストアの前記逆引きインデックスとを使用して、前記検索クエリによって要求された前記第1のオブジェクト・タイプの前記1以上のオブジェクトを取り出す工程であって、前記第1のオブジェクト・タイプの前記1以上のオブジェクトは、前記ソーシャル・グラフの1以上のユーザ・ノードに対応し、前記ユーザ・ノードは、前記第1の関係によって前記1以上の取り出されたコンセプト・ノードに関連する、工程と、を含む、請求項1に記載の方法。
  5. 前記第2のオブジェクト・タイプ識別工程は、
    前記第2のオブジェクト・タイプに対応する第2のデータ・ストアの逆引きインデックスにアクセスする工程であって、前記第2のデータ・ストアの逆引きインデックスは、第2の関係に応じてソーシャル・グラフのユーザ・ノードを前記ソーシャル・グラフの1以上のコンセプト・ノードにマッピングする、工程と、
    前記第2のオブジェクト・タイプに対応する前記第2のデータ・ストアの前記逆引きインデックスを使用して、前記内部クエリによって要求された前記第2のオブジェクト・タイプの前記1以上のオブジェクトを取り出す工程であって、前記第2のオブジェクト・タイプの前記1以上のオブジェクトは、オンライン・ソーシャル・ネットワークにおける前記ソーシャル・グラフの1以上のコンセプト・ノードに対応し、前記1以上のコンセプト・ノードは、前記第2の関係によって、前記内部クエリにおいて指定されるユーザに関連する、工程と、を含む、請求項1に記載の方法。
  6. 前記第1のオブジェクト・タイプは、オンライン・ソーシャル・ネットワークの1つのユーザに対応し、前記第2のオブジェクト・タイプは、前記オンライン・ソーシャル・ネットワークのコンセプトに対応する、請求項1に記載の方法。
  7. 前記第1のオブジェクト・タイプまたは第2のオブジェクト・タイプは、ユーザ、投稿、写真、映像、オーディオ、ウェブ・ページ、およびアプリケーションを含む群から選択される、請求項1に記載の方法。
  8. 前記検索クエリは、前記第1のユーザによってサブミットされたテキスト文字列である、請求項1に記載の方法。
  9. 前記検索クエリは、構造化されたテキスト文字列または実質的に構造化されていないテキスト文字列である、請求項1に記載の方法。
  10. 集約された前記1以上の検索結果をランク付けする、ランク付け工程をさらに備える、請求項1に記載の方法。
  11. 前記ランク付け工程は、
    前記第1のオブジェクト・タイプに対応する前記第1のデータ・ストアにアクセスする工程と、
    前記第1のオブジェクト・タイプに対応する前記第1のデータ・ストアを使用して、前記第1のオブジェクト・タイプの識別された前記オブジェクトの前記内部クエリの要素に対応する関係を決定する工程と、
    前記第1のオブジェクト・タイプの識別された前記オブジェクトの前記内部クエリの前記要素に対応する関係に基づいて、前記1以上の検索結果をランク付けする工程と、を含む、請求項10に記載の方法。
  12. 前記ランク付け工程は、
    アグリゲータ・プロセスによって、集約された前記検索結果を前記第1のオブジェクト・タイプに対応する前記第1のデータ・ストアにサブミットする工程と、
    サーバ・プロセスによって、集約された前記検索結果の各々に関連付けられている情報に基づいて、前記検索結果をランク付けする工程であって、前記情報は、前記第1のデータ・ストアに記憶されている、工程と、を含む、請求項10に記載の方法。
  13. 各検索結果の前記ランク付けは、前記第1のユーザと、前記検索結果に対応する識別されたオブジェクトの各々との間の関係に少なくとも部分的に基づく、請求項10に記載の方法。
  14. 各検索結果の前記ランク付けは、前記検索結果に対応する識別されたオブジェクトの各々に関連付けられている「いいね」の数に少なくとも部分的に基づく、請求項10に記載の方法。
  15. 各検索結果の前記ランク付けは、前記検索結果に関連付けられている前記第1のユーザが「いいね」と表明したオブジェクトの数に少なくとも部分的に基づく、請求項10に記載の方法。
  16. 前記第2のデータ・ストアの逆引きインデックスは、前記第1のオブジェクト・タイプに関連付けられている検索語を前記第2のオブジェクト・タイプの1以上のオブジェクトにマッピングする、請求項1に記載の方法。
  17. 前記検索クエリは、ソーシャル・ネットワーキング・システムのアグリゲータ・プロセスによって受信される、請求項1に記載の方法。
  18. 前記検索クエリは、オンライン・ソーシャル・ネットワーク内の1以上のオブジェクトを対象とする、請求項1に記載の方法。
  19. ソフトウェアを記憶する1以上の非一時的コンピュータ可読記憶媒体であって、前記ソフトウェアは、実行されると、
    第1のユーザのクライアント・システムから、第1のオブジェクト・タイプのオブジェクトを求める検索クエリを受信する工程であって、前記検索クエリは、第2のオブジェクト・タイプのオブジェクトを要求する内部クエリを備え、要求された前記オブジェクトは、複数のオブジェクト・タイプのオブジェクトを記憶する複数のデータ・ストアにそれぞれ記憶された構造化文書であり、各データ・ストアは、単一のオブジェクト・タイプのオブジェクトだけを記憶する、工程と、
    前記第2のオブジェクト・タイプのオブジェクトだけを記憶第2のデータ・ストアの逆引きインデックスを使用して、前記内部クエリによって要求された前記第2のオブジェクト・タイプの1以上のオブジェクトを識別する、第2のオブジェクト・タイプ識別工程と、
    前記第2のオブジェクト・タイプの識別された前記1以上のオブジェクトの各々について、前記検索クエリによって要求された第1のオブジェクト・タイプの前記1以上のオブジェクトを識別する工程であって、前記第1のオブジェクト・タイプの前記1以上のオブジェクトは、前記第1のオブジェクト・タイプのオブジェクトだけを記憶する第1のデータ・ストアの逆引きインデックスを使用して識別される、第1のオブジェクト・タイプ識別工程と、
    前記検索クエリに応答して複数の検索結果を集約する工程であって、各検索結果は、前記第1のオブジェクト・タイプの識別されたオブジェクトに対応している、工程と、
    集約された前記検索結果の1以上を前記第1のユーザのクライアント・システムに送信する工程と、が行われる、記憶媒体。
  20. 1以上のプロセッサと、前記プロセッサによって実行可能な命令を含む、前記プロセッサに結合されている非一時的なメモリと、を備え、前記プロセッサは、前記命令を実行したとき、
    第1のユーザのクライアント・システムから、第1のオブジェクト・タイプのオブジェクトを求める検索クエリを受信する工程であって、前記検索クエリは、第2のオブジェクト・タイプのオブジェクトを要求する内部クエリを備え、要求された前記オブジェクトは、複数のオブジェクト・タイプのオブジェクトを記憶する複数のデータ・ストアにそれぞれ記憶された構造化文書であり、各データ・ストアは、単一のオブジェクト・タイプのオブジェクトだけを記憶する、工程と、
    前記第2のオブジェクト・タイプのオブジェクトだけを記憶する第2のデータ・ストアの逆引きインデックスを使用して、前記内部クエリによって要求された前記第2のオブジェクト・タイプの1以上のオブジェクトを識別する、第2のオブジェクト・タイプ識別工程と、
    前記第2のオブジェクト・タイプの識別された前記1以上のオブジェクトの各々について、前記検索クエリによって要求された第1のオブジェクト・タイプの前記1以上のオブジェクトを識別する工程であって、前記第1のオブジェクト・タイプの前記1以上のオブジェクトは、前記第1のオブジェクト・タイプのオブジェクトだけを記憶する第1のデータ・ストアの逆引きインデックスを使用して識別される、第1のオブジェクト・タイプ識別工程と、
    前記検索クエリに応答して複数の検索結果を集約する工程であって、各検索結果は、前記第1のオブジェクト・タイプの識別されたオブジェクトに対応している、工程と、
    集約された前記検索結果の1以上を前記第1のユーザのクライアント・システムに送信する工程と、を行うように構成される、システム。
  21. 各データ・ストアは、前記データ・ストアに記憶されている特定のオブジェクト・タイプのオブジェクトを求めるクエリ要求を処理するための前記データ・ストアに結合されるインデックスサーバを備える、請求項1に記載の方法。
  22. 前記検索クエリは、前記第1のオブジェクト・タイプのオブジェクトと前記第2のオブジェクト・タイプのオブジェクトとの間の特定の関係を指定する、請求項1に記載の方法。
  23. 前記第1のオブジェクト・タイプおよび前記第2のオブジェクト・タイプは、ユーザ・プロフィールページ、投稿ページ、写真ページ、映像ページ、オーディオページ、ウェブ・ページ、およびアプリケーションページを含む群から選択される特定のタイプの構造化文書である、請求項1に記載の方法。
JP2016128361A 2012-12-21 2016-06-29 抽出演算子 Active JP6363133B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/723,861 2012-12-21
US13/723,861 US8935271B2 (en) 2012-12-21 2012-12-21 Extract operator

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016023780A Division JP5964526B2 (ja) 2012-12-21 2016-02-10 抽出演算子

Publications (2)

Publication Number Publication Date
JP2016170820A JP2016170820A (ja) 2016-09-23
JP6363133B2 true JP6363133B2 (ja) 2018-07-25

Family

ID=50975900

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2015549492A Active JP5886488B1 (ja) 2012-12-21 2013-12-12 抽出演算子
JP2016023780A Active JP5964526B2 (ja) 2012-12-21 2016-02-10 抽出演算子
JP2016128361A Active JP6363133B2 (ja) 2012-12-21 2016-06-29 抽出演算子

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2015549492A Active JP5886488B1 (ja) 2012-12-21 2013-12-12 抽出演算子
JP2016023780A Active JP5964526B2 (ja) 2012-12-21 2016-02-10 抽出演算子

Country Status (7)

Country Link
US (3) US8935271B2 (ja)
JP (3) JP5886488B1 (ja)
KR (3) KR101719238B1 (ja)
AU (1) AU2013363308B2 (ja)
CA (3) CA2931411C (ja)
IL (3) IL239434A (ja)
WO (1) WO2014099587A1 (ja)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9633121B2 (en) 2010-04-19 2017-04-25 Facebook, Inc. Personalizing default search queries on online social networks
US8935255B2 (en) 2012-07-27 2015-01-13 Facebook, Inc. Social static ranking for search
US9398104B2 (en) 2012-12-20 2016-07-19 Facebook, Inc. Ranking test framework for search results on an online social network
US9223826B2 (en) 2013-02-25 2015-12-29 Facebook, Inc. Pushing suggested search queries to mobile devices
US9910887B2 (en) 2013-04-25 2018-03-06 Facebook, Inc. Variable search query vertical access
US9367880B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Search intent for queries on online social networks
US9367625B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Search query interactions on online social networks
US9367536B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Using inverse operators for queries on online social networks
US9330183B2 (en) 2013-05-08 2016-05-03 Facebook, Inc. Approximate privacy indexing for search queries on online social networks
US9223898B2 (en) 2013-05-08 2015-12-29 Facebook, Inc. Filtering suggested structured queries on online social networks
US9305322B2 (en) 2013-07-23 2016-04-05 Facebook, Inc. Native application testing
US11238056B2 (en) * 2013-10-28 2022-02-01 Microsoft Technology Licensing, Llc Enhancing search results with social labels
US9336300B2 (en) 2014-01-17 2016-05-10 Facebook, Inc. Client-side search templates for online social networks
US11645289B2 (en) 2014-02-04 2023-05-09 Microsoft Technology Licensing, Llc Ranking enterprise graph queries
US9870432B2 (en) 2014-02-24 2018-01-16 Microsoft Technology Licensing, Llc Persisted enterprise graph queries
US11657060B2 (en) 2014-02-27 2023-05-23 Microsoft Technology Licensing, Llc Utilizing interactivity signals to generate relationships and promote content
US10757201B2 (en) 2014-03-01 2020-08-25 Microsoft Technology Licensing, Llc Document and content feed
US10255563B2 (en) 2014-03-03 2019-04-09 Microsoft Technology Licensing, Llc Aggregating enterprise graph content around user-generated topics
US10394827B2 (en) 2014-03-03 2019-08-27 Microsoft Technology Licensing, Llc Discovering enterprise content based on implicit and explicit signals
US10169457B2 (en) 2014-03-03 2019-01-01 Microsoft Technology Licensing, Llc Displaying and posting aggregated social activity on a piece of enterprise content
EP2977948A1 (en) * 2014-07-25 2016-01-27 Facebook, Inc. Ranking external content on online social networks
US10268763B2 (en) 2014-07-25 2019-04-23 Facebook, Inc. Ranking external content on online social networks
US10061826B2 (en) 2014-09-05 2018-08-28 Microsoft Technology Licensing, Llc. Distant content discovery
US10102273B2 (en) 2014-12-30 2018-10-16 Facebook, Inc. Suggested queries for locating posts on online social networks
US10061856B2 (en) 2015-01-29 2018-08-28 Facebook, Inc. Multimedia search using reshare text on online social networks
US10997257B2 (en) 2015-02-06 2021-05-04 Facebook, Inc. Aggregating news events on online social networks
US10223453B2 (en) * 2015-02-18 2019-03-05 Ubunifu, LLC Dynamic search set creation in a search engine
US10049099B2 (en) 2015-04-10 2018-08-14 Facebook, Inc. Spell correction with hidden markov models on online social networks
US10095683B2 (en) 2015-04-10 2018-10-09 Facebook, Inc. Contextual speller models on online social networks
US10628636B2 (en) 2015-04-24 2020-04-21 Facebook, Inc. Live-conversation modules on online social networks
US10298535B2 (en) 2015-05-19 2019-05-21 Facebook, Inc. Civic issues platforms on online social networks
US10397167B2 (en) 2015-06-19 2019-08-27 Facebook, Inc. Live social modules on online social networks
US10509832B2 (en) 2015-07-13 2019-12-17 Facebook, Inc. Generating snippet modules on online social networks
US10268664B2 (en) 2015-08-25 2019-04-23 Facebook, Inc. Embedding links in user-created content on online social networks
US10810217B2 (en) 2015-10-07 2020-10-20 Facebook, Inc. Optionalization and fuzzy search on online social networks
KR102347887B1 (ko) * 2015-10-30 2022-01-05 삼성에스디에스 주식회사 검색 엔진을 이용한 타임라인 관리 방법 및 그 장치
US10270868B2 (en) 2015-11-06 2019-04-23 Facebook, Inc. Ranking of place-entities on online social networks
US10795936B2 (en) 2015-11-06 2020-10-06 Facebook, Inc. Suppressing entity suggestions on online social networks
US9602965B1 (en) 2015-11-06 2017-03-21 Facebook, Inc. Location-based place determination using online social networks
US10534814B2 (en) 2015-11-11 2020-01-14 Facebook, Inc. Generating snippets on online social networks
US10387511B2 (en) 2015-11-25 2019-08-20 Facebook, Inc. Text-to-media indexes on online social networks
US10740368B2 (en) 2015-12-29 2020-08-11 Facebook, Inc. Query-composition platforms on online social networks
US10853335B2 (en) 2016-01-11 2020-12-01 Facebook, Inc. Identification of real-best-pages on online social networks
US10262039B1 (en) 2016-01-15 2019-04-16 Facebook, Inc. Proximity-based searching on online social networks
US10162899B2 (en) 2016-01-15 2018-12-25 Facebook, Inc. Typeahead intent icons and snippets on online social networks
US10740375B2 (en) 2016-01-20 2020-08-11 Facebook, Inc. Generating answers to questions using information posted by users on online social networks
US10242074B2 (en) 2016-02-03 2019-03-26 Facebook, Inc. Search-results interfaces for content-item-specific modules on online social networks
US10216850B2 (en) 2016-02-03 2019-02-26 Facebook, Inc. Sentiment-modules on online social networks
US10270882B2 (en) 2016-02-03 2019-04-23 Facebook, Inc. Mentions-modules on online social networks
US10157224B2 (en) 2016-02-03 2018-12-18 Facebook, Inc. Quotations-modules on online social networks
US10452671B2 (en) 2016-04-26 2019-10-22 Facebook, Inc. Recommendations from comments on online social networks
US10635661B2 (en) 2016-07-11 2020-04-28 Facebook, Inc. Keyboard-based corrections for search queries on online social networks
US10223464B2 (en) 2016-08-04 2019-03-05 Facebook, Inc. Suggesting filters for search on online social networks
US10282483B2 (en) 2016-08-04 2019-05-07 Facebook, Inc. Client-side caching of search keywords for online social networks
US10726022B2 (en) 2016-08-26 2020-07-28 Facebook, Inc. Classifying search queries on online social networks
US10534815B2 (en) 2016-08-30 2020-01-14 Facebook, Inc. Customized keyword query suggestions on online social networks
US20180068023A1 (en) * 2016-09-07 2018-03-08 Facebook, Inc. Similarity Search Using Polysemous Codes
US10102255B2 (en) 2016-09-08 2018-10-16 Facebook, Inc. Categorizing objects for queries on online social networks
US10645142B2 (en) 2016-09-20 2020-05-05 Facebook, Inc. Video keyframes display on online social networks
US10083379B2 (en) 2016-09-27 2018-09-25 Facebook, Inc. Training image-recognition systems based on search queries on online social networks
US10026021B2 (en) 2016-09-27 2018-07-17 Facebook, Inc. Training image-recognition systems using a joint embedding model on online social networks
US10579688B2 (en) 2016-10-05 2020-03-03 Facebook, Inc. Search ranking and recommendations for online social networks based on reconstructed embeddings
US10311117B2 (en) 2016-11-18 2019-06-04 Facebook, Inc. Entity linking to query terms on online social networks
US10650009B2 (en) 2016-11-22 2020-05-12 Facebook, Inc. Generating news headlines on online social networks
US10162886B2 (en) 2016-11-30 2018-12-25 Facebook, Inc. Embedding-based parsing of search queries on online social networks
US10185763B2 (en) 2016-11-30 2019-01-22 Facebook, Inc. Syntactic models for parsing search queries on online social networks
US10313456B2 (en) 2016-11-30 2019-06-04 Facebook, Inc. Multi-stage filtering for recommended user connections on online social networks
US10235469B2 (en) 2016-11-30 2019-03-19 Facebook, Inc. Searching for posts by related entities on online social networks
US10607148B1 (en) 2016-12-21 2020-03-31 Facebook, Inc. User identification with voiceprints on online social networks
US11223699B1 (en) 2016-12-21 2022-01-11 Facebook, Inc. Multiple user recognition with voiceprints on online social networks
US10535106B2 (en) 2016-12-28 2020-01-14 Facebook, Inc. Selecting user posts related to trending topics on online social networks
US10489472B2 (en) 2017-02-13 2019-11-26 Facebook, Inc. Context-based search suggestions on online social networks
US11620565B1 (en) * 2017-02-24 2023-04-04 Iqvia Inc. System and method for enhanced distribution of data to compute nodes
US10614141B2 (en) 2017-03-15 2020-04-07 Facebook, Inc. Vital author snippets on online social networks
US10769222B2 (en) 2017-03-20 2020-09-08 Facebook, Inc. Search result ranking based on post classifiers on online social networks
US11379861B2 (en) 2017-05-16 2022-07-05 Meta Platforms, Inc. Classifying post types on online social networks
US10248645B2 (en) 2017-05-30 2019-04-02 Facebook, Inc. Measuring phrase association on online social networks
US10268646B2 (en) 2017-06-06 2019-04-23 Facebook, Inc. Tensor-based deep relevance model for search on online social networks
US10489468B2 (en) 2017-08-22 2019-11-26 Facebook, Inc. Similarity search using progressive inner products and bounds
US10776437B2 (en) 2017-09-12 2020-09-15 Facebook, Inc. Time-window counters for search results on online social networks
US10678786B2 (en) 2017-10-09 2020-06-09 Facebook, Inc. Translating search queries on online social networks
US10810214B2 (en) 2017-11-22 2020-10-20 Facebook, Inc. Determining related query terms through query-post associations on online social networks
US10963514B2 (en) 2017-11-30 2021-03-30 Facebook, Inc. Using related mentions to enhance link probability on online social networks
US11604968B2 (en) 2017-12-11 2023-03-14 Meta Platforms, Inc. Prediction of next place visits on online social networks
US10129705B1 (en) 2017-12-11 2018-11-13 Facebook, Inc. Location prediction using wireless signals on online social networks

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040039691A (ko) * 2002-11-04 2004-05-12 엘지전자 주식회사 정보 검색 시스템의 인덱싱 방법
US7814042B2 (en) * 2004-08-17 2010-10-12 Oracle International Corporation Selecting candidate queries
WO2008058218A2 (en) 2006-11-08 2008-05-15 Seeqpod, Inc. Matching and recommending relevant videos and media to individual search engine results
JP4968041B2 (ja) * 2007-12-17 2012-07-04 富士通株式会社 サービス提供システムの連携システム、サービス提供システムおよびその制御方法、ならびにコンピュータプログラム
JP5054593B2 (ja) * 2008-03-27 2012-10-24 日本電信電話株式会社 情報検索装置及びプログラム
US8612668B2 (en) * 2008-11-24 2013-12-17 Juniper Networks, Inc. Storage optimization system based on object size
US8386519B2 (en) * 2008-12-30 2013-02-26 Expanse Networks, Inc. Pangenetic web item recommendation system
US8108406B2 (en) * 2008-12-30 2012-01-31 Expanse Networks, Inc. Pangenetic web user behavior prediction system
JP5210970B2 (ja) * 2009-05-28 2013-06-12 日本電信電話株式会社 共通クエリグラフパターン生成方法、共通クエリグラフパターン生成装置及び共通クエリグラフパターン生成プログラム
JP5314504B2 (ja) * 2009-06-01 2013-10-16 日本電信電話株式会社 検索装置、検索プログラムおよび検索方法
US8234295B2 (en) * 2009-06-03 2012-07-31 International Business Machines Corporation Managing uncertain data using Monte Carlo techniques
US8244749B1 (en) 2009-06-05 2012-08-14 Google Inc. Generating sibling query refinements
CN101572607B (zh) 2009-06-12 2011-11-09 阿里巴巴集团控股有限公司 一种社会化网络中处理认证请求消息的方法及装置
KR20100134970A (ko) 2009-06-16 2010-12-24 김재권 인터넷 검색엔진을 이용한 자동 검색 및 자동 필터링 시스템 및 방법
US9710491B2 (en) * 2009-11-02 2017-07-18 Microsoft Technology Licensing, Llc Content-based image search
US20120137367A1 (en) * 2009-11-06 2012-05-31 Cataphora, Inc. Continuous anomaly detection based on behavior modeling and heterogeneous information analysis
US8176037B2 (en) * 2009-11-16 2012-05-08 Dell Products L.P. System and method for SQL query load balancing
US8209316B2 (en) 2010-01-05 2012-06-26 Microsoft Corporation Providing suggestions of related videos
US8527496B2 (en) * 2010-02-11 2013-09-03 Facebook, Inc. Real time content searching in social network
US8380723B2 (en) 2010-05-21 2013-02-19 Microsoft Corporation Query intent in information retrieval
US8527497B2 (en) 2010-12-30 2013-09-03 Facebook, Inc. Composite term index for graph data
US9087106B2 (en) * 2010-12-31 2015-07-21 Yahoo! Inc. Behavior targeting social recommendations
US8566340B2 (en) * 2011-12-07 2013-10-22 Microsoft Corporation Provision of query suggestions independent of query logs
US8521723B1 (en) * 2012-07-18 2013-08-27 Oracle International Corporation Transforming correlated scalar subqueries
US9613125B2 (en) * 2012-10-11 2017-04-04 Nuance Communications, Inc. Data store organizing data using semantic classification

Also Published As

Publication number Publication date
US10061846B2 (en) 2018-08-28
US9342546B2 (en) 2016-05-17
JP5964526B2 (ja) 2016-08-03
US20150088901A1 (en) 2015-03-26
US8935271B2 (en) 2015-01-13
US20140181091A1 (en) 2014-06-26
JP2016509706A (ja) 2016-03-31
KR20150091181A (ko) 2015-08-07
KR101719238B1 (ko) 2017-03-23
IL239434A (en) 2016-04-21
IL247989B (en) 2018-11-29
JP5886488B1 (ja) 2016-03-16
KR20150127729A (ko) 2015-11-17
IL243692A (en) 2016-10-31
KR101569425B1 (ko) 2015-11-16
US20160179942A1 (en) 2016-06-23
AU2013363308A1 (en) 2015-07-30
CA2931411C (en) 2019-06-11
IL243692A0 (en) 2016-04-21
CA2901597C (en) 2016-08-02
CA2894429C (en) 2015-11-10
JP2016170820A (ja) 2016-09-23
KR20170031798A (ko) 2017-03-21
AU2013363308B2 (en) 2015-09-17
CA2894429A1 (en) 2014-06-26
JP2016119116A (ja) 2016-06-30
KR101962716B1 (ko) 2019-03-27
WO2014099587A1 (en) 2014-06-26
CA2931411A1 (en) 2014-06-26
CA2901597A1 (en) 2014-06-26
IL239434A0 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
JP6363133B2 (ja) 抽出演算子
JP6293830B2 (ja) オンライン・ソーシャル・ネットワークにおける検索クエリに対する近似的プライバシ
JP6615260B2 (ja) オフライン・コンテンツの生成
JP6483092B2 (ja) 更新レイヤを伴うデータベース・シャーディング
US9158801B2 (en) Indexing based on object type
JP6315835B2 (ja) 短語のハッシュ
JP6511417B2 (ja) バーティカルベースのクエリのオプション化
AU2016204563B2 (en) Extract operator
AU2015258295B2 (en) Extract operator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171227

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: 20180529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180627

R150 Certificate of patent or registration of utility model

Ref document number: 6363133

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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