1. A non-transitory computer readable medium storing executable instructions to: store a plurality of reports in a repository, wherein each report includes information automatically retrieved from a data source, where the information is structured in accordance with a report schema that specifies the form in which the information should be presented, wherein the report schema defines separate report elements as structural components found inside a report; extract, from each report of the plurality of reports, report element instance context metadata and report element instance context data to define indexed fields, wherein the report element instance context metadata specifies metadata that affects evaluation of a report element instance including context comprising a combination of parameters and the report element instance context data specifies data that affects evaluation of the report element instance; receive a search query; apply the search query against the indexed fields; and compile search query results to produce a list of relevant report element instances, wherein each report element instance is a single occurrence of a report element in a report and reports are ranked based on a composite ranking factor, the composite ranking factor being compiled from two or more ranking methods including a method based on a report element instance's level of hierarchy in a report or sub-report.