At the moment, if a particular shard doesn't have a key field, that's a parse phase exception.
When dealing with multiple indices, which may have slightly different schemas, or with data entered by a user, it may be useful to suppress these, and just return no values for that index.
Reason: it would make error handling in the client much easier, since the client could assume that all errors were actually errors (rather than just queries over data that didn't exist).
This should be treated as an option rather than default behaviour though.