1. A computer-implemented method for searching for documents, comprising: enabling a user to select a source document; receiving information for the source document, the information including at least one topic and a weight for each topic, where the topic relates to content of the source document, and the weight represents how strongly the topic is associated with the source document; accessing an index, stored in a memory, containing a plurality of topics and references to documents, each entry in the index storing a topic of the plurality of topics with a list of each of the documents containing the topic; selecting a set of documents by comparing the at least one topic of the source document to the entries of the index to obtain each list in the index that is stored with one or more entries in the index matching the at least one topic of the source document, each document of the set of documents having a respective document signature formed of at least one topic relating to content of the document and a weight for each topic; generating similarity scores based on the weight of a topic in the source document and a weight of the same topic in each document within the set of documents having that topic as indicated by the document signature; selecting a subset of documents from the set of documents based on the similarity scores; and outputting an identity of the subset of documents for display to the user.