1. A method of providing search results and advertisements to a user, the method comprising: maintaining a user profile associated with a user; receiving a search request from the user; searching at least one database based on the search request and the user profile to produce at least one search result; selecting at least one advertisement from an advertisement database based on the user profile and the search request; providing the at least one search result and the at least one advertisement to the user; receiving search refinement input from the user; producing at least one modified search result based on at least the search refinement input; updating the at least one advertisement selected from the advertisement database based on the user profile and the search refinement input; and providing at least one of the at least one modified search result and the updated at least one advertisement to the user.