A split-server architecture for processing a search query provided by a user, and identifying and retrieving documents from a database corresponding to the search query. A session server is provided for receiving the search query from the user. The session server has at least a first processor coupled to the user over a communications channel. A query server is coupled to the session server. The query server has at least a second processor coupled to a first database having records representative of the documents to be searched. The query server includes the ability to receive the search query from the session server, the ability to search the first database to identify documents responsive to the search query; and the ability to send search results information representative of the documents identified by the first database search from the query server to the session server. The session server includes the ability to send the search query to the query server, the ability to receive the search results information from the query server, the ability to send a search results list representative of the search results information across the communications channel to the user, the ability to receive a document retrieval request transmitted from the user over the communications channel, the ability to retrieve a document in response to the retrieval request and transmitting a file representative of the document to the user over the communications channel, and the ability to increment an accounting record on an accounting database coupled to the session server, the accounting record representing a number of retrievals of the document by the session server.