Google lets you create
custom search engines, by defining a list of sites and web pages that are experts on a topic. For example, you love poetry and you know a great deal of sites that aggregate poetry. Compile a list of those sites (you can also use URL patterns to better describe the pages) and create a poetry
search engine.
For the moment, Google doesn't aggregate all the custom
search engines (I made
a simple tool for that), but here's an idea that could improve
search results. Google likes to use
OneBox results to glue information from different sources. A OneBox for custom searches could match your query with the most popular custom
search engines based on their description, their most frequent queries and their list of sites. Then it could show the top results from these
search engines for that query.

This concept of custom
search engines might replace web directories, that can't scale because of the exponentially growth of the web pages and the limited number of editors. With custom
search engines, anyone could become an editor for his/her topics of interest.
Here's an interesting description of
Google Directory, a Google product that searches the sites listed by Open Directory Project, which is now almost obsolete:
"Google's directory engine also lets you
search within a category once you've decided on the specific subsection of the web that interests you. In this way, you'll get only responses that fall within that category. For example, you may want to
search for teams named
Cougars within the college basketball section of the directory only, instead of across the entire web."
Instead of creating hierarchical categories, Google could use the labels you can attach to each site.
</img>
</img>
</img>