1. A method of responding to a search query requesting relevant software applications from a database of software applications, the method comprising: receiving, at a server, the search query from an electronic device of a user, the search query including one or more terms; analyzing the one or more terms to assign a first search category to the search query, the first search category being selected from a plurality of potential categories, wherein the potential categories include a navigational category and a functional category; determining a search technique based on the first search category, the navigational category being searched based on text associated with the software applications in the database, and the functional category being searched based on a function of the software application in the database and wherein the search technique determines whether a first search is performed or a second search is performed; using the determined search technique to search, at the server, the database for one or more relevant software applications based on the search query; and sending, to the electronic device, a list of the one or more relevant software applications; wherein analyzing the one or more terms comprises identifying a set of previous search queries from other users including the term or an equivalent term; and identifying, for each search query in the set of previous search queries, an application selected or downloaded by a respective other user subsequent to receiving results from the previous search query; and analyzing a distribution over the selected or downloaded applications; and wherein analyzing the distribution includes: determining a statistical value of the distribution; and comparing the statistical value to a threshold, wherein the functional category is assigned to the search query when the statistical value exceeds the threshold.