public void offerHistory(int offeredPreviousJ,FieldMatchMetrics offeredMetrics,boolean collectTrace) {
        if (offeredMetrics.getSegmentationScore()<=metrics.getSegmentationScore()) {
            if (collectTrace)
                offeredMetrics.trace().add("    rejected offered history [match: " + offeredMetrics.getSegmentationScore() +
                                           " ending at:" + previousJ + "] at " + this + "\n");
            return; // Reject
        }

        /*
        if (previousJ!=offeredPreviousJ) { // Starting over like this achieves higher correctness if
            semanticDistanceExplored=0;    // the match metric is dependent on relative distance between segments
            open=true;                     // but is more expensive
        }
        */

        if (collectTrace)
            offeredMetrics.trace().add("    accepted offered history [match: " + offeredMetrics.getSegmentationScore() +
                                       " ending at:" + previousJ + "] at " + this + "\n");

        previousJ=offeredPreviousJ;
        metrics=offeredMetrics;
    }
Offers an alternative history leading up to this point, which is accepted and stored if it is
better than the current history
searchlib/src/main/java/com/yahoo/searchlib/ranking/features/fieldmatch/SegmentStartPoint.java