An apparatus, comprising: one or more term producers operative to access one or more data objects of a plurality of data objects wherein each data object represents an item of digital information stored or embodied in a data file, database or record, and wherein each data object comprises a plurality of data object attributes; and parse the accessed data objects to create one or more index entries for the accessed data objects, wherein the term producer is operative to take a data object as input and to output a set of document identifier-term pairs as index entries for indexing the inputted data object in a search index; wherein the apparatus is operative to choose a term producer type or a term producer behavior based on a type of the accessed data objects; wherein the term producer creates index entries based on the type of the accessed data object; the search index stored in one or more memory devices, and comprising a plurality of index entries, each entry comprising a term and a document identifier; wherein at least one of the index entries comprises a document identifier and a composite term, the composite term comprising two or more data object attributes; wherein each of the document identifiers correspond to a data object of the plurality of data objects; and one or more index servers each operative to: access a query comprising one or more attribute values; search the search index against the one or more attribute values to identify one or more data objects of the plurality of data objects that match the query; and return document identifiers corresponding to the one or more identified data objects that match the query. one or more term producers operative to access one or more data objects of a plurality of data objects wherein each data object represents an item of digital information stored or embodied in a data file, database or record, and wherein each data object comprises a plurality of data object attributes; and parse the accessed data objects to create one or more index entries for the accessed data objects, wherein the term producer is operative to take a data object as input and to output a set of document identifier-term pairs as index entries for indexing the inputted data object in a search index; wherein the apparatus is operative to choose a term producer type or a term producer behavior based on a type of the accessed data objects; wherein the term producer creates index entries based on the type of the accessed data object; the search index stored in one or more memory devices, and comprising a plurality of index entries, each entry comprising a term and a document identifier; wherein at least one of the index entries comprises a document identifier and a composite term, the composite term comprising two or more data object attributes; wherein each of the document identifiers correspond to a data object of the plurality of data objects; and one or more index servers each operative to: access a query comprising one or more attribute values; search the search index against the one or more attribute values to identify one or more data objects of the plurality of data objects that match the query; and return document identifiers corresponding to the one or more identified data objects that match the query. access a query comprising one or more attribute values; search the search index against the one or more attribute values to identify one or more data objects of the plurality of data objects that match the query; and return document identifiers corresponding to the one or more identified data objects that match the query.