Ranking search results by social relevancy
View Patent ↗In one embodiment, a search request is received from a first user, the request including the first user's location. A set of search results and their corresponding geographic locations are determined in response to the search request. For each search result, a weighted rating value is determined based on user ratings provided by one or more second users, an affiliation coefficient between the first user and each second user providing a user rating, and a proximity coefficient based on the distance between the first user's location and the geographic location of the search result. The search results are ranked by their respective weighted rating values and sent to the first user.
1. A method comprising:
by a computing device, receiving a search request from a first user, wherein the search request comprises a location of the first user;
by the computing device, determining one or more search results in response to the search request, each of the one or more search results having a corresponding geographic location;
by the computing device, for each search result, determining a weighted average rating value by:
determining one or more rating values associated with the search result, the one or more rating values being associated with one or more second users, respectively;
for each of the rating values, determining an adjusted rating value for the search result by multiplying each of the rating values associated with a second user relating to the search result by an affiliation coefficient determined between the first user and the second user;
determining an average of the adjusted rating values associated with the one or more second users relating to the search result; and
calculating the weighted average rating value for the search result by multiplying the average of the adjusted rating values associated with the one or more second users by a proximity coefficient that is indicative of a geographic distance between the geographic location of the search result and the location of the first user; and
by the computing device, sending the one or more search results as ranked by their weighted rating value for presentation to the first user.
2. The method of claim 1 , wherein the affiliation coefficient is based on a determined affinity between the first user and the associated second user.
3. The method of claim 2 , wherein if no affinity has been determined between the first user and the associated second user, a predetermined affinity coefficient is used.
4. The method of claim 1 , wherein:
the search request further comprises a character string; and
the determining one or more search results comprises comparing the character string with names of one or more places within a threshold distance from the location of the first user.
5. The method of claim 4 , wherein comparing the character string with the names comprises attempting to partially or completely match the character string to the name.
6. The method of claim 4 , wherein:
the character string is an empty string; and
the search request comprises a current location of the first user and an identity of the first user.
7. The method of claim 1 , wherein the one or more search results are associated with a location database comprising the corresponding geographic location of each of the one or more search results.
8. The method of claim 1 , wherein the proximity coefficient comprises one of a plurality of predetermined scores between a maximum value and a minimum value, wherein each of the predetermined scores corresponds to a range of geographic distance, the maximum value corresponding to a range of geographic distance closest to the location of the first user, and the minimum value corresponding to a range of geographic distance that is more than a predetermined distance away from the location of the first user.
9. The method of claim 1 , wherein:
the first user and each associated second user are users of a social-networking system;
the social-networking system comprises a graph that comprises a plurality of nodes and edges connecting the nodes, wherein:
a first node corresponds to the first user;
one or more second nodes corresponds to one or more second users, respectively; and
the first node is connected to each second node by at least one edge.
10. The method of claim 9 , wherein the affiliation coefficient comprises one of a plurality of predetermined scores, wherein each of the predetermined scores corresponds to a type of edge connecting the first node and one of the second nodes.
11. The method of claim 1 , wherein the determining the weighted rating value further comprises weighing each of the rating values by an age coefficient, the age coefficient corresponding to an age of the rating value.
12. The method of claim 11 , wherein determining the weighted rating value comprises excluding rating values with corresponding ages greater than a predetermined threshold age.
13. The method of claim 1 , wherein the search request is received from a mobile computing device associated with the first user, and the location of the first user is determined by the location of the mobile computing device.
14. 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 executing the instructions to:
receive a search request from a first user, wherein the search request comprises a location of the first user;
determine one or more search results in response to the search request, each of the one or more search results having a corresponding geographic location;
for each search result, determine a weighted average rating value by:
determining one or more rating values associated with the search result, the one or more rating values being associated with one or more second users, respectively;
for each of the rating values, determining an adjusted rating value for the search result by multiplying each of the rating values associated with a second user relating to the search result by an affiliation coefficient determined between the first user and the second user;
determining an average of the adjusted rating values associated with the one or more second users relating to the search result; and
calculating the weighted average rating value for the search result by multiplying the average of the adjusted rating values associated with the one or more second users by a proximity coefficient that is indicative of a geographic distance between the geographic location of the search result and the location of the first user; and
send the one or more search results as ranked by their weighted rating value for presentation to the first user.
15. The system of claim 14 , wherein the affiliation coefficient is based on a determined affinity between the first user and the associated second user.
16. The system of claim 15 , wherein if no affinity has been determined between the first user and the associated second user, a predetermined affinity coefficient is used.
17. The system of claim 14 , wherein:
the search request further comprises a character string; and
the determining one or more search results comprises comparing the character string with names of one or more places within a threshold distance from the location of the first user.
18. The system of claim 14 , wherein comparing the character string with the names comprises attempting to partially or completely match the character string to the name.
19. The system of claim 14 , wherein:
the character string is an empty string; and
the search request comprises a current location of the first user and an identity of the first user.
20. One or more computer-readable non-transitory storage media embodying software operable when executed to:
receive a search request from a first user, wherein the search request comprises a location of the first user;
determine one or more search results in response to the search request, each of the one or more search results having a corresponding geographic location;
for each search result, determine a weighted average rating value by:
determining one or more rating values associated with the search result, the one or more rating values being associated with one or more second users, respectively;
for each of the rating values, determining an adjusted rating value for the search result by multiplying each of the rating values associated with a second user relating to the search result by an affiliation coefficient determined between the first user and the second user;
determining an average of the adjusted rating values associated with the one or more second users relating to the search result; and
calculating the weighted average rating value for the search result by multiplying the average of the adjusted rating values associated with the one or more second users by a proximity coefficient that is indicative of a geographic distance between the geographic location of the search result and the location of the first user; and
send the one or more search results as ranked by their weighted rating value for presentation to the first user.