There currently isn't a FAST or MEMORY EFFICIENT method. I could add one in the future, though it would require you to forego certain optimizations.
The best way to do this currently is simply to create sets of the documents containing each keyword, and intersect them with the set of documents in the results:
s = myindex.searcher()
# Run the query
results = s.search(myquery)
# Get a set of document numbers for the results
results_set = set(results.docs)
# Intersect the results set with the sets for each term
from whoosh.query import Term
for term in myquery.existing_terms(s.reader()):
term_set = set(Term(fieldname, term).docs(s))
intersection = results_set & term_set
print "Term:", term, "found in:", len(intersection), "of the results"
Cheers,
Matt