I think it would be extrordinarily useful to have the ability to easily filter a search result based on class or type. For instance, I would like to create the following method in my API:
public <T> List search(Class<T> type, String queryString);
Inside the method I would do something like this (note not actual code):
CompassQuery query = session.queryBuilder().queryString(queryString).toQuery();
query.setType(type);
CompassHits hits = query.hits();
CompassDetachedHits detachedHits = hits.detach(0, getMaxSearchResults());
.....
..and so on. Currently there is no easy way to do this. You can get a handle to an InternalCompass, then a handle to the CompassMapping, and from there you can reverse engineer the alias name from the class name, but this is really tricky and requires a lot of code. I wasn't able to get it to totally work, I think it was something to do with my Spring setup.
I think this is a powerful approach, especially if you are using Compass Annotations, because both your data and metadata are essentially in the class. For me, it allows users of my API to perform a search withou having to have any compass specific knowledge at all.