As part of the recent Reddit AMA, Rasmussen said:
At the core of the system sits a Context-Free Grammar describing all the queries the system can understand. The grammar in general contains many different ways of expressing the same question.
As a user types in the search field, a Parser attempts to find the queries from the grammar that most closely matches what the user has typed, and displays those as suggestions in a drop-down below the search field.
Part of the parsing involves searching for people and entities. For example, if I search for ‘photos of jane doe’ the parser needs to figure out which Jane Doe I am looking for. When in doubt, we tend of course to pick the Jane who has the most friends in common with me, went to my school, works for my employer, etc. This part of the parser is essentially Facebook’s existing ‘typeahead’ search system.
When the user clicks one of the suggested queries, we proceed to resolve the corresponding semantic (see my answer). There are three steps to this part: 1) we retrive (sic) candidate answers from an inverted index (http://en.wikipedia.org/wiki/Inverted_index), then we 2) filter out anything the searcher does not have access to, and finally we 3) order them according to a great many criteria in the way we think is most interesting to the searcher.
Lastly, we display the results. You’ll note that we take great care to list by each result why we think they are a good result. For example, of you ask for ‘Friends of Facebook employees’ we might place a snippet of text like ‘Friends with Mark Zuckerberg and other Facebook employees’ next to a result. ‘Other Facebook Employees’ is typically a link that we issue a new query for all the Facebook employees who are friends with that given result. (I looooove these snippets and consider them the unsung heroes of Graph Search 🙂
As many a Facebook member reading this blog now may remember, you used to be able to do things like sort your friends by current city within about six clicks from your profile page. The fact that this functionality has been taken away (at least for me since I haven’t been put on Graph Search BETA yet) and added to a monetization strategy for Facebook, is now the future of the platform, marketers have to take note. Whether users will stick around (or bother to learning new privacy settings) after more and more of this type of thing happens is exactly what may guide the feasibility of long term engagement with this platform.
The other mechanic and trick that Facebook will have to pull off for success is convincing the world wide web that a currency of “Likes” will actually lead to something measurable on markeitng ROI.
I am not holding my breath personally…
Editors Note: For those of you unsure what the heck this graph search is, we have a few articles to make it clearer for you: