1. A method for improving performance of a search mechanism, which incorporates a browser for user interaction, comprising: collecting user information; detecting an event relating to an interaction of the user with the browser; providing the event as input to a state machine, the state machine comprising a plurality of states, each state corresponding to a state of user interaction with the browser and a state transition function, the state transition function mapping a first state and the event to a second state, whereupon the event causes a transition of the state machine from a current state to a new state based upon the event and the state transition function; determining context information based upon the new state of the state machine; determining implicit user feedback data based upon the transition from the current state to the new state, wherein the implicit user feedback data reflects user behavior during a search and includes user behavior while visiting a result list page, user behavior while exploring a hyperlinik on a result list page, user behavior for visiting a result item page or result item ignore behavior; collecting explicit user feedback data by: identifying at least one non-selected search result that is generated by the search mechanism as part of said search but that is not selected by the user; and submitting one or more questions to the user regarding the non-selected search result and receiving explicit user feedback data to said questions, said questions prompting the user for explicit reasons why a non-selected search result failed to correspond to a search request; utilizing the implicit user feedback data and the explicit user feedback data in light of the context information to identify a problem with the search mechanism; and correcting the problem to improve performance of the search mechanism.