Given a Lucene search query like: +(letter:A letter:B letter:C) +(style:Capital), how can I tell which of the three letters actually matched any given document?
+(letter:A letter:B letter:C) +(style:Capital)
You could use a cached filter for each of the individual terms, and quickly check each doc id against their BitSets.