The index has a "type" field: "A" for archived objects and "C" for collectibles. All the original objects are indexed in batch fashion as type "A". Users collect objects and tags/annotates them. When a user collects an object, a document of type "C" is indexed with the original objects unique identifier (a URI), the username, tags, and annotation. My custom facet cache differs from the built-in facets in that it builds a cross-reference cache from the "C" types to the "A" types (a JOIN, heh).
I would LOVE to see a JOIN in SOLR. I have an index of artists, albums, and songs. The artists have lots of metadata and the songs very little. I'd love to be able to search for songs using the artist metadata. Right now, I have to add all the metadata for each artist and album to each song. this would be great! ryan