||The Web is a wonderful resource with its immense quantity of information. However, how to find useful information from such a huge resource is a major concern of all users. The goal of web search is to find the set of documents on the Web that is relevant to a user's query. This goal is difficult to achieve because relevance is a subjective concept, varying for different users, and the Web, as a document collection, is extremely large. Nevertheless, current web search services make it possible to access the richness of the Web. In this paper, we classify current web search services into three main categories, search engines, meta-search engines and dynamic search engines, and survey techniques that have been proposed to tackle several underlying challenges for building such search services. We also point out some possible future research directions that may improve the performance of current web search services.