1. A method implemented on a machine having at least one processor, storage, and a communication platform, comprising: performing by the at least one processor the steps of: receiving a search query from a user; identifying a plurality of network contents in response to the search query; determining a plurality of ranking criteria for the search query, wherein the plurality of ranking criteria includes at least one criterion different from a criterion of relevance; presenting the plurality of ranking criteria to the user so that the user can selectively assign one or more weights to individual ones of the plurality of ranking criteria; receiving from the user the one or more weights assigned by the user to the individual ones of the plurality of ranking criteria; ranking the network contents identified in response to the search query based on the plurality of ranking criteria and the one or more weights assigned by the user; and presenting the network contents to the user in an order according to their ranking.