1. A method for a thorough search of a distributed document database, comprising the steps of: receiving a search request including search parameters and a search starting point; adding a document found at the search starting point to a processing list; determining whether a next document in the processing list is a plain text document or a compressed document; if the next document is a compressed document, decompressing the next document to produce a plain text version of the next document; searching the plain text version of the next document according to the search parameters and for references to other documents; appending documents referenced by the next document to the processing list; repeating the determining, decompressing, searching and appending steps until inspection of the processing list is concluded; and returning a list of processed documents which meet the search criteria to a user.