IP Library Granted Patent US 9,342,546
Granted Patent B2
US 9,342,546 · App. 14/561,144 · Granted May 17, 2016

Extract operator

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,342,546
App. No.
14/561,144
Granted
May 17, 2016
Kind
B2
Abstract

In one embodiment, a method includes receiving, from a user, a search query requesting objects of a first object type. The search query includes an inner query requesting objects of a second object type. The method includes identifying objects of the second object type requested by the inner query using an inverted index of a data store corresponding to the second object type; identifying objects of the first object type requested by the search query using the identified objects of the second object type and a forward index of the data store corresponding to the second object type; and sending search results to the user responsive to the search query, each search result corresponding to an identified object of the first object type.

Claims (44)

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

receiving, from a client system of a first user of an online social network, a search query for one or more objects of a first object type, wherein the search query is parsed to identify an inner query and an outer query, wherein the inner query requests one or more objects of a second object type stored in a second data store that stores only objects of the second object type, and wherein the outer query requests the one or more objects of the first object type stored in a first data store that stores only objects of the first object type;

identifying, in response to receiving the search query, the one or more objects of the second object type requested by the inner query using an inverted index of the second data store corresponding to the second object type;

identifying the one or more objects of the first object type requested by the outer query using one or more of the identified objects of the second object type and a forward index of the second data store corresponding to the second object type, wherein the one or more identified objects of the first object type are related within the online social network to one or more of the identified objects of the second object type; and

sending, to the client system of the first user, one or more search results responsive to the search query, each search result corresponding to an identified object of the first object type from the first data store.

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

receive, from a client system of a first user of an online social network, a search query for one or more objects of a first object type, wherein the search query is parsed to identify an inner query and an outer query, wherein the inner query requests one or more objects of a second object type stored in a second data store that stores only objects of the second object type, and wherein the outer query requests the one or more objects of the first object type stored in a first data store that stores only objects of the first object type;

identify, in response to receiving the search query, the one or more objects of the second object type requested by the inner query using an inverted index of the second data store corresponding to the second object type;

identify the one or more objects of the first object type requested by the outer query using one or more of the identified objects of the second object type and a forward index of the second data store corresponding to the second object type, wherein the one or more identified objects of the first object type are related within the online social network to one or more of the identified objects of the second object type; and

send, to the client system of the first user, one or more search results responsive to the search query, each search result corresponding to an identified object of the first object type from the first data store.

3. A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:

receive, from a client system of a first user of an online social network, a search query for one or more objects of a first object type, wherein the search query is parsed to identify an inner query and an outer query, wherein the inner query requests one or more objects of a second object type stored in a second data store that stores only objects of the second object type, and wherein the outer query requests the one or more objects of the first object type stored in a first data store that stores only objects of the first object type;

identify, in response to receiving the search query, the one or more objects of the second object type requested by the inner query using an inverted index of the second data store corresponding to the second object type;

identify the one or more objects of the first object type requested by the outer query using one or more of the identified objects of the second object type and a forward index of the second data store corresponding to the second object type, wherein the one or more identified objects of the first object type are related within the online social network to one or more of the identified objects of the second object type; and

send, to the client system of the first user, one or more search results responsive to the search query, each search result corresponding to an identified object of the first object type from the first data store.

4. The method of claim 1 , further comprising:

accessing a social graph comprising a plurality of nodes and a plurality of edges connecting the nodes, each of the edges between two of the nodes representing a single degree of separation between them, the nodes comprising:

a first node corresponding to the first user; and

a plurality of second nodes corresponding to a plurality of objects associated with the online social network, respectively.

5. The method of claim 1 , wherein identifying the one or more objects of the second type comprises:

accessing an inverted index of the second data store corresponding to the second object type, wherein the inverted index maps a user node to one or more concept nodes in accordance with a second relationship; and

retrieving the one or more objects of the second object type requested by the inner query using the inverted index of the second data store corresponding to the second object type, wherein the one or more objects of the second object type comprise one or more concept nodes of a social graph in the social-networking system, and the one or more concept nodes are related, by the second relationship, to a user specified in the inner query.

6. The method of claim 1 , wherein identifying the one or more objects of the first object type comprises:

accessing a forward index of the second data store corresponding to the second object type, wherein the forward index maps a concept node to one or more user nodes in accordance with a first relationship; and

retrieving the one or more objects of the first object type requested by the search query using one or more of the identified objects of the second object type and the forward index of the second data store corresponding to the second object type, wherein the one or more objects of the first object type comprise one or more user nodes of the social graph that are related to the one or more retrieved concept nodes by the first relationship.

7. The method of claim 1 , wherein the first object type corresponds to a user in the online social network and the second object type corresponds to a concept in the online social network.

8. The method of claim 1 , wherein the first or second object types are selected from a group consisting of users, posts, photos, videos, audio, web pages, and applications.

9. The method of claim 1 , wherein the search query is a text string submitted by the first user.

10. The method of claim 1 , further comprising ranking the one or more search results.

11. The method of claim 1 , wherein the inverted index maps a search term associated with the first object type to one or more objects of the second object type.

12. The method of claim 1 , wherein the forward index maps a search term associated with the second object type to one or more objects of the first object type.

13. The method of claim 1 , wherein the one or more objects of the first object type stored in the first data store are selected from a group consisting of:

one or more user objects, wherein each user object comprises a user identifier, a user name, and information associated with the user object;

one or more post objects, wherein each post object comprises a post identifier, a text string, and information associated with the post object; and

one or more media objects, wherein each media object comprises a media identifier, a media content, and information associated with the media object.

14. The method of claim 1 , wherein the first object type is different from the second object type.

15. The method of claim 4 , wherein each identified object corresponds to a second node within a threshold degree of separation of the first node within the social graph.

16. The method of claim 10 , wherein ranking the one or more search results comprises:

accessing the first data store corresponding to the first object type;

determining respective relationships of the objects of the first object type to an element of the inner query using the first data store corresponding to the first object type; and

ranking the one or more search results based on the respective relationships of the objects of the first object type to the element of the inner query.

17. The method of claim 10 , wherein the ranking of each search result is based at least in part on a relationship between the first user and each identified object corresponding to the search result.

18. The method of claim 10 , wherein the ranking of each search result is based at least in part on a count of likes associated with each identified object corresponding to the search result.

19. The method of claim 10 , wherein the ranking of each search result is based at least in part on a number of objects liked by the first user that are associated with the search result.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →