1. A method, implemented on at least one machine each of which has at least one processor, storage, and a communication platform connected to a network for providing query suggestions, the method comprising: receiving, by the at least one processor, a prefix of a first query from a user device during a first session; obtaining, by the at least one processor, at least a second query that was previously received from the user device during the first session; obtaining, by the at least one processor, a third query having a high co-occurrence with the second query, wherein the third query includes the prefix of the first query, and wherein the third query was previously received from the user device during a second session different than the first session; providing, by the at least one processor, the third query as a query suggestion to the user device in response to the prefix of the first query being received; obtaining a fourth query based on the prefix without considering the second query, wherein the query suggestion includes the fourth query; receiving a plurality of queries from the user device during the first session, wherein time intervals between each of the plurality of queries are below a threshold; and recording each of the plurality of queries received during the first session, wherein the third query and the fourth query are blended with other queries in one or more additional query suggestions, the one or more additional query suggestions being ranked based on a respective relevance score of the third query, the fourth query, and the other queries.