public void trim(int offset, int numHits) {
        updateHits();
        ensureSorted();

        int highBound = numHits + offset; // Largest offset +1
        boolean needToTrim = (offset > 0) || (hits.size() > highBound);
        if ( ! needToTrim ) return;

        int currentIndex = -1;
        ListenableArrayList<Hit> newHits = new ListenableArrayList<>(numHits);
        for (Hit hit : hits) {
            if (hit.isAuxiliary()) {
                newHits.add(hit);
            } else {
                currentIndex++;
                if (currentIndex < offset || currentIndex >= highBound) {
                    handleRemovedHit(hit);
                } else {
                    newHits.add(hit);
                }
            }
        }
        for (Runnable listener : hits.listeners())
            newHits.addListener(listener);
        hits = newHits;
        unmodifiableHits = Collections.unmodifiableList(hits);
    }
Remove the first <code>offset</code> <i>concrete</i> hits in this group,
and hits beyond <code>offset+numHits</code>
container-search/src/main/java/com/yahoo/search/result/HitGroup.java