1. A method of generating results for a query to an encrypted database stored on a host, the method comprising: generating, with a first processor, indexes from the encrypted database, each index identifying records of the encrypted database associated with a range of data for at least one field stored in the records of the encrypted database; generating, with the first processor, index metadata associated with each index, the index metadata indicating the range of data identified by the associated index; generating, with a second processor, a sub-query from the query for each field associated with the query; determining, with the first processor and the second processor, a subspace of search within the encrypted database based on sub-query results obtained through the index metadata; and searching, with the first processor, the subspace of the encrypted database to generate the results of the query.