From f9f6d3a3ac43be3a8bd09a5ff131f99e4b5df145 Mon Sep 17 00:00:00 2001 From: Tommaso Teofili Date: Fri, 29 Sep 2017 15:32:27 +0200 Subject: [PATCH] no Jira - minor generics / code constructs fixes in MLT --- .../apache/lucene/queries/mlt/MoreLikeThis.java | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java b/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java index ea02af3f8f4..9afa68708a6 100644 --- a/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java +++ b/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java @@ -782,11 +782,7 @@ public final class MoreLikeThis { * @param vector List of terms and their frequencies for a doc/field */ private void addTermFrequencies(Map> field2termFreqMap, Terms vector, String fieldName) throws IOException { - Map termFreqMap = field2termFreqMap.get(fieldName); - if (termFreqMap == null) { - termFreqMap = new HashMap<>(); - field2termFreqMap.put(fieldName, termFreqMap); - } + Map termFreqMap = field2termFreqMap.computeIfAbsent(fieldName, k -> new HashMap<>()); final TermsEnum termsEnum = vector.iterator(); final CharsRefBuilder spare = new CharsRefBuilder(); BytesRef text; @@ -823,11 +819,7 @@ public final class MoreLikeThis { throw new UnsupportedOperationException("To use MoreLikeThis without " + "term vectors, you must provide an Analyzer"); } - Map termFreqMap = perFieldTermFrequencies.get(fieldName); - if (termFreqMap == null) { - termFreqMap = new HashMap<>(); - perFieldTermFrequencies.put(fieldName, termFreqMap); - } + Map termFreqMap = perFieldTermFrequencies.computeIfAbsent(fieldName, k -> new HashMap<>()); try (TokenStream ts = analyzer.tokenStream(fieldName, r)) { int tokenCount = 0; // for every token @@ -906,7 +898,7 @@ public final class MoreLikeThis { * @see #retrieveInterestingTerms(java.io.Reader, String) */ public String[] retrieveInterestingTerms(int docNum) throws IOException { - ArrayList al = new ArrayList<>(maxQueryTerms); + ArrayList al = new ArrayList<>(maxQueryTerms); PriorityQueue pq = retrieveTerms(docNum); ScoreTerm scoreTerm; int lim = maxQueryTerms; // have to be careful, retrieveTerms returns all words but that's probably not useful to our caller... @@ -929,7 +921,7 @@ public final class MoreLikeThis { * @see #setMaxQueryTerms */ public String[] retrieveInterestingTerms(Reader r, String fieldName) throws IOException { - ArrayList al = new ArrayList<>(maxQueryTerms); + ArrayList al = new ArrayList<>(maxQueryTerms); PriorityQueue pq = retrieveTerms(r, fieldName); ScoreTerm scoreTerm; int lim = maxQueryTerms; // have to be careful, retrieveTerms returns all words but that's probably not useful to our caller...