By inheritance, elasticsearch.ProjectionConstants exposes impossible things:
DOCUMENT: it's a Lucene document but that's not available and can be confused with SCORE: should we remove SCORE and map DOCUMENT to SCORE for the es backend?
DOCUMENT_ID: does ES expose a document id?
EXPLANATION: does Expose an explanation object? Same type as Lucene's?