1. A hardware module for an application search system, the hardware module 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 search indexes including the plurality of canonical application structures and the respective attributes; and an application search module that receives a search query from a user, selects at least one of the search indexes based on the search query and the respective attributes, identifies an initial set of canonical applications using the selected search index based on the search query, generates search results based on the initial set of canonical applications, and provides the search results to the user.