1. A method of ranking query results, comprising: receiving queries from users at a computing device comprising a search engine configured to provide query results responsive to the queries from the users; creating a bipartite graph of queries versus documents selected from query results responsive to the queries of the bipartite graph; analyzing frequencies of the queries of the bipartite graph, wherein a frequency of a particular query is based on number of times the particular query is issued from the users to the search engine; determining an effectiveness of each of the queries of the bipartite graph, wherein an effectiveness of a particular query is determined by dividing number of times the particular query resulted in the users making a selection of any document from the query results provided by the search engine responsive to the particular query by the frequency of the particular query; and weighting a plurality of edges in the bipartite graph, wherein a weight of an edge representing a transition probability from a particular query to a particular document in the bipartite graph is determined by multiplying a frequency of selection of the particular document for the particular query by the effectiveness of the particular query.