1. A system for indexing structured data, comprising: a communication interface configured receive first structured data; a processor configured to: determine a first plurality of subunits in the first structured data; for a first subunit included in the first structured data, determine a first mapping between the first subunit and a first dictionary entry; for a second subunit included in the first structured data, determine a second mapping between the second subunit and a second dictionary entry; aggregate at least the first and second dictionary entries into an aggregation, wherein the aggregation maintains a structure of the first plurality of subunits in the first structured data; cause the aggregation to be stored in an index along with other aggregations representing other structured data; receive a search query of second structured data; determine a search query aggregation based on a mapping between a second plurality of subunits of the second structured data of the search query and dictionary entries, wherein the search query aggregation maintains a structure of the second plurality of subunits in the second structured data; and determine a candidate set of aggregations in the index for the search query aggregation, wherein the candidate set of aggregations represent structured data that is determined to satisfy the search query of second structured data; and a memory configured to provide the processor with instructions.