1. A system, comprising: a processor; and a memory coupled to the processor, wherein the memory comprises program instructions executable by the processor to: group users into a plurality of distinct communities according to one or more grouping criteria, such that for each particular one of the communities, members of the particular community share at least one grouping criterion in common, and wherein membership of at least some of the communities does not completely overlap; store indications of membership of each of the communities; receive a query from a member of one or more of the communities, and in response to the query: obtain results of the query; determine one or more of the plurality of communities to associate with the query, wherein the determining comprises comparing the query to queries entered by other members of the one or more of the plurality of communities such that the member from which the query is received is a member of the determined one or more communities, and the determined one or more communities are distinct from others of the plurality of communities; identify other results from only the determined one or more communities, wherein the other results are for at least one other query from at least one other member of the determined one or more communities, and wherein the other results reflect user feedback from the at least one other member of the determined one or more communities; compare the results to the other results from the determined one or more communities to determine a measure of similarity between the results and the other results; and modify the results according to the other results in response to determining that the measure of similarity is above a predetermined threshold, wherein the results are not modified according to the other results if the measure of similarity is not above the predetermined threshold.