1. A method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network, for providing query term suggestions, the method comprising: receiving, in a first search session, a prefix of a query term from a user; obtaining two or more query terms that have been previously entered by the user within the first search session; obtaining one or more candidate query terms based on the prefix; determining, for each of the candidate query terms, a similarity between the candidate query term and the two or more query terms by: obtaining, for the candidate query term, a first feature vector having one or more features associated with the candidate query term; obtaining, for each of the two or more query terms, a second feature vector having one or more features associated with the query term; determining a similarity between the first feature vector and each second feature vector; and aggregating the similarities between the candidate query term and the two or more query terms to generate an aggregated similarity indicative of a degree of similarity between the candidate query term and the two or more query terms; ranking the one or more candidate query terms based, at least partially, on the aggregated similarity associated with each candidate query term; and providing the one or more candidate query terms as query suggestions to the user based on the rankings of the candidate query terms.