1. A method comprising: displaying one or more search results from a previous search of a particular database; receiving first input specifying a query of the particular database comprising a first text string comprising one or more terms; processing the query against the particular database by performing a first search of the particular database for the one or more terms; in response to identifying no search results for the query, classifying each of the one or more terms, of the first text string, as a bad term; adding the one or more terms to a first list that is empty before the one or more terms are classified as bad terms; receiving second input that changes the first text string to a second text string; determining whether a particular term in the second text string begins with a term in the first list; in response to determining that the particular term in the second text string begins with a term in the first list, removing the particular term from the second text string; processing the query against the particular database by performing a second search of the particular database for only the second text string without the particular term; in response to identifying no search results based on the second search, incrementing a counter; determining whether the counter is equal to a particular threshold; continuing to display the one or more search results that were displayed from the previous search only if the counter is less than the particular threshold.
1. A method comprising: displaying one or more search results from a previous search of a particular database; receiving first input specifying a query of the particular database comprising a first text string comprising one or more terms; processing the query against the particular database by performing a first search of the particular database for the one or more terms; in response to identifying no search results for the query, classifying each of the one or more terms, of the first text string, as a bad term; adding the one or more terms to a first list that is empty before the one or more terms are classified as bad terms; receiving second input that changes the first text string to a second text string; determining whether a particular term in the second text string begins with a term in the first list; in response to determining that the particular term in the second text string begins with a term in the first list, removing the particular term from the second text string; processing the query against the particular database by performing a second search of the particular database for only the second text string without the particular term; in response to identifying no search results based on the second search, incrementing a counter; determining whether the counter is equal to a particular threshold; continuing to display the one or more search results that were displayed from the previous search only if the counter is less than the particular threshold. 4. The method of claim 1 , further comprising, prior to performing the first search: analyzing the first text string to identify a plurality of search terms of the one or more terms of the first text string; and for each search term of the plurality of search terms, determining, based on one or more criteria, whether to remove one or more characters from said each search term.