private void fillHits(Result filledHits, Result hitsToFill, String summaryClass) {
        Set<String> fieldsToFill = summaryClasses.get(summaryClass);

        if (fieldsToFill == null ) {
            fieldsToFill = summaryClasses.get(DEFAULT_SUMMARY_CLASS);
        }
        // logic replicated from RpcProtobufFillInvoker
        var partialSummaryHandler = new PartialSummaryHandler(summaryClasses);
        partialSummaryHandler.wantToFill(hitsToFill, summaryClass);
        var onlyFields = partialSummaryHandler.askForFields();
        if (onlyFields != null) {
            fieldsToFill = onlyFields;
        }

        for (Hit hitToFill : hitsToFill.hits()) {
            Hit filledHit = getMatchingFilledHit(hitToFill.getId(), filledHits);

            if (filledHit != null) {
                if (fieldsToFill != null) {
                    copyFieldValuesThatExist(filledHit, hitToFill, fieldsToFill);
                } else {
                    // TODO: remove this block and update fieldsToFill above to throw an exception if no appropriate summary class is found
                    for (var iter = filledHit.fieldIterator(); iter.hasNext();) {
                        var propertyEntry = iter.next();
                        hitToFill.setField(propertyEntry.getKey(), propertyEntry.getValue());
                    }
                }
                // logic replicated from RpcProtobufFillInvoker
                partialSummaryHandler.markFilled(hitToFill);
            }
        }
        hitsToFill.analyzeHits();
    }
Returns a query clone which has sourcr, offset and hits set to null. This is used by access to
the maps using the query as key to achieve lookup independent of offset/hits value
container-search/src/main/java/com/yahoo/search/searchchain/testutil/DocumentSourceSearcher.java