1. A method comprising: receiving a query directed to a search; analyzing the query to select a characteristic of the query that limits the number of records that the query can retrieve from a database; determining whether the selected query characteristic complies with a search criterion of a plurality of search criteria, each of the plurality of search criteria corresponding to a predefined search index, each predefined search index being drawn from a database and containing identifiers for records of items in the database; selecting a predefined search index corresponding to the selected query characteristic; applying the search criterion for the selected query characteristic to the selected predefined search index; selecting items subject to a collection limit based on applying the search criterion to the selected predefined search index, the collection limit limiting the total number of items that are selected; post-filtering the selected items against the database using search criteria of the received query other than the search criterion of the selected query characteristic; and returning a result set for the query, the result set including only items returned from the post-filtering.