21. A computer storage medium encoded with a computer program, the program comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising: receiving a plurality of search results responsive to a query, wherein the query includes one or more search keywords, and wherein the plurality of search results have an associated order, where the particular order is determined using a ranking criteria; processing each search result in the plurality of search results according to the order for the plurality of search results to generate a final group of search results, the final group of search results including a plurality of final search results from the plurality of search results, the processing including, adding a first search result in the plurality of search results to the final group of search results, wherein the first search result is first in the order for the plurality of search results, and for each other search result of the plurality of search results: determining whether a first document corresponding to the search result is a query-specific duplicate of a second document corresponding to any of the search results in the final group of search results, and if the first document corresponding to the search result is not a query-specific duplicate of the second document corresponding to any of the remaining search results in the final group of search results, adding the search result to the final set of search results before processing any other search result following the search result in the order, and otherwise not adding the search result to the final set of search results; and providing the final group of search results.
37. The computer storage medium of claim 21 , wherein the order of the plurality of search results is based on a degree of match, for each search result, between the search keywords and words in a document corresponding to the search result.