I'd consider a field like "associated_with_album", and a field that identifies the kind of record this is "track or album".
Then you can form a query like -associated_with_album:true (where '-' is the Lucene or NOT). And then group by kind to get separate groups of albums and tracks. Hope this helps Erick On Thu, Apr 5, 2012 at 9:00 PM, N. Tucker <ntucker-ml-solr-us...@august20th.com> wrote: > Apologies if this is a very straightforward schema design problem that > should be fairly obvious, but I'm not seeing a good way to do it. > Let's say I have an index that wants to model Albums and Tracks, and > they all have arbitrary tags attached to them (represented by > multivalue string type fields). Tracks also have an album id field > which can be used to associate them with an album. I'd like to > perform a query which shows both Track and Album results, but > suppresses Tracks that are associated with Albums in the result set. > > I am tempted to use a "join" here, but I have reservations because it > is my understanding that joins cannot work across shards, and I'm not > sure it's a good idea to limit myself in that way if possible. Any > suggestions? Is there a standard solution to this type of problem > where you've got hierarchical items and you don't want children shown > in the same result as the parent?