Abstract: Some embodiments include a method for indexing a data item. The method comprises identifying a plurality of characteristics of the data item; for at least one characteristic of the plurality of characteristics of the data item: generating an index based on the at least one characteristic; retrieving, from a data storage, a data structure corresponding to the index; storing a selected value at a location in the data structure, wherein the location in the data structure corresponds to the data item; and storing the data structure back to the data storage. Some embodiments include a method for searching a data collection comprising a plurality of data items based on the data structure.