8. The computer program product according to claim 7 , wherein the generating the encrypted indexes and the unencrypted index metadata is done offline prior to receiving the query.
7. A computer program product, embodied in a non-transitory computer-readable medium, storing computer-readable instructions which, when processed by a first processor, causes the first processor to implement a method of generating results of a query to an encrypted database stored on a host, the method comprising: generating encrypted indexes from the encrypted database, each encrypted 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 unencrypted index metadata associated with each encrypted index, the unencrypted index metadata indicating the range of data for each of the at least one field of the associated encrypted index; decomposing the query into a sub-query associated with each field in the query and searching the unencrypted index metadata with each sub-query to obtain sub-query indexes as the sub-query results; determining a subspace of search within the encrypted database based on the sub-query results obtained through the unencrypted index metadata; and searching the subspace of the encrypted database defined by the sub-query indexes to generate the results of the query.