1. A computer-implemented method comprising: receiving during a search session a first search query comprising a first set of search terms, each search term in the first set having a respective first ordinal position, each first ordinal position defining a position of a respective search term in the first set relative to other search terms in the first set; receiving during the search session and after receipt of the first search query a subsequent search query comprising a second set of search terms, each term in the second set having a respective second ordinal position, each second ordinal position defining a position of a respective search term in the second set relative to other search terms in the second set; determining that the second set of search terms in the subsequent search query includes differing search terms, each of the differing search terms being a search term that is not included in the first set of search terms in the first search query; identifying additional search terms from the second set of search terms in the subsequent search query, each additional search term being a differing term and having a second ordinal position in the second set that is greater than any first ordinal position of any search term in the first set of search terms in the first search query; and performing, by one or more data processors, an n-gram analysis on the additional search terms separately from an n-gram analysis on common terms between the first and subsequent search queries, each common term being a search term that is included in both the first set of search terms in the first search query and the second set of search terms in the subsequent search query and has a first ordinal position in the first set that matches that of a second ordinal position in the second set.