IP Library Granted Patent US 9,158,801
Granted Patent B2
US 9,158,801 · App. 13/560,212 · Granted Oct 13, 2015

Indexing based on object type

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 9,158,801
App. No.
13/560,212
Granted
Oct 13, 2015
Kind
B2
Abstract

In one embodiment, a method includes maintaining data stores for objects of a social-networking system, each data store being configured to store objects of a particular one of multiple object types indexed by a search index; receiving an object; identifying an object type of the received object; storing the received object in at least one data store being configured to store objects of the identified object type; and updating the search index of the at least one data store based on the received object.

Claims (52)

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

receiving a search request for at least one of a plurality of objects of a social-networking system, wherein:

the social-networking system comprises a social graph that comprises a plurality of nodes and a plurality of edges connecting the nodes;

each object corresponds to a node of the social graph;

the objects of the social-networking system are stored by a plurality of partitions of a database that are each configured to store objects of only a particular one of a plurality of object types;

the objects in the partitions are indexed by a plurality of search indices that each index only a particular one of the plurality of partitions; and

each search index indexes objects with information identifying edges connecting the nodes represented by the objects to other nodes in the social graph and with information identifying the other nodes;

determining one or more search queries based on the search request wherein, each search query has a single object type for its expected search results;

sending each search query to the partition that is configured to store objects of only the particular one of the object types that the search query has for its expected search results;

for each search query, attempting to retrieve one or more search results from the partition that the search query was sent to, wherein the search results were identified using the search index that indexes only the partition; and

aggregating search results retrieved from the partitions that the search queries were sent to.

2. The method of claim 1 , wherein the plurality of object types comprise user profile, photo, post, web page, or application.

3. The method of claim 1 , wherein one or more of the search queries each comprise a nested search query.

4. The method of claim 1 , wherein sending each search query to the partition that is configured to store objects of only the particular one of the object types that the search query has for its expected search results comprises sending the search query to the search index that indexes only the partition that is configured to store objects of only the particular one of the object types that the search query has for its expected search results.

5. The method of claim 1 , wherein each partition comprises the search index that indexes only the partition.

6. The method of claim 1 , wherein the information identifying edges that each search index indexes object with comprises relationships indicated by edges.

7. The method of claim 1 , wherein each search index is hosted by a respective one of a plurality of servers.

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

receive a search request for at least one of a plurality of objects of a social-networking system, wherein:

the social-networking system comprises a social graph that comprises a plurality of nodes and a plurality of edges connecting the nodes;

each object corresponds to a node of the social graph;

the objects of the social-networking system are stored by a plurality of partitions of a database that are each configured to store objects of only a particular one of a plurality of object types;

the objects in the partitions are indexed by a plurality of search indices that each index only a particular one of the plurality of partitions; and

each search index indexes objects with information identifying edges connecting the nodes represented by the objects to other nodes in the social graph and with information identifying the other nodes;

determine one or more search queries based on the search request wherein, each search query has a single object type for its expected search results;

send each search query to the partition that is configured to store objects of only the particular one of the object types that the search query has for its expected search results;

for each search query, attempt to retrieve one or more search results from the partition that the search query was sent to, wherein the search results were identified using the search index that indexes only the partition; and

aggregate search results retrieved from the partitions that the search queries were sent to.

9. The media of claim 8 , wherein the plurality of object types comprise user profile, photo, post, web page, or application.

10. The media of claim 8 , wherein one or more of the search queries each comprise a nested search query.

11. The media of claim 8 , wherein sending each search query to the partition that is configured to store objects of only the particular one of the object types that the search query has for its expected search results comprises sending the search query to the search index that indexes only the partition that is configured to store objects of only the particular one of the object types that the search query has for its expected search results.

12. The media of claim 8 , wherein each partition comprises the search index that indexes only the partition.

13. The media of claim 8 , wherein the information identifying edges that each search index indexes object with comprises relationships indicated by edges.

14. The media of claim 8 , wherein each search index is hosted by a respective one of a plurality of servers.

15. A system comprising:

one or more processors; and

one or more computer-readable non-transitory storage media embodying software that is operable when executed by the processors to:

receive a search request for at least one of a plurality of objects of a social-networking system, wherein:

the social-networking system comprises a social graph that comprises a plurality of nodes and a plurality of edges connecting the nodes;

each object corresponds to a node of the social graph;

the objects of the social-networking system are stored by a plurality of partitions of a database that are each configured to store objects of only a particular one of a plurality of object types;

the objects in the partitions are indexed by a plurality of search indices that each index only a particular one of the plurality of partitions; and

each search index indexes objects with information identifying edges connecting the nodes represented by the objects to other nodes in the social graph and with information identifying the other nodes;

determining one or more search queries based on the search request wherein, each search query has a single object type for its expected search results;

sending each search query to the partition that is configured to store objects of only the particular one of the object types that the search query has for its expected search results;

for each search query, attempting to retrieve one or more search results from the partition that the search query was sent to, wherein the search results were identified using the search index that indexes only the partition; and

aggregate search results retrieved from the partitions that the search queries were sent to.

16. The system of claim 15 , wherein the plurality of object types comprise user profile, photo, post, web page, or application.

17. The system of claim 15 , wherein one or more of the search queries each comprise a nested search query.

18. The system of claim 15 , wherein sending each search query to the partition that is configured to store objects of only the particular one of the object types that the search query has for its expected search results comprises sending the search query to the search index that indexes only the partition that is configured to store objects of only the particular one of the object types that the search query has for its expected search results.

19. The system of claim 15 , wherein each partition comprises the search index that indexes only the partition.

20. The system of claim 15 , wherein the information identifying edges that each search index indexes object with comprises relationships indicated by edges.

Assignments (3)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
CORRECTIVE ASSIGNMENT TO CORRECT THE OMISSION OF THE SECOND INVENTOR'S NAME, SPENCER GREG AHRENS, PREVIOUSLY RECORDED ON REEL 029120 FRAME 0604. ASSIGNOR(S) HEREBY CONFIRMS THE ADDITION OF SPENCER GREG AHRENS AS THE SECOND INVENTOR ON THE ASSIGNMENT. Recorded Mar 1, 2013
From: LASSEN, SOREN BOGH; AHRENS, SPENCER GREG
To: FACEBOOK, INC.
Reel/Frame 029904/0428 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2012
From: LASSEN, SOREN BOGH
To: FACEBOOK, INC.
Reel/Frame 029120/0604 →