17. A system, comprising: a network of computers comprising a client computer; a database embodied in a computer-readable storage medium and storing a plurality of information objects; a server computer coupled to the database and the client computer over the network, wherein the server computer is programmed to: determine a master keyword list relevant to the plurality of information objects in the database; arrange the master keyword list into one or more hierarchies of keywords, 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 keyword in the master keyword list 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; receive from the client computer a first query with one or more keywords; determine that the one or more keywords are members of the master keyword list; retrieve friend keywords associated with the one or more keywords from a keyword-friend table stored in the database; automatically expand 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; search the database using the second query; identify 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 send the set of information objects or a derivative thereof to the client computer.
17. A system, comprising: a network of computers comprising a client computer; a database embodied in a computer-readable storage medium and storing a plurality of information objects; a server computer coupled to the database and the client computer over the network, wherein the server computer is programmed to: determine a master keyword list relevant to the plurality of information objects in the database; arrange the master keyword list into one or more hierarchies of keywords, 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 keyword in the master keyword list 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; receive from the client computer a first query with one or more keywords; determine that the one or more keywords are members of the master keyword list; retrieve friend keywords associated with the one or more keywords from a keyword-friend table stored in the database; automatically expand 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; search the database using the second query; identify 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 send the set of information objects or a derivative thereof to the client computer. 18. The system of claim 17 , wherein the server computer is further programmed to sort the set of information objects that correspond to the second query in order of relevance based on the first query.