1. A method comprising: receiving a query text string representing a request for information from a user; obtaining candidate information data records representing candidate information from a database stored on a computer readable medium, each of the candidate information data records comprising a record text string; computing a text matching score for each of the candidate information data records, wherein the text matching score indicates a degree of match between the query text string and the record text string; computing a ranking score from a usage pattern weight of the candidate information to the text matching score for each of the candidate information data records, wherein the usage pattern weight represents a frequency of prior demand for the candidate information; and ranking the candidate information based on the ranking scores.