1. A method comprising: accessing, by a processor, a plurality of structured data, each datum of the plurality of structured data comprising: a first subset of characters, the first subset of characters comprising clear-text characters; and a second subset of characters, the second subset of characters comprising encrypted characters, the encrypted characters generated by applying an encryption function to unencrypted characters, the second subset of characters further comprising metadata describing the encryption function such that a length of the second subset of characters comprising the metadata is equal to or less than a length of the unencrypted characters; searching, by the processor, the plurality of structured data with a query term received from a requesting entity by: identifying a first result set, each result in the first result set comprising a datum of the plurality of structured data with a first subset of characters at least partially matching a first portion of the query term; and identifying a second result set, each result in the second result set comprising a result of the first result set with a second subset of characters at least partially matching a second portion of the query term; and presenting the second result set of data to the requesting entity.