An apparatus interfacing with a user interface and a search engine storing a plurality of documents, the apparatus, the user interface and the search engine forming a system, wherein each of the plurality of documents is associated with at least one collection of documents based on a common document format, the apparatus comprising: a memory device that stores a set of instructions; and at least one processor device configured to execute the set of instructions to: receive, via the user interface, a first search query comprising a text string; responsive to receiving the first search query, initialize a first query object based on the text string, wherein the first query object is an instance of an AbstractQuery datatype that is used to identify a particular set of data and a particular instance represents a specific set of documents; translate the first query object to match the formatting of the search engine, the translated first query object capable of searching a plurality of collections of documents; receive aggregated query results from the search engine based on the translated first query object; reformat the aggregated query results based on respective configuration files of the collections; and using the first query object as a universal token to reference the aggregated query results, wherein the universal token is passed between different processes of the system such that rather than exchanging a list of document numbers or documents themselves, the system transfers the first query object referencing a collection identifier to identify a particular set of documents. a memory device that stores a set of instructions; and at least one processor device configured to execute the set of instructions to: receive, via the user interface, a first search query comprising a text string; responsive to receiving the first search query, initialize a first query object based on the text string, wherein the first query object is an instance of an AbstractQuery datatype that is used to identify a particular set of data and a particular instance represents a specific set of documents; translate the first query object to match the formatting of the search engine, the translated first query object capable of searching a plurality of collections of documents; receive aggregated query results from the search engine based on the translated first query object; reformat the aggregated query results based on respective configuration files of the collections; and using the first query object as a universal token to reference the aggregated query results, wherein the universal token is passed between different processes of the system such that rather than exchanging a list of document numbers or documents themselves, the system transfers the first query object referencing a collection identifier to identify a particular set of documents. receive, via the user interface, a first search query comprising a text string; responsive to receiving the first search query, initialize a first query object based on the text string, wherein the first query object is an instance of an AbstractQuery datatype that is used to identify a particular set of data and a particular instance represents a specific set of documents; translate the first query object to match the formatting of the search engine, the translated first query object capable of searching a plurality of collections of documents; receive aggregated query results from the search engine based on the translated first query object; reformat the aggregated query results based on respective configuration files of the collections; and using the first query object as a universal token to reference the aggregated query results, wherein the universal token is passed between different processes of the system such that rather than exchanging a list of document numbers or documents themselves, the system transfers the first query object referencing a collection identifier to identify a particular set of documents.