IP Library Granted Patent US 10,437,842
Granted Patent B2
US 10,437,842 · App. 15/668,358 · Granted Oct 8, 2019

Social static ranking for search

Inventors: Sriram Sankar (Palo Alto, CA); Gintaras Andrius Woss (Austin, TX); Rajat Raina (Mountain View, CA); Maxim Gubin (Danville, CA)
Assignee: Facebook, Inc.
G06F16/24578G06F16/00G06F16/2228G06F16/2272G06F16/248G06F16/328G06F16/9024G06F16/9535G06Q50/01
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,437,842
App. No.
15/668,358
Granted
Oct 8, 2019
Kind
B2
Abstract

In one embodiment, a method including maintaining an index of a plurality of nodes of a social graph, each node being associated with an assigned value, wherein the value for each node is calculated based at least in part on one or more factors. The method further includes receiving, from a client device of a first user, a query from the first user, searching the index to identify a top N nodes having the highest assigned values that match the query, ranking the identified nodes based at least in part on the query, and sending, to the client device of the first user for display, a search-results interface responsive to the received query, the search-results interface comprising M search results corresponding to the top M ranked nodes, respectively.

Claims (47)

1. A method comprising, by one or more computing devices:

maintaining, by the one or more computing devices, an index of a plurality of nodes of a social graph, each node being associated with an assigned value, wherein the value for each node is calculated based at least in part on one or more factors, wherein the factors comprise a number of edges of a particular edge type that are connected to the node in the social graph or attributes of edges connected to the node in the social graph;

receiving, at the one or more computing devices and from a client device of a first user, a query from the first user;

searching, by the one or more computing devices, the index to identify a top N nodes having the highest assigned values that match the query;

ranking, by the one or more computing devices, the identified nodes based at least in part on the query; and

sending, from the one or more computing devices to the client device of the first user for display, a search-results interface responsive to the received query, the search-results interface comprising M search results corresponding to the top M ranked nodes, respectively.

2. The method of claim 1 , wherein the assigned value for each node is calculated based on one or more sub-values corresponding to the one or more factors, respectively.

3. The method of claim 2 , wherein the sub-values are calculated based on, for each of one or more edge types connected to the node:

determining a number of edges of the edge type connected to the node; and

multiplying the number of edges of the edge type by a weight corresponding to the edge type.

4. The method of claim 2 , wherein the sub-values are calculated based on a time stamp associated with each of one or more edges connected to the node.

5. The method of claim 1 , wherein ranking the identified nodes based at least in part on the query comprises applying a search algorithm to the identified nodes.

6. The method of claim 1 , further comprising:

accessing the social graph, wherein the social graph comprises a plurality of nodes and a plurality of edges connecting the nodes, the nodes comprising:

a first node corresponding to the first user; and

a plurality of second nodes corresponding to a plurality of objects, respectively, each object being of a particular object type.

7. The method of claim 1 , wherein the search-results interface is a user interface of a native application associated with an online social network on the client device of the first user.

8. The method of claim 1 , wherein the search-results interface is a webpage of an online social network accessed by a browser client of the client device of the first user.

9. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

maintain an index of a plurality of nodes of a social graph, each node being associated with an assigned value, wherein the value for each node is calculated based at least in part on one or more factors, wherein the factors comprise a number of edges of a particular edge type that are connected to the node in the social graph or attributes of edges connected to the node in the social graph;

receive, from a client device of a first user, a query from the first user;

search the index to identify a top N nodes having the highest assigned values that match the query;

rank the identified nodes based at least in part on the query; and

send, to the client device of the first user for display, a search-results interface responsive to the received query, the search-results interface comprising M search results corresponding to the top M ranked nodes, respectively.

10. The media of claim 9 , wherein the assigned value for each node is calculated based on one or more sub-values corresponding to the one or more factors, respectively.

11. The media of claim 10 , wherein the sub-values are calculated based on, for each of one or more edge types connected to the node:

determining a number of edges of the edge type connected to the node; and

multiplying the number of edges of the edge type by a weight corresponding to the edge type.

12. The media of claim 10 , wherein the sub-values are calculated based on a time stamp associated with each of one or more edges connected to the node.

13. The media of claim 9 , wherein ranking the identified nodes based at least in part on the query comprises applying a search algorithm to the identified nodes.

14. The media of claim 9 , wherein the software is further operable when executed to:

access the social graph, wherein the social graph comprises a plurality of nodes and a plurality of edges connecting the nodes, the nodes comprising:

a first node corresponding to the first user; and

a plurality of second nodes corresponding to a plurality of objects, respectively, each object being of a particular object type.

15. The media of claim 9 , wherein the search-results interface is a user interface of a native application associated with an online social network on the client device of the first user.

16. The media of claim 9 , wherein the search-results interface is a webpage of an online social network accessed by a browser client of the client device of the first user.

17. A system comprising: one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executive the instructions to:

maintain an index of a plurality of nodes of a social graph, each node being associated with an assigned value, wherein the value for each node is calculated based at least in part on one or more factors, wherein the factors comprise a number of edges of a particular edge type that are connected to the node in the social graph or attributes of edges connected to the node in the social graph;

receive, from a client device of a first user, a query from the first user;

search the index to identify a top N nodes having the highest assigned values that match the query;

rank the identified nodes based at least in part on the query; and

send, to the client device of the first user for display, a search-results interface responsive to the received query, the search-results interface comprising M search results corresponding to the top M ranked nodes, respectively.

18. The system of claim 17 , wherein the assigned value for each node is calculated based on one or more sub-values corresponding to the one or more factors, respectively.

19. The system of claim 18 , wherein the sub-values are calculated based on, for each of one or more edge types connected to the node:

determining a number of edges of the edge type connected to the node; and

multiplying the number of edges of the edge type by a weight corresponding to the edge type.

20. The system of claim 18 , wherein the sub-values are calculated based on a time stamp associated with each of one or more edges connected to the node.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
Continuity (5)
Continuation 15337989 · Oct 28, 2016
Continuation 14973464 · Dec 17, 2015
Continuation 14556430 · Dec 1, 2014
Continuation 13560889 · Jul 27, 2012
Related Publication 20170329811A1 · Nov 16, 2017