1. A method for performing a search of a virtual repository formed from one or more repositories, the method comprising: receiving a string-based search expression; generating an expression tree of nodes based on the string-based search expression, one of the nodes of the expression tree being an attribute node that corresponds to an attribute included in the string-based search expression; and associating metadata with the attribute node in the expression tree, the metadata identifying one or more repositories of the virtual repository that support the attribute represented by that attribute node.