1. An application search system comprising: a data processing module that generates a plurality of canonical application structures each identifying (i) a canonical application, (ii) a plurality of application editions associated with the canonical application, and (iii) respective attributes associated with the plurality of application editions, and generates a plurality of search indexes that collectively index the plurality of canonical application structures based on the respective attributes of each respective canonical application structure, wherein each search index corresponds to a particular application attribute of a plurality of possible application attributes and indexes a subset of the plurality of canonical application structures that identify the particular application attribute; and an application search module that receives a search query from a user, extracts one or more query features from the search query, selects one or more search indexes of the plurality of search indexes based on the one or more query features extracted from the search query and the particular application attributes respectively corresponding to the one or more search indexes, identifies an initial set of canonical application structures using the selected one or more search indexes based on the search query, generates search results based on the initial set of canonical application structures, and provides the search results to the user.