A method, system, and computer program product for performing searching
that generates improved queries, retrieves meaningful and relevant
information, and presents the retrieved information to the user in a
useful and comprehensive manner is described. The method of searching
comprises the steps of: receiving from a user a search query requesting
information, retrieving at least one recommendation relating to the
search query, generating an expanded query based on the received query,
performing a search using the expanded query to retrieve documents, and
generating themes relating to the retrieved documents. The at least one
recommendation relating to the search query is retrieved from a
recommendation database. The recommendation database is generated by
performing the steps of: performing data mining using users search query
logs, user search patterns, and user profile information to generate a
plurality of recommendations relating to search query strings, generating
a data structure including the recommendations relating to search query
strings, and generating a text index based on information in the data
structure.