I was fighting SOLR 5.5 useDocValuesAsStored/copyField issue on our company's SOLR installation, and sufficient fix seems to be simple:
- searcher.decorateDocValueFields(sid, docid, searcher.getNonStoredDVs(false));
+ searcher.decorateDocValueFields(sid, docid, searcher.getNonStoredDVs(true));
getNonStoredDVs(false) returns all non-stored docValues fields, getNonStoredDVs(true) returns only non-stored docValues fields used as stored, either explicitly or implicitly (in schema 1.6). Doesn't masking "implicitly use all docvalues as stored, configured or not" behavior with copyField target detection defeats whole purpose of choosing docValues/stored behavior?