1. An apparatus for searching for information within a distributed data processing system, the apparatus comprising a processor coupled to a memory, wherein the memory comprises instructions that are operable by the processor for performing steps of: obtaining a list of one or more keywords from a search query entered by a user of a first peer node; sending a rating request message comprising the list of one more keywords to a server; receiving a rating response message comprising a list of node identifiers from the server, wherein each listed node identifier identifies a node within a peer-to-peer network from which a file has previously been retrieved in response to a peer-to-peer search that used a keyword in the list of one or more keywords; initiating a peer-to-peer search from the first peer node by sending a search query message to a plurality of peer nodes, wherein the search query message comprises the search query, and wherein the plurality of peer nodes includes at least one peer node identified in the list of node identifiers from the server; receiving a result of the peer-to-peer search at the first peer node; and storing the result of the peer-to-peer search.