public void addTerm(String term, double exactness) {
        // do note, Item is Cloneable, and overwriting the reference is what
        // saves us from overriding the method
        if (alternatives.stream().anyMatch((a) -> a.word.equals(term) && a.exactness >= exactness )) return;

        List<Alternative> newTerms = new ArrayList<>(alternatives.size() + 1);
        newTerms.addAll(alternatives);
        newTerms.add(new Alternative(term, exactness));
        setAlternatives(newTerms);
    }
Add a new alternative iff the term string is not already present with an
equal or higher exactness score. If the term string is present with a
lower exactness score, the new, higher score will take precedence.

@param term one of several string interpretations of the input word
@param exactness how close the term string matches what the user input
container-search/src/main/java/com/yahoo/prelude/query/WordAlternativesItem.java