1. A method of updating a query state according to a query received from a user of a device having a processor, the method comprising: executing on the processor instructions configured to: receive a query; generate a query state based on the received query; receive a follow-up query; parse the follow-up query to identify at least zero query terms; for each query state modification in a query state modification set, calculate a query state modification probability intended by the user for the follow-up query; using the query state modification probabilities, identify at least two candidate query state modifications for modifying the query state; among the at least two candidate query state modifications, identify a selected query state modification having a highest associated query state modification probability; modify the query state according to the selected query state modification; combine the follow-up query with the modified query state to create a modified follow-up query; and provide search results based on the modified follow-up query.