1. A computer-implemented method of searching a database embodied in a computer-readable storage medium, said database having a plurality of information objects, comprising: at a server computer coupled to the database and a client computer over a network: receiving from the client computer a first query with one or more keywords; determining that the one or more keywords are members of a predetermined master keyword list, wherein each member of the master keyword list has a relevance rating, wherein the relevance rating represents a degree of relevance between a keyword and an information object, wherein each of the one or more keywords is associated with at least a friend keyword in the master keyword list, wherein each keyword-friend pair in the master keyword list has an association score, wherein the association score represents a degree of association between a keyword and a friend keyword; retrieving friend keywords associated with the one or more keywords from a keyword-friend table stored in the database; automatically expanding the first query to a second query to include the one or more keywords and their friend keywords having association scores that meet or exceed a set value, wherein the second query includes at least one keyword that is not in the first query; searching the database using the second query; identifying from the plurality of information objects in the database a set of information objects that correspond to the one or more keywords and their friend keywords in the second query; and sending the set of information objects or a derivative thereof to the client computer.