Graph search: Facebook as a database

Today, Facebook introduced a new feature called “graph search”. This blog post explains what it is. It is based on the Verge’s liveblog of the event.

The three pillars of Facebook

With the new feature, Facebook will have three pillars:
  • News feed: what's going on with people around me?
  • Timeline: tell me something about this person
  • Graph search: letting people examine any aspect of the data stored in Facebook that they want.

Graph search

In principle, graph search is like a “Google for Facebook”. But where Google searches huge amounts of text, Facebook will search its “graph” – entities and their connections (X knows Y, X likes Y, etc.). Examples of searches you can perform via graph search:
  • “Music liked by people who like Obama”
  • “Friends of friends who are single men in San Francisco”
  • “Languages my friends speak”
  • “TV shows liked by doctors”
  • “Movies my friends like”
  • “Photos of my friends taken in Paris”
  • “Bars in Dublin liked by people who live in Dublin”
  • “Restaurants in San Francisco liked by Culinary Institute of America graduates”
  • “People who have been product managers and who have been founders”
You can see that there is a wide variety of possibilities. Facebook has recently allowed people to rate restaurants and other locations they have visited, which means that Facebook will compete with services such as Yelp and Zagat (which has recently been bought by Google).

The user interface works as follows: Simply by giving a special kind of page a title similar to the examples above, you fill it with appropriate content. While typing in your question, you’ll be supported by a graphical user interface (with filters etc.), to get an impression of what is possible.

Graph-based search lets you be quite clever with questions and produces precise answers, but the amount of data that is searched is much more limited than during a Google search. Facebook initially searches people, photos, places and interests. They will later add the content of posts and all relationships in the Open Graph standard. First, you’ll only be able to use English to perform queries. Other languages will be supported over time. If Facebook doesn’t find anything in its graph, it calls on Microsoft’s Bing search engine to produce traditional results. For example, if you ask for the weather in California, you get an answer from Bing, not from Facebook.

Wolfram Alpha is another search engine that in many ways works similarly to Facebook’s graph search. Try it out if you want to see how a search engine works that doesn’t rely on full-text search (such as most of Google).


Apart from the challenges of letting users enter natural language, the sheer amount of data on Facebook makes search difficult: There are about a trillion connections on Facebook. It took the company more than a year to make them searchable.

Privacy is another challenge. With graph search, you can only search what is already accessible to you. Zuckerberg mentioned that handling privacy currently takes up 10% of the CPU capacity of all of their data centers.

Next steps

Facebook calls graph search a “beta product”. It will launch to the public “over the next few weeks and months”. First only as part of their web app, later as part of their mobile apps. Quoting Zuckerberg: “We have years and years of work ahead of us.” Other possible feature include voice search, a public API, etc.


Graph search makes Facebook more of a direct competitor to Google. All of a sudden, Facebook is a search engine. And one with completely new applications, you can search for things that you couldn’t previously search for. If Facebook can’t handle a query, it simply passes it on to Bing, which means that you don’t have to go anywhere else. All of that combined makes Facebook a compelling search engine.

Facebook’s graph search is a real-world application of many of the ideas of the Semantic Web. The Semantic Web is, roughly, a graph search where the whole web is the graph (not just what’s stored in Facebook). One of the challenges of the Semantic Web is to get people to contribute data to it. Facebook has that problem mostly covered, as most of its data is already in graph form (as opposed to all the text documents on the open web).