Blending search results on online social networks
First Claim
1. A method comprising, by one or more computing devices:
- receiving from a first user of an online social network a search query input comprising one or more n-grams;
generating a plurality of query commands by parsing the search query input, wherein each query command comprises one or more query constraints, each query constraint being a request for a particular object-type to be retrieved from a particular vertical, and wherein each query command is customized for one or more respective verticals;
searching, for each query command of the plurality of query commands, the one or more respective verticals to identify a plurality of objects stored by the vertical that match the respective query command, each vertical storing one or more objects of a particular object-type associated with the online social network;
generating a plurality of search-result modules corresponding to the plurality of query commands, respectively, each search-result module of the plurality of search-result modules comprising references to a plurality of the identified objects matching the query command corresponding to the search-result module;
classifying the search query input, wherein the classification of the search query input is based at least in part on a semantic parsing of the search query input and social-networking information of the first user;
scoring each search-result module of the plurality of search-result modules, wherein scoring the search-result modules comprises, for each search-result module of the plurality of search-result modules;
calculating a score for the search-result module based at least in part on;
a relevance of the search-result module with respect to the classification of the search query input; and
a relevance of each identified object referenced in the search-result module with respect to the search query input; and
sending each search-result module having a score greater than a threshold score to the first user for display, wherein the search-result modules are displayed in order based on their respective scores.
2 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a method includes receiving from a first user of an online social network a search query input including one or more n-grams; generating a number of query commands based on the search query input; and searching one or more verticals to identify one or more objects stored by the vertical that match the query commands. Each vertical stores one or more objects associated with the online social network. The method also includes generating a number of search-result modules. Each search-result module corresponds to a query command of the number of query commands. Each search-result module includes references to one or more of the identified objects matching the query command corresponding to the search-result module. The method also includes scoring the search-result modules; and sending each search-result module having a score greater than a threshold score to the first user for display.
71 Citations
19 Claims
-
1. A method comprising, by one or more computing devices:
-
receiving from a first user of an online social network a search query input comprising one or more n-grams; generating a plurality of query commands by parsing the search query input, wherein each query command comprises one or more query constraints, each query constraint being a request for a particular object-type to be retrieved from a particular vertical, and wherein each query command is customized for one or more respective verticals; searching, for each query command of the plurality of query commands, the one or more respective verticals to identify a plurality of objects stored by the vertical that match the respective query command, each vertical storing one or more objects of a particular object-type associated with the online social network; generating a plurality of search-result modules corresponding to the plurality of query commands, respectively, each search-result module of the plurality of search-result modules comprising references to a plurality of the identified objects matching the query command corresponding to the search-result module; classifying the search query input, wherein the classification of the search query input is based at least in part on a semantic parsing of the search query input and social-networking information of the first user; scoring each search-result module of the plurality of search-result modules, wherein scoring the search-result modules comprises, for each search-result module of the plurality of search-result modules; calculating a score for the search-result module based at least in part on; a relevance of the search-result module with respect to the classification of the search query input; and a relevance of each identified object referenced in the search-result module with respect to the search query input; and sending each search-result module having a score greater than a threshold score to the first user for display, wherein the search-result modules are displayed in order based on their respective scores.
-
-
2. The method of claim 1, wherein scoring the search-result modules comprises, for each search-result module:
-
calculating a score for each identified object referenced by the search-result module; and calculating a score for the search-result module based at least in part on the calculated scores of the identified objects referenced by the search-result module.
-
-
3. The method of claim 1, wherein classifying the search query input is further based on one or more of the n-grams of the search query input.
-
4. The method of claim 3, further comprising increasing a score of one or more of the identified objects of a particular object-type based at least in part on the classification of the search query input.
-
5. The method of claim 3, further comprising decreasing a score of one or more of the identified objects of a particular object-type based at least in part on the classification of the search query input.
-
6. The method of claim 1, wherein the plurality of query commands are generated by a sub-request generator of the online social network.
-
7. The method of claim 1, wherein each query constraint is for a specified number of objects of the particular object-type.
-
8. The method of claim 1, wherein the particular object-type is selected from a group consisting of:
- a user, a photo, a post, a webpage, an application, a location, or a user group.
-
9. The method of claim 1, wherein each vertical stores objects of a different object-type.
-
10. 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 that each correspond to a concept or a second user associated with the online social network.
-
11. The method of claim 10, wherein each search-result module corresponds to a structured query comprising references to one or more nodes and one or more edges, the structured query being based on the query command corresponding to the search-result module.
-
12. The method of claim 10, wherein each node of the plurality of nodes is associated with a particular object.
-
13. The method of claim 1, wherein the search query input comprises a user-generated character string received from a client system associated with the first user, and wherein the user-generated character string is entered by the first user in a query field and rendered at the client device as each character of the character string is entered by the user.
-
14. The method of claim 1, wherein searching the verticals to identify one or more objects stored by the vertical that match the query command comprises using one or more string matching algorithms to attempt to match the one or more n-grams with a string of characters associated with each of one or more of the objects.
-
15. The method of claim 1, further comprising:
-
receiving a selection of one of the references from the first user; and sending the object corresponding to the reference to the first user.
-
-
16. The method of claim 1, wherein the score for each search-result module is further based on:
-
calculating a sub-score for each identified object referenced in the search-result module, wherein the sub-score is based on the relevance of the identified object with respect to the search query input; and summing the sub-scores of the top N identified objects in the search-result module.
-
-
17. The method of claim 1, wherein each search-result module comprises one or more search results corresponding to objects having a particular object-type, the particular object-type being selected from a group consisting of:
- a user, a photo, a post, a webpage, an application, a location, or a user group.
-
18. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
-
receive from a first user of an online social network a search query input comprising one or more n-grams; generate a plurality of query commands by parsing the search query input, wherein each query command comprises one or more query constraints, each query constraint being a request for a particular object-type to be retrieved from a particular vertical, and wherein each query command is customized for one or more respective verticals; search, for each query command of the plurality of query commands, the one or more respective verticals to identify a plurality of objects stored by the vertical that match the respective query command, each vertical storing one or more objects of a particular object-type associated with the online social network; generate a plurality of search-result modules corresponding to the plurality of query commands, respectively, each search-result module of the plurality of search-result modules comprising references to a plurality of the identified objects matching the query command corresponding to the search-result module; classify the search query input, wherein the classification of the search query input is based at least in part on a semantic parsing of the search query input and social-networking information of the first user; score each search-result module of the plurality of search-result modules, wherein scoring the search-result modules comprises, for each search-result module of the plurality of search-result modules; calculating a score for the search-result module based at least in part on; a relevance of the search-result module with respect to the classification of the search query input; and a relevance of each identified object referenced in the search-result module with respect to the search query input; and send each search-result module having a score greater than a threshold score to the first user for display, wherein the search-result modules are displayed in order based on their respective scores.
-
-
19. A system comprising:
- one or more processors; and
a memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to;receive from a first user of an online social network a search query input comprising one or more n-grams; generate a plurality of query commands by parsing the search query input, wherein each query command comprises one or more query constraints, each query constraint being a request for a particular object-type to be retrieved from a particular vertical, and wherein each query command is customized for one or more respective verticals; search, for each query command of the plurality of query commands, the one or more respective verticals to identify a plurality of objects stored by the vertical that match the respective query command, each vertical storing one or more objects of a particular object-type associated with the online social network; generate a plurality of search-result modules corresponding to the plurality of query commands, respectively, each search-result module of the plurality of search-result modules comprising references to a plurality of the identified objects matching the query command corresponding to the search-result module; classify the search query input, wherein the classification of the search query input is based at least in part on a semantic parsing of the search query input and social-networking information of the first user; score each search-result module of the plurality of search-result modules, wherein scoring the search-result modules comprises, for each search-result module of the plurality of search-result modules; calculating a score for the search-result module based at least in part on; a relevance of the search-result module with respect to the classification of the search query input; and a relevance of each identified object referenced in the search-result module with respect to the search query input; and send each search-result module having a score greater than a threshold score to the first user for display, wherein the search-result modules are displayed in order based on their respective scores.
- one or more processors; and
Specification