You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2018/01/02 11:07:09 UTC

[1/2] lucene-solr:master: LUCENE-8010: GroupingSearchTest assumes longer fields = lower scores

Repository: lucene-solr
Updated Branches:
  refs/heads/master ca29722b2 -> 6dd9dbf27


LUCENE-8010: GroupingSearchTest assumes longer fields = lower scores


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/6dd9dbf2
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/6dd9dbf2
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/6dd9dbf2

Branch: refs/heads/master
Commit: 6dd9dbf2758c1fad2f10f0eba96998411aa43fd0
Parents: c1030ee
Author: Alan Woodward <ro...@apache.org>
Authored: Tue Jan 2 11:06:45 2018 +0000
Committer: Alan Woodward <ro...@apache.org>
Committed: Tue Jan 2 11:06:59 2018 +0000

----------------------------------------------------------------------
 .../test/org/apache/lucene/search/grouping/GroupingSearchTest.java | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/6dd9dbf2/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
----------------------------------------------------------------------
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
index d13bfd7..d09513c 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
@@ -31,6 +31,7 @@ import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.TermQuery;
+import org.apache.lucene.search.similarities.BM25Similarity;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
@@ -115,6 +116,7 @@ public class GroupingSearchTest extends LuceneTestCase {
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = newSearcher(w.getReader());
+    indexSearcher.setSimilarity(new BM25Similarity());
     w.close();
 
     Sort groupSort = Sort.RELEVANCE;


[2/2] lucene-solr:master: LUCENE-8012: Explanation takes Number rather than float

Posted by ro...@apache.org.
LUCENE-8012: Explanation takes Number rather than float


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/c1030eeb
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/c1030eeb
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/c1030eeb

Branch: refs/heads/master
Commit: c1030eeb74e7d5ef6dc36173add6e9da5da645fe
Parents: ca29722
Author: Alan Woodward <ro...@apache.org>
Authored: Wed Dec 13 16:21:14 2017 +0000
Committer: Alan Woodward <ro...@apache.org>
Committed: Tue Jan 2 11:06:59 2018 +0000

----------------------------------------------------------------------
 lucene/CHANGES.txt                              |  3 ++
 .../lucene/search/DisjunctionMaxQuery.java      |  4 +-
 .../lucene/search/DoubleValuesSource.java       |  8 +--
 .../org/apache/lucene/search/Explanation.java   | 14 ++---
 .../org/apache/lucene/search/QueryRescorer.java |  6 +--
 .../org/apache/lucene/search/SortRescorer.java  |  2 +-
 .../lucene/search/similarities/Axiomatic.java   | 13 ++---
 .../search/similarities/BM25Similarity.java     | 10 ++--
 .../search/similarities/DFISimilarity.java      |  6 +--
 .../search/similarities/DFRSimilarity.java      |  4 +-
 .../search/similarities/IBSimilarity.java       |  6 +--
 .../similarities/LMDirichletSimilarity.java     |  4 +-
 .../similarities/LMJelinekMercerSimilarity.java |  4 +-
 .../search/similarities/MultiSimilarity.java    |  2 +-
 .../lucene/search/similarities/Similarity.java  |  2 +-
 .../search/similarities/SimilarityBase.java     |  4 +-
 .../search/similarities/TFIDFSimilarity.java    |  8 +--
 .../apache/lucene/search/TestBooleanQuery.java  |  2 +-
 .../lucene/search/TestDocValuesScoring.java     |  2 +-
 .../apache/lucene/search/TestQueryRescorer.java |  4 +-
 .../search/similarities/TestSimilarity2.java    |  2 +-
 .../search/similarities/TestSimilarityBase.java |  2 +-
 .../apache/lucene/search/spans/TestBasics.java  | 54 ++++++++++----------
 .../search/spans/TestNearSpansOrdered.java      |  2 +-
 .../expressions/ExpressionValueSource.java      |  4 +-
 .../search/join/ToParentBlockJoinQuery.java     |  2 +-
 .../lucene/search/join/TestBlockJoin.java       |  4 +-
 .../apache/lucene/search/join/TestJoinUtil.java |  2 +-
 .../lucene/misc/SweetSpotSimilarityTest.java    |  2 +-
 .../lucene/queries/function/FunctionQuery.java  |  6 +--
 .../lucene/queries/function/ValueSource.java    |  2 +-
 .../queries/payloads/PayloadScoreQuery.java     |  4 +-
 .../function/TestFunctionScoreExplanations.java | 10 ++--
 .../function/TestFunctionScoreQuery.java        |  4 +-
 .../queries/payloads/TestPayloadCheckQuery.java |  2 +-
 .../org/apache/lucene/search/CoveringQuery.java |  2 +-
 .../spatial/bbox/BBoxSimilarityValueSource.java |  2 +-
 .../util/ReciprocalDoubleValuesSource.java      |  2 +-
 .../org/apache/lucene/search/CheckHits.java     |  4 +-
 .../similarities/AssertingSimilarity.java       |  6 +--
 .../similarities/BaseSimilarityTestCase.java    |  8 +--
 .../search/TestBaseExplanationTestCase.java     |  2 +-
 .../org/apache/solr/ltr/model/LinearModel.java  |  2 +-
 .../ltr/model/MultipleAdditiveTreesModel.java   |  2 +-
 .../org/apache/solr/ltr/norm/Normalizer.java    |  2 +-
 .../java/org/apache/solr/schema/LatLonType.java |  2 +-
 .../TestSweetSpotSimilarityFactory.java         |  2 +-
 47 files changed, 125 insertions(+), 121 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 0ec795a..ff94809 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -29,6 +29,9 @@ API Changes
 * LUCENE-8099: CustomScoreQuery, BoostedQuery and BoostingQuery have been
   removed (Alan Woodward)
 
+* LUCENE-8012: Explanation now takes Number rather than float (Alan Woodward, 
+  Robert Muir)
+
 Changes in Runtime Behavior
 
 * LUCENE-7837: Indices that were created before the previous major version

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java b/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java
index 3285baf..1e67cb1 100644
--- a/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java
+++ b/lucene/core/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java
@@ -159,7 +159,7 @@ public final class DisjunctionMaxQuery extends Query implements Iterable<Query>
     @Override
     public Explanation explain(LeafReaderContext context, int doc) throws IOException {
       boolean match = false;
-      float max = 0;
+      double max = 0;
       double otherSum = 0;
       List<Explanation> subs = new ArrayList<>();
       for (Weight wt : weights) {
@@ -167,7 +167,7 @@ public final class DisjunctionMaxQuery extends Query implements Iterable<Query>
         if (e.isMatch()) {
           match = true;
           subs.add(e);
-          float score = e.getValue();
+          double score = e.getValue().doubleValue();
           if (score >= max) {
             otherSum += max;
             max = score;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java b/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java
index d5d19ec..3938d3f 100644
--- a/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java
+++ b/lucene/core/src/java/org/apache/lucene/search/DoubleValuesSource.java
@@ -68,9 +68,9 @@ public abstract class DoubleValuesSource implements SegmentCacheable {
    * @throws IOException if an {@link IOException} occurs
    */
   public Explanation explain(LeafReaderContext ctx, int docId, Explanation scoreExplanation) throws IOException {
-    DoubleValues dv = getValues(ctx, DoubleValuesSource.constant(scoreExplanation.getValue()).getValues(ctx, null));
+    DoubleValues dv = getValues(ctx, DoubleValuesSource.constant(scoreExplanation.getValue().doubleValue()).getValues(ctx, null));
     if (dv.advanceExact(docId))
-      return Explanation.match((float) dv.doubleValue(), this.toString());
+      return Explanation.match(dv.doubleValue(), this.toString());
     return Explanation.noMatch(this.toString());
   }
 
@@ -305,7 +305,7 @@ public abstract class DoubleValuesSource implements SegmentCacheable {
 
     @Override
     public Explanation explain(LeafReaderContext ctx, int docId, Explanation scoreExplanation) {
-      return Explanation.match((float) value, "constant(" + value + ")");
+      return Explanation.match(value, "constant(" + value + ")");
     }
 
     @Override
@@ -405,7 +405,7 @@ public abstract class DoubleValuesSource implements SegmentCacheable {
     public Explanation explain(LeafReaderContext ctx, int docId, Explanation scoreExplanation) throws IOException {
       DoubleValues values = getValues(ctx, null);
       if (values.advanceExact(docId))
-        return Explanation.match((float) values.doubleValue(), this.toString());
+        return Explanation.match(values.doubleValue(), this.toString());
       else
         return Explanation.noMatch(this.toString());
     }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/Explanation.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/Explanation.java b/lucene/core/src/java/org/apache/lucene/search/Explanation.java
index 42e3ce7..f5d2ec4 100644
--- a/lucene/core/src/java/org/apache/lucene/search/Explanation.java
+++ b/lucene/core/src/java/org/apache/lucene/search/Explanation.java
@@ -32,7 +32,7 @@ public final class Explanation {
    * @param description how {@code value} was computed
    * @param details     sub explanations that contributed to this explanation
    */
-  public static Explanation match(float value, String description, Collection<Explanation> details) {
+  public static Explanation match(Number value, String description, Collection<Explanation> details) {
     return new Explanation(true, value, description, details);
   }
 
@@ -42,7 +42,7 @@ public final class Explanation {
    * @param description how {@code value} was computed
    * @param details     sub explanations that contributed to this explanation
    */
-  public static Explanation match(float value, String description, Explanation... details) {
+  public static Explanation match(Number value, String description, Explanation... details) {
     return new Explanation(true, value, description, Arrays.asList(details));
   }
 
@@ -61,14 +61,14 @@ public final class Explanation {
   }
 
   private final boolean match;                          // whether the document matched
-  private final float value;                            // the value of this node
+  private final Number value;                            // the value of this node
   private final String description;                     // what it represents
   private final List<Explanation> details;              // sub-explanations
 
   /** Create a new explanation  */
-  private Explanation(boolean match, float value, String description, Collection<Explanation> details) {
+  private Explanation(boolean match, Number value, String description, Collection<Explanation> details) {
     this.match = match;
-    this.value = value;
+    this.value = Objects.requireNonNull(value);
     this.description = Objects.requireNonNull(description);
     this.details = Collections.unmodifiableList(new ArrayList<>(details));
     for (Explanation detail : details) {
@@ -84,7 +84,7 @@ public final class Explanation {
   }
   
   /** The value assigned to this explanation node. */
-  public float getValue() { return value; }
+  public Number getValue() { return value; }
 
   /** A description of this explanation node. */
   public String getDescription() { return description; }
@@ -126,7 +126,7 @@ public final class Explanation {
     if (o == null || getClass() != o.getClass()) return false;
     Explanation that = (Explanation) o;
     return match == that.match &&
-        Float.compare(that.value, value) == 0 &&
+        Objects.equals(value, that.value) &&
         Objects.equals(description, that.description) &&
         Objects.equals(details, that.details);
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/QueryRescorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/QueryRescorer.java b/lucene/core/src/java/org/apache/lucene/search/QueryRescorer.java
index b264d72..6b19f29 100644
--- a/lucene/core/src/java/org/apache/lucene/search/QueryRescorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/QueryRescorer.java
@@ -141,13 +141,13 @@ public abstract class QueryRescorer extends Rescorer {
   public Explanation explain(IndexSearcher searcher, Explanation firstPassExplanation, int docID) throws IOException {
     Explanation secondPassExplanation = searcher.explain(query, docID);
 
-    Float secondPassScore = secondPassExplanation.isMatch() ? secondPassExplanation.getValue() : null;
+    Number secondPassScore = secondPassExplanation.isMatch() ? secondPassExplanation.getValue() : null;
 
     float score;
     if (secondPassScore == null) {
-      score = combine(firstPassExplanation.getValue(), false, 0.0f);
+      score = combine(firstPassExplanation.getValue().floatValue(), false, 0.0f);
     } else {
-      score = combine(firstPassExplanation.getValue(), true,  secondPassScore.floatValue());
+      score = combine(firstPassExplanation.getValue().floatValue(), true,  secondPassScore.floatValue());
     }
 
     Explanation first = Explanation.match(firstPassExplanation.getValue(), "first pass score", firstPassExplanation);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/SortRescorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/SortRescorer.java b/lucene/core/src/java/org/apache/lucene/search/SortRescorer.java
index d3912dd..b83e233 100644
--- a/lucene/core/src/java/org/apache/lucene/search/SortRescorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/SortRescorer.java
@@ -95,7 +95,7 @@ public class SortRescorer extends Rescorer {
 
   @Override
   public Explanation explain(IndexSearcher searcher, Explanation firstPassExplanation, int docID) throws IOException {
-    TopDocs oneHit = new TopDocs(1, new ScoreDoc[] {new ScoreDoc(docID, firstPassExplanation.getValue())});
+    TopDocs oneHit = new TopDocs(1, new ScoreDoc[] {new ScoreDoc(docID, firstPassExplanation.getValue().floatValue())});
     TopDocs hits = rescore(searcher, oneHit, 1);
     assert hits.totalHits == 1;
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/Axiomatic.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/Axiomatic.java b/lucene/core/src/java/org/apache/lucene/search/similarities/Axiomatic.java
index df683c1..1522e5d 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/Axiomatic.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/Axiomatic.java
@@ -122,13 +122,14 @@ public abstract class Axiomatic extends SimilarityBase {
   protected Explanation explain(
       BasicStats stats, int doc, Explanation freq, double docLen) {    
     List<Explanation> subs = new ArrayList<>();
-    explain(subs, stats, doc, freq.getValue(), docLen);
+    double f = freq.getValue().doubleValue();
+    explain(subs, stats, doc, f, docLen);
     
-    double score = tf(stats, freq.getValue(), docLen)
-        * ln(stats, freq.getValue(), docLen)
-        * tfln(stats, freq.getValue(), docLen)
-        * idf(stats, freq.getValue(), docLen)
-        - gamma(stats, freq.getValue(), docLen);
+    double score = tf(stats, f, docLen)
+        * ln(stats, f, docLen)
+        * tfln(stats, f, docLen)
+        * idf(stats, f, docLen)
+        - gamma(stats, f, docLen);
 
     Explanation explanation = Explanation.match((float) score,
         "score(" + getClass().getSimpleName() + ", doc=" + doc + ", freq=" + freq.getValue() +"), computed from:",

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java b/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java
index c920891..dce156b 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/BM25Similarity.java
@@ -170,7 +170,7 @@ public class BM25Similarity extends Similarity {
     for (final TermStatistics stat : termStats ) {
       Explanation idfExplain = idfExplain(collectionStats, stat);
       details.add(idfExplain);
-      idf += idfExplain.getValue();
+      idf += idfExplain.getValue().floatValue();
     }
     return Explanation.match((float) idf, "idf, sum of:", details);
   }
@@ -236,7 +236,7 @@ public class BM25Similarity extends Similarity {
       subs.addAll(stats.explain());
       Explanation tfExpl = explainTF(doc, freq);
       subs.add(tfExpl);
-      return Explanation.match(stats.weight * tfExpl.getValue(),
+      return Explanation.match(stats.weight * tfExpl.getValue().floatValue(),
           "score(doc="+doc+",freq="+freq.getValue()+"), product of:", subs);
     }
     
@@ -247,7 +247,7 @@ public class BM25Similarity extends Similarity {
       if (norms == null) {
         subs.add(Explanation.match(0, "b, field omits length norms"));
         return Explanation.match(
-            (float) (freq.getValue() / (freq.getValue() + (double) k1)),
+            (float) (freq.getValue().floatValue() / (freq.getValue().floatValue() + (double) k1)),
             "tf, computed as freq / (freq + k1) from:", subs);
       } else {
         boolean found = norms.advanceExact(doc);
@@ -263,7 +263,7 @@ public class BM25Similarity extends Similarity {
         subs.add(Explanation.match(stats.avgdl, "avgdl, average length of field"));
         float normValue = k1 * ((1 - b) + b * doclen / stats.avgdl);
         return Explanation.match(
-            (float) (freq.getValue() / (freq.getValue() + (double) normValue)),
+            (float) (freq.getValue().floatValue() / (freq.getValue().floatValue() + (double) normValue)),
             "tf, computed as freq / (freq + k1 * (1 - b + b * dl / avgdl)) from:", subs);
       }
     }
@@ -294,7 +294,7 @@ public class BM25Similarity extends Similarity {
       this.avgdl = avgdl;
       this.k1 = k1;
       this.cache = cache;
-      this.weight = (k1 + 1) * boost * idf.getValue();
+      this.weight = (k1 + 1) * boost * idf.getValue().floatValue();
     }
 
     private List<Explanation> explain() {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/DFISimilarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/DFISimilarity.java b/lucene/core/src/java/org/apache/lucene/search/similarities/DFISimilarity.java
index 6ebe9cb..66f22be 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/DFISimilarity.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/DFISimilarity.java
@@ -82,7 +82,7 @@ public class DFISimilarity extends SimilarityBase {
       BasicStats stats, int doc, Explanation freq, double docLen) {
     final double expected = (stats.getTotalTermFreq() + 1) * docLen /
         (stats.getNumberOfFieldTokens() + 1);
-    if (freq.getValue() <= expected){
+    if (freq.getValue().doubleValue() <= expected){
       return Explanation.match((float) 0, "score(" +
           getClass().getSimpleName() + ", doc=" + doc + ", freq=" +
           freq.getValue() +"), equals to 0");
@@ -95,14 +95,14 @@ public class DFISimilarity extends SimilarityBase {
         Explanation.match(stats.getNumberOfFieldTokens(),
             "T, total number of tokens in the field"));
 
-    final double measure = independence.score(freq.getValue(), expected);
+    final double measure = independence.score(freq.getValue().doubleValue(), expected);
     Explanation explMeasure = Explanation.match((float) measure,
         "measure, computed as independence.score(freq, expected) from:",
         freq,
         explExpected);
 
     return Explanation.match(
-        (float) score(stats, freq.getValue(), docLen),
+        (float) score(stats, freq.getValue().doubleValue(), docLen),
         "score(" + getClass().getSimpleName() + ", doc=" + doc + ", freq=" +
             freq.getValue() +"), computed as boost * log2(measure + 1) from:",
         Explanation.match( (float)stats.getBoost(), "boost, query boost"),

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java b/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java
index 8c73e6e..a41e35c 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/DFRSimilarity.java
@@ -138,10 +138,10 @@ public class DFRSimilarity extends SimilarityBase {
   protected Explanation explain(
       BasicStats stats, int doc, Explanation freq, double docLen) {
     List<Explanation> subs = new ArrayList<>();
-    explain(subs, stats, doc, freq.getValue(), docLen);
+    explain(subs, stats, doc, freq.getValue().doubleValue(), docLen);
 
     return Explanation.match(
-        (float) score(stats, freq.getValue(), docLen),
+        (float) score(stats, freq.getValue().doubleValue(), docLen),
         "score(" + getClass().getSimpleName() + ", doc=" + doc + ", freq=" +
             freq.getValue() +"), computed as boost * " +
             "basicModel.score(stats, tfn) * afterEffect.score(stats, tfn) from:",

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java b/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java
index 3e9ba0c..9a57608 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/IBSimilarity.java
@@ -120,17 +120,17 @@ public class IBSimilarity extends SimilarityBase {
     Explanation lambdaExpl = lambda.explain(stats);
     subs.add(normExpl);
     subs.add(lambdaExpl);
-    subs.add(distribution.explain(stats, normExpl.getValue(), lambdaExpl.getValue()));
+    subs.add(distribution.explain(stats, normExpl.getValue().floatValue(), lambdaExpl.getValue().floatValue()));
   }
 
   @Override
   protected Explanation explain(
       BasicStats stats, int doc, Explanation freq, double docLen) {
     List<Explanation> subs = new ArrayList<>();
-    explain(subs, stats, doc, freq.getValue(), docLen);
+    explain(subs, stats, doc, freq.getValue().doubleValue(), docLen);
 
     return Explanation.match(
-        (float) score(stats, freq.getValue(), docLen),
+        (float) score(stats, freq.getValue().doubleValue(), docLen),
         "score(" + getClass().getSimpleName() + ", doc=" + doc + ", freq=" +
             freq.getValue() +"), computed as boost * " +
             "distribution.score(stats, normalization.tfn(stats, freq," +

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java b/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java
index be7329b..c12cba4 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/LMDirichletSimilarity.java
@@ -114,10 +114,10 @@ public class LMDirichletSimilarity extends LMSimilarity {
   protected Explanation explain(
       BasicStats stats, int doc, Explanation freq, double docLen) {
     List<Explanation> subs = new ArrayList<>();
-    explain(subs, stats, doc, freq.getValue(), docLen);
+    explain(subs, stats, doc, freq.getValue().doubleValue(), docLen);
 
     return Explanation.match(
-        (float) score(stats, freq.getValue(), docLen),
+        (float) score(stats, freq.getValue().doubleValue(), docLen),
         "score(" + getClass().getSimpleName() + ", doc=" + doc + ", freq=" +
             freq.getValue() +"), computed as boost * " +
             "(term weight + document norm) from:",

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java b/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java
index f6db238..42e5a7b 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/LMJelinekMercerSimilarity.java
@@ -95,10 +95,10 @@ public class LMJelinekMercerSimilarity extends LMSimilarity {
   protected Explanation explain(
       BasicStats stats, int doc, Explanation freq, double docLen) {
     List<Explanation> subs = new ArrayList<>();
-    explain(subs, stats, doc, freq.getValue(), docLen);
+    explain(subs, stats, doc, freq.getValue().doubleValue(), docLen);
 
     return Explanation.match(
-        (float) score(stats, freq.getValue(), docLen),
+        (float) score(stats, freq.getValue().doubleValue(), docLen),
         "score(" + getClass().getSimpleName() + ", doc=" + doc + ", freq=" +
             freq.getValue() +"), computed as boost * " +
             "log(1 + ((1 - lambda) * freq / dl) /(lambda * P)) from:",

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java b/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java
index cbd61dd..2f48cc6 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/MultiSimilarity.java
@@ -97,7 +97,7 @@ public class MultiSimilarity extends Similarity {
       for (SimScorer subScorer : subScorers) {
         subs.add(subScorer.explain(doc, freq));
       }
-      return Explanation.match(score(doc, freq.getValue()), "sum of:", subs);
+      return Explanation.match(score(doc, freq.getValue().floatValue()), "sum of:", subs);
     }
 
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java b/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java
index 30895eb..5f0bcd0 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/Similarity.java
@@ -173,7 +173,7 @@ public abstract class Similarity {
      */
     public Explanation explain(int doc, Explanation freq) throws IOException {
       return Explanation.match(
-          score(doc, freq.getValue()),
+          score(doc, freq.getValue().floatValue()),
           "score(doc=" + doc + ",freq=" + freq.getValue() +"), with freq of:",
           Collections.singleton(freq));
     }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java b/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java
index 99a2e36..f227f38 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/SimilarityBase.java
@@ -162,10 +162,10 @@ public abstract class SimilarityBase extends Similarity {
   protected Explanation explain(
       BasicStats stats, int doc, Explanation freq, double docLen) {
     List<Explanation> subs = new ArrayList<>();
-    explain(subs, stats, doc, freq.getValue(), docLen);
+    explain(subs, stats, doc, freq.getValue().floatValue(), docLen);
     
     return Explanation.match(
-        (float) score(stats, freq.getValue(), docLen),
+        (float) score(stats, freq.getValue().floatValue(), docLen),
         "score(" + getClass().getSimpleName() + ", doc=" + doc + ", freq=" + freq.getValue() +"), computed from:",
         subs);
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java b/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java
index 51e6278..0452371 100644
--- a/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java
+++ b/lucene/core/src/java/org/apache/lucene/search/similarities/TFIDFSimilarity.java
@@ -472,7 +472,7 @@ public abstract class TFIDFSimilarity extends Similarity {
     for (final TermStatistics stat : termStats ) {
       Explanation idfExplain = idfExplain(collectionStats, stat);
       subs.add(idfExplain);
-      idf += idfExplain.getValue();
+      idf += idfExplain.getValue().floatValue();
     }
     return Explanation.match((float) idf, "idf(), sum of:", subs);
   }
@@ -595,7 +595,7 @@ public abstract class TFIDFSimilarity extends Similarity {
       this.field = field;
       this.idf = idf;
       this.boost = boost;
-      this.queryWeight = boost * idf.getValue();
+      this.queryWeight = boost * idf.getValue().floatValue();
       this.normTable = normTable;
     }
   }  
@@ -606,7 +606,7 @@ public abstract class TFIDFSimilarity extends Similarity {
       subs.add(Explanation.match(stats.boost, "boost"));
     }
     subs.add(stats.idf);
-    Explanation tf = Explanation.match(tf(freq.getValue()), "tf(freq="+freq.getValue()+"), with freq of:", freq);
+    Explanation tf = Explanation.match(tf(freq.getValue().floatValue()), "tf(freq="+freq.getValue()+"), with freq of:", freq);
     subs.add(tf);
 
     float norm;
@@ -624,7 +624,7 @@ public abstract class TFIDFSimilarity extends Similarity {
     subs.add(fieldNorm);
     
     return Explanation.match(
-        stats.queryWeight * tf.getValue() * norm,
+        stats.queryWeight * tf.getValue().floatValue() * norm,
         "score(doc="+doc+",freq="+freq.getValue()+"), product of:",
         subs);
   }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java b/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
index c479a8c..2dd7738 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
@@ -523,7 +523,7 @@ public class TestBooleanQuery extends LuceneTestCase {
       @Override
       public void collect(int doc) throws IOException {
         final float actualScore = scorer.score();
-        final float expectedScore = searcher.explain(bq2, docBase + doc).getValue();
+        final float expectedScore = searcher.explain(bq2, docBase + doc).getValue().floatValue();
         assertEquals(expectedScore, actualScore, 10e-5);
         matched.set(true);
       }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java b/lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java
index 7b5fba6..8856431 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestDocValuesScoring.java
@@ -183,7 +183,7 @@ public class TestDocValuesScoring extends LuceneTestCase {
           Explanation boostExplanation = Explanation.match(getValueForDoc(doc), "indexDocValue(" + boostField + ")");
           Explanation simExplanation = sub.explain(doc, freq);
           return Explanation.match(
-              boostExplanation.getValue() * simExplanation.getValue(),
+              boostExplanation.getValue().doubleValue() * simExplanation.getValue().doubleValue(),
               "product of:", boostExplanation, simExplanation);
         }
       };

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java b/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java
index 9f5de37..d4aa9cf 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestQueryRescorer.java
@@ -257,7 +257,7 @@ public class TestQueryRescorer extends LuceneTestCase {
     assertTrue(s.contains("combined first and second pass score"));
     assertTrue(s.contains("first pass score"));
     assertTrue(s.contains("= second pass score"));
-    assertEquals(hits2.scoreDocs[0].score, explain.getValue(), 0.0f);
+    assertEquals(hits2.scoreDocs[0].score, explain.getValue().doubleValue(), 0.0f);
 
     docID = hits2.scoreDocs[1].doc;
     explain = rescorer.explain(searcher,
@@ -269,7 +269,7 @@ public class TestQueryRescorer extends LuceneTestCase {
     assertTrue(s.contains("first pass score"));
     assertTrue(s.contains("no second pass score"));
     assertFalse(s.contains("= second pass score"));
-    assertEquals(hits2.scoreDocs[1].score, explain.getValue(), 0.0f);
+    assertEquals(hits2.scoreDocs[1].score, explain.getValue().doubleValue(), 0.0f);
 
     r.close();
     dir.close();

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java b/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java
index 49dc154..2f0b5fe 100644
--- a/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java
+++ b/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarity2.java
@@ -208,7 +208,7 @@ public class TestSimilarity2 extends LuceneTestCase {
       is.setSimilarity(sims.get(i));
       Explanation expected = scores.get(i);
       Explanation actual = is.explain(query, 0);
-      assertEquals(sims.get(i).toString() + ": actual=" + actual + ",expected=" + expected, expected.getValue(), actual.getValue(), 0F);
+      assertEquals(sims.get(i).toString() + ": actual=" + actual + ",expected=" + expected, expected.getValue(), actual.getValue());
     }
     
     iw.close();

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java b/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java
index be85801..279e30c 100644
--- a/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java
+++ b/lucene/core/src/test/org/apache/lucene/search/similarities/TestSimilarityBase.java
@@ -213,7 +213,7 @@ public class TestSimilarityBase extends LuceneTestCase {
           toTermStats(stats));
       float score = (float)sim.score(realStats, freq, docLen);
       float explScore = sim.explain(
-          realStats, 1, Explanation.match(freq, "freq"), docLen).getValue();
+          realStats, 1, Explanation.match(freq, "freq"), docLen).getValue().floatValue();
       assertFalse("Score infinite: " + sim.toString(), Float.isInfinite(score));
       assertFalse("Score NaN: " + sim.toString(), Float.isNaN(score));
       assertTrue("Score negative: " + sim.toString(), score >= 0);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java b/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
index 1941bae..3cf8ebd 100644
--- a/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
+++ b/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
@@ -148,8 +148,8 @@ public class TestBasics extends LuceneTestCase {
     checkHits(query, new int[]
       {77, 177, 277, 377, 477, 577, 677, 777, 877, 977, 1077, 1177, 1277, 1377, 1477, 1577, 1677, 1777, 1877, 1977});
 
-    assertTrue(searcher.explain(query, 77).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 977).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 77).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 977).getValue().doubleValue() > 0.0f);
   }
   
   public void testSpanTermQuery() throws Exception {
@@ -193,8 +193,8 @@ public class TestBasics extends LuceneTestCase {
     checkHits(query, new int[]
       {801, 821, 831, 851, 861, 871, 881, 891, 1801, 1821, 1831, 1851, 1861, 1871, 1881, 1891});
 
-    assertTrue(searcher.explain(query, 801).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 891).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 801).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 891).getValue().doubleValue() > 0.0f);
   }
 
   public void testSpanNotNoOverflowOnLargeSpans() throws Exception {
@@ -214,8 +214,8 @@ public class TestBasics extends LuceneTestCase {
       {801, 821, 831, 851, 861, 871, 881, 891,
               1801, 1821, 1831, 1851, 1861, 1871, 1881, 1891});
 
-    assertTrue(searcher.explain(query, 801).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 891).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 801).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 891).getValue().doubleValue() > 0.0f);
   }
 
   public void testSpanWithMultipleNotMany() throws Exception {
@@ -226,8 +226,8 @@ public class TestBasics extends LuceneTestCase {
     checkHits(query, new int[]
       {801, 821, 831, 851, 871, 891, 1801, 1821, 1831, 1851, 1871, 1891});
 
-    assertTrue(searcher.explain(query, 801).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 891).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 801).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 891).getValue().doubleValue() > 0.0f);
   }
 
   public void testNpeInSpanNearWithSpanNot() throws Exception {
@@ -239,8 +239,8 @@ public class TestBasics extends LuceneTestCase {
       {801, 821, 831, 851, 861, 871, 881, 891,
               1801, 1821, 1831, 1851, 1861, 1871, 1881, 1891});
 
-    assertTrue(searcher.explain(query, 801).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 891).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 801).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 891).getValue().doubleValue() > 0.0f);
   }
 
   public void testNpeInSpanNearInSpanFirstInSpanNot() throws Exception {
@@ -267,8 +267,8 @@ public class TestBasics extends LuceneTestCase {
       {840, 842, 843, 844, 845, 846, 847, 848, 849,
           1840, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849});
 
-    assertTrue(searcher.explain(query, 840).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 1842).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 840).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 1842).getValue().doubleValue() > 0.0f);
   }
   
   public void testSpanNotWindowTwoBefore() throws Exception {
@@ -278,8 +278,8 @@ public class TestBasics extends LuceneTestCase {
     checkHits(query, new int[]
       {840, 841, 842, 843, 844, 845, 846, 847, 848, 849});
 
-    assertTrue(searcher.explain(query, 840).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 849).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 840).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 849).getValue().doubleValue() > 0.0f);
   }
 
   public void testSpanNotWindowNegPost() throws Exception {
@@ -296,8 +296,8 @@ public class TestBasics extends LuceneTestCase {
        {801, 821, 831, 841, 851, 861, 871, 881, 891,
                1801, 1821, 1831, 1841, 1851, 1861, 1871, 1881, 1891});
 
-    assertTrue(searcher.explain(query, 801).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 891).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 801).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 891).getValue().doubleValue() > 0.0f);
   }
 
   public void testSpanNotWindowNegPre() throws Exception {
@@ -314,8 +314,8 @@ public class TestBasics extends LuceneTestCase {
         {801, 821, 831, 841, 851, 861, 871, 881, 891,
             1801, 1821, 1831, 1841, 1851, 1861, 1871, 1881, 1891});
 
-    assertTrue(searcher.explain(query, 801).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 891).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 801).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 891).getValue().doubleValue() > 0.0f);
   }
 
   public void testSpanNotWindowDoubleExcludesBefore() throws Exception {
@@ -327,8 +327,8 @@ public class TestBasics extends LuceneTestCase {
     checkHits(query, new int[]
        {42, 242, 342, 442, 542, 642, 742, 842, 942});
 
-    assertTrue(searcher.explain(query, 242).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 942).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 242).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 942).getValue().doubleValue() > 0.0f);
   }
   
   public void testSpanFirst() throws Exception {
@@ -344,8 +344,8 @@ public class TestBasics extends LuceneTestCase {
        584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597,
        598, 599});
 
-    assertTrue(searcher.explain(query, 5).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 599).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 5).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 599).getValue().doubleValue() > 0.0f);
 
   }
 
@@ -355,8 +355,8 @@ public class TestBasics extends LuceneTestCase {
     
     checkHits(query, new int[]
       {25,35, 45, 55, 65, 75, 85, 95});
-    assertTrue(searcher.explain(query, 25).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 95).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 25).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 95).getValue().doubleValue() > 0.0f);
 
     query = spanPositionRangeQuery(term1, 0, 1);
     checkHits(query, new int[]
@@ -384,8 +384,8 @@ public class TestBasics extends LuceneTestCase {
               747, 833, 847, 933, 947, 1033, 1047, 1133, 1147, 1233, 1247, 1333,
               1347, 1433, 1447, 1533, 1547, 1633, 1647, 1733, 1747, 1833, 1847, 1933, 1947});
 
-    assertTrue(searcher.explain(query, 33).getValue() > 0.0f);
-    assertTrue(searcher.explain(query, 947).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 33).getValue().doubleValue() > 0.0f);
+    assertTrue(searcher.explain(query, 947).getValue().doubleValue() > 0.0f);
   }
 
   public void testSpanExactNested() throws Exception {
@@ -395,7 +395,7 @@ public class TestBasics extends LuceneTestCase {
     
     checkHits(query, new int[] {333, 1333});
 
-    assertTrue(searcher.explain(query, 333).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 333).getValue().doubleValue() > 0.0f);
   }
 
   public void testSpanNearOr() throws Exception {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java b/lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java
index 348b1e7..072d381 100644
--- a/lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java
+++ b/lucene/core/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java
@@ -255,7 +255,7 @@ public class TestNearSpansOrdered extends LuceneTestCase {
     Explanation e = searcher.explain(q, 1);
     assertTrue("Scorer explanation value for doc#1 isn't positive: "
                + e.toString(),
-               0.0f <= e.getValue());
+               0.0f <= e.getValue().doubleValue());
   }
 
   public void testGaps() throws Exception {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/expressions/src/java/org/apache/lucene/expressions/ExpressionValueSource.java
----------------------------------------------------------------------
diff --git a/lucene/expressions/src/java/org/apache/lucene/expressions/ExpressionValueSource.java b/lucene/expressions/src/java/org/apache/lucene/expressions/ExpressionValueSource.java
index 2bfafab..8cec5cc 100644
--- a/lucene/expressions/src/java/org/apache/lucene/expressions/ExpressionValueSource.java
+++ b/lucene/expressions/src/java/org/apache/lucene/expressions/ExpressionValueSource.java
@@ -158,7 +158,7 @@ final class ExpressionValueSource extends DoubleValuesSource {
   @Override
   public Explanation explain(LeafReaderContext ctx, int docId, Explanation scoreExplanation) throws IOException {
     Explanation[] explanations = new Explanation[variables.length];
-    DoubleValues dv = getValues(ctx, DoubleValuesSource.constant(scoreExplanation.getValue()).getValues(ctx, null));
+    DoubleValues dv = getValues(ctx, DoubleValuesSource.constant(scoreExplanation.getValue().doubleValue()).getValues(ctx, null));
     if (dv.advanceExact(docId) == false) {
       return Explanation.noMatch(expression.sourceText);
     }
@@ -166,7 +166,7 @@ final class ExpressionValueSource extends DoubleValuesSource {
     for (DoubleValuesSource var : variables) {
       explanations[i++] = var.explain(ctx, docId, scoreExplanation);
     }
-    return Explanation.match((float) dv.doubleValue(), expression.sourceText + ", computed from:", explanations);
+    return Explanation.match(dv.doubleValue(), expression.sourceText + ", computed from:", explanations);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
----------------------------------------------------------------------
diff --git a/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java b/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
index 1e37168..6b4acff 100644
--- a/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
+++ b/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java
@@ -347,7 +347,7 @@ public class ToParentBlockJoinQuery extends Query {
         Explanation child = childWeight.explain(context, childDoc - context.docBase);
         if (child.isMatch()) {
           matches++;
-          if (bestChild == null || child.getValue() > bestChild.getValue()) {
+          if (bestChild == null || child.getValue().floatValue() > bestChild.getValue().floatValue()) {
             bestChild = child;
           }
         }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
----------------------------------------------------------------------
diff --git a/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java b/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
index bd7966e..d70beaf 100644
--- a/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
+++ b/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
@@ -833,7 +833,7 @@ public class TestBlockJoin extends LuceneTestCase {
           int childId = Integer.parseInt(document.get("childID"));
           //System.out.println("  hit docID=" + hit.doc + " childId=" + childId + " parentId=" + document.get("parentID"));
           assertTrue(explanation.isMatch());
-          assertEquals(hit.score, explanation.getValue(), 0.0f);
+          assertEquals(hit.score, explanation.getValue().doubleValue(), 0.0f);
           Matcher m = Pattern.compile("Score based on ([0-9]+) child docs in range from ([0-9]+) to ([0-9]+), best match:").matcher(explanation.getDescription());
           assertTrue("Block Join description not matches", m.matches());
           assertTrue("Matched children not positive", Integer.parseInt(m.group(1)) > 0);
@@ -1373,7 +1373,7 @@ public class TestBlockJoin extends LuceneTestCase {
     TopDocs hits = s.search(toChildQuery, 10);
     assertEquals(hits.scoreDocs.length, 2);
     for (int i = 0; i < hits.scoreDocs.length; i++) {
-      assertEquals(hits.scoreDocs[i].score, s.explain(toChildQuery, hits.scoreDocs[i].doc).getValue(), 0.01);
+      assertEquals(hits.scoreDocs[i].score, s.explain(toChildQuery, hits.scoreDocs[i].doc).getValue().doubleValue(), 0f);
     }
 
     r.close();

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
----------------------------------------------------------------------
diff --git a/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java b/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
index 3184150..088bb87 100644
--- a/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
+++ b/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
@@ -1293,7 +1293,7 @@ public class TestJoinUtil extends LuceneTestCase {
       assertEquals(expectedTopDocs.scoreDocs[i].doc, actualTopDocs.scoreDocs[i].doc);
       assertEquals(expectedTopDocs.scoreDocs[i].score, actualTopDocs.scoreDocs[i].score, 0.0f);
       Explanation explanation = indexSearcher.explain(joinQuery, expectedTopDocs.scoreDocs[i].doc);
-      assertEquals(expectedTopDocs.scoreDocs[i].score, explanation.getValue(), 0.0f);
+      assertEquals(expectedTopDocs.scoreDocs[i].score, explanation.getValue().doubleValue(), 0.0f);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/misc/src/test/org/apache/lucene/misc/SweetSpotSimilarityTest.java
----------------------------------------------------------------------
diff --git a/lucene/misc/src/test/org/apache/lucene/misc/SweetSpotSimilarityTest.java b/lucene/misc/src/test/org/apache/lucene/misc/SweetSpotSimilarityTest.java
index a2b324e..6ad9491 100644
--- a/lucene/misc/src/test/org/apache/lucene/misc/SweetSpotSimilarityTest.java
+++ b/lucene/misc/src/test/org/apache/lucene/misc/SweetSpotSimilarityTest.java
@@ -55,7 +55,7 @@ public class SweetSpotSimilarityTest extends LuceneTestCase {
     dir.close();
     Explanation norm = findExplanation(expl, "fieldNorm");
     assertNotNull(norm);
-    return norm.getValue();
+    return norm.getValue().floatValue();
   }
 
   private static Explanation findExplanation(Explanation expl, String text) {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java
----------------------------------------------------------------------
diff --git a/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java b/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java
index 3ae08fd..da41246 100644
--- a/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java
+++ b/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java
@@ -131,13 +131,13 @@ public class FunctionQuery extends Query {
 
     public Explanation explain(int doc) throws IOException {
       Explanation expl = vals.explain(doc);
-      if (expl.getValue() < 0) {
+      if (expl.getValue().floatValue() < 0) {
         expl = Explanation.match(0, "truncated score, max of:", Explanation.match(0f, "minimum score"), expl);
-      } else if (Float.isNaN(expl.getValue())) {
+      } else if (Float.isNaN(expl.getValue().floatValue())) {
         expl = Explanation.match(0, "score, computed as (score == NaN ? 0 : score) since NaN is an illegal score from:", expl);
       }
 
-      return Explanation.match(boost * expl.getValue(), "FunctionQuery(" + func + "), product of:",
+      return Explanation.match(boost * expl.getValue().floatValue(), "FunctionQuery(" + func + "), product of:",
           vals.explain(doc),
           Explanation.match(weight.boost, "boost"));
     }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/queries/src/java/org/apache/lucene/queries/function/ValueSource.java
----------------------------------------------------------------------
diff --git a/lucene/queries/src/java/org/apache/lucene/queries/function/ValueSource.java b/lucene/queries/src/java/org/apache/lucene/queries/function/ValueSource.java
index 61cf973..4b8111e 100644
--- a/lucene/queries/src/java/org/apache/lucene/queries/function/ValueSource.java
+++ b/lucene/queries/src/java/org/apache/lucene/queries/function/ValueSource.java
@@ -249,7 +249,7 @@ public abstract class ValueSource {
     public Explanation explain(LeafReaderContext ctx, int docId, Explanation scoreExplanation) throws IOException {
       Map context = new HashMap<>();
       FakeScorer scorer = new FakeScorer();
-      scorer.score = scoreExplanation.getValue();
+      scorer.score = scoreExplanation.getValue().floatValue();
       context.put("scorer", scorer);
       context.put("searcher", searcher);
       FunctionValues fv = in.getValues(context, ctx);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/queries/src/java/org/apache/lucene/queries/payloads/PayloadScoreQuery.java
----------------------------------------------------------------------
diff --git a/lucene/queries/src/java/org/apache/lucene/queries/payloads/PayloadScoreQuery.java b/lucene/queries/src/java/org/apache/lucene/queries/payloads/PayloadScoreQuery.java
index 2e70589..6704ba1 100644
--- a/lucene/queries/src/java/org/apache/lucene/queries/payloads/PayloadScoreQuery.java
+++ b/lucene/queries/src/java/org/apache/lucene/queries/payloads/PayloadScoreQuery.java
@@ -244,9 +244,9 @@ public class PayloadScoreQuery extends SpanQuery {
 
     protected Explanation getPayloadExplanation() {
       Explanation expl = function.explain(docID(), getField(), spans.payloadsSeen, spans.payloadScore);
-      if (expl.getValue() < 0) {
+      if (expl.getValue().floatValue() < 0) {
         expl = Explanation.match(0, "truncated score, max of:", Explanation.match(0f, "minimum score"), expl);
-      } else if (Float.isNaN(expl.getValue())) {
+      } else if (Float.isNaN(expl.getValue().floatValue())) {
         expl = Explanation.match(0, "payload score, computed as (score == NaN ? 0 : score) since NaN is an illegal score from:", expl);
       }
       return expl;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreExplanations.java
----------------------------------------------------------------------
diff --git a/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreExplanations.java b/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreExplanations.java
index 8df417d..456fb9e 100644
--- a/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreExplanations.java
+++ b/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreExplanations.java
@@ -67,7 +67,7 @@ public class TestFunctionScoreExplanations extends BaseExplanationTestCase {
     Explanation e1 = searcher.explain(q, 0);
     Explanation e = searcher.explain(fsq, 0);
 
-    assertEquals(e.getValue(), e1.getValue(), 0.00001);
+    assertEquals(e.getValue(), e1.getValue());
     assertEquals(e.getDetails()[0], e1);
 
   }
@@ -86,19 +86,19 @@ public class TestFunctionScoreExplanations extends BaseExplanationTestCase {
     expl = searcher.explain(query, 0);
     assertEquals(2, expl.getDetails().length);
     // function
-    assertEquals(5f, expl.getDetails()[1].getValue(), 0f);
+    assertEquals(5f, expl.getDetails()[1].getValue().doubleValue(), 0f);
     // boost
     assertEquals("boost", expl.getDetails()[0].getDescription());
-    assertEquals(2f, expl.getDetails()[0].getValue(), 0f);
+    assertEquals(2f, expl.getDetails()[0].getValue().doubleValue(), 0f);
 
     searcher.setSimilarity(new ClassicSimilarity()); // in order to have a queryNorm != 1
     expl = searcher.explain(query, 0);
     assertEquals(2, expl.getDetails().length);
     // function
-    assertEquals(5f, expl.getDetails()[1].getValue(), 0f);
+    assertEquals(5f, expl.getDetails()[1].getValue().doubleValue(), 0f);
     // boost
     assertEquals("boost", expl.getDetails()[0].getDescription());
-    assertEquals(2f, expl.getDetails()[0].getValue(), 0f);
+    assertEquals(2f, expl.getDetails()[0].getValue().doubleValue(), 0f);
   }
 
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreQuery.java
----------------------------------------------------------------------
diff --git a/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreQuery.java b/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreQuery.java
index 301dce7..c0560bc 100644
--- a/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreQuery.java
+++ b/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionScoreQuery.java
@@ -161,7 +161,7 @@ public class TestFunctionScoreQuery extends FunctionTestSetup {
     Query q = new FunctionScoreQuery(new MatchAllDocsQuery(), DoubleValuesSource.fromLongField("foo"));
     QueryUtils.check(random(), q, searcher);
     Explanation expl = searcher.explain(q, 0);
-    assertEquals(0, expl.getValue(), 0f);
+    assertEquals(0, expl.getValue().doubleValue(), 0f);
     assertTrue(expl.toString(), expl.getDetails()[0].getDescription().contains("truncated score"));
     reader.close();
     dir.close();
@@ -179,7 +179,7 @@ public class TestFunctionScoreQuery extends FunctionTestSetup {
     Query q = new FunctionScoreQuery(new MatchAllDocsQuery(), DoubleValuesSource.fromDoubleField("foo"));
     QueryUtils.check(random(), q, searcher);
     Explanation expl = searcher.explain(q, 0);
-    assertEquals(0, expl.getValue(), 0f);
+    assertEquals(0, expl.getValue().doubleValue(), 0f);
     assertTrue(expl.toString(), expl.getDetails()[0].getDescription().contains("NaN is an illegal score"));
     reader.close();
     dir.close();

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/queries/src/test/org/apache/lucene/queries/payloads/TestPayloadCheckQuery.java
----------------------------------------------------------------------
diff --git a/lucene/queries/src/test/org/apache/lucene/queries/payloads/TestPayloadCheckQuery.java b/lucene/queries/src/test/org/apache/lucene/queries/payloads/TestPayloadCheckQuery.java
index 9e34784..6869177 100644
--- a/lucene/queries/src/test/org/apache/lucene/queries/payloads/TestPayloadCheckQuery.java
+++ b/lucene/queries/src/test/org/apache/lucene/queries/payloads/TestPayloadCheckQuery.java
@@ -98,7 +98,7 @@ public class TestPayloadCheckQuery extends LuceneTestCase {
     SpanQuery query = new SpanPayloadCheckQuery(term1, Collections.singletonList(pay));
     checkHits(query, new int[]
       {1125, 1135, 1145, 1155, 1165, 1175, 1185, 1195, 1225, 1235, 1245, 1255, 1265, 1275, 1285, 1295, 1325, 1335, 1345, 1355, 1365, 1375, 1385, 1395, 1425, 1435, 1445, 1455, 1465, 1475, 1485, 1495, 1525, 1535, 1545, 1555, 1565, 1575, 1585, 1595, 1625, 1635, 1645, 1655, 1665, 1675, 1685, 1695, 1725, 1735, 1745, 1755, 1765, 1775, 1785, 1795, 1825, 1835, 1845, 1855, 1865, 1875, 1885, 1895, 1925, 1935, 1945, 1955, 1965, 1975, 1985, 1995});
-    assertTrue(searcher.explain(query, 1125).getValue() > 0.0f);
+    assertTrue(searcher.explain(query, 1125).getValue().doubleValue() > 0.0f);
 
     SpanTermQuery term2 = new SpanTermQuery(new Term("field", "hundred"));
     SpanNearQuery snq;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/sandbox/src/java/org/apache/lucene/search/CoveringQuery.java
----------------------------------------------------------------------
diff --git a/lucene/sandbox/src/java/org/apache/lucene/search/CoveringQuery.java b/lucene/sandbox/src/java/org/apache/lucene/search/CoveringQuery.java
index 0371f2f..8f82192 100644
--- a/lucene/sandbox/src/java/org/apache/lucene/search/CoveringQuery.java
+++ b/lucene/sandbox/src/java/org/apache/lucene/search/CoveringQuery.java
@@ -150,7 +150,7 @@ public final class CoveringQuery extends Query {
         Explanation subExpl = weight.explain(context, doc);
         if (subExpl.isMatch()) {
           freq++;
-          score += subExpl.getValue();
+          score += subExpl.getValue().doubleValue();
         }
         subExpls.add(subExpl);
       }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/spatial-extras/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarityValueSource.java
----------------------------------------------------------------------
diff --git a/lucene/spatial-extras/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarityValueSource.java b/lucene/spatial-extras/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarityValueSource.java
index e536f66..d6597c6 100644
--- a/lucene/spatial-extras/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarityValueSource.java
+++ b/lucene/spatial-extras/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarityValueSource.java
@@ -104,7 +104,7 @@ public abstract class BBoxSimilarityValueSource extends DoubleValuesSource {
 
   @Override
   public Explanation explain(LeafReaderContext ctx, int docId, Explanation scoreExplanation) throws IOException {
-    DoubleValues dv = getValues(ctx, DoubleValuesSource.constant(scoreExplanation.getValue()).getValues(ctx, null));
+    DoubleValues dv = getValues(ctx, DoubleValuesSource.constant(scoreExplanation.getValue().doubleValue()).getValues(ctx, null));
     if (dv.advanceExact(docId)) {
       AtomicReference<Explanation> explanation = new AtomicReference<>();
       final ShapeValues shapeValues = bboxValueSource.getValues(ctx);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/spatial-extras/src/java/org/apache/lucene/spatial/util/ReciprocalDoubleValuesSource.java
----------------------------------------------------------------------
diff --git a/lucene/spatial-extras/src/java/org/apache/lucene/spatial/util/ReciprocalDoubleValuesSource.java b/lucene/spatial-extras/src/java/org/apache/lucene/spatial/util/ReciprocalDoubleValuesSource.java
index df1f571..4475a42 100644
--- a/lucene/spatial-extras/src/java/org/apache/lucene/spatial/util/ReciprocalDoubleValuesSource.java
+++ b/lucene/spatial-extras/src/java/org/apache/lucene/spatial/util/ReciprocalDoubleValuesSource.java
@@ -77,7 +77,7 @@ public class ReciprocalDoubleValuesSource extends DoubleValuesSource {
   @Override
   public Explanation explain(LeafReaderContext ctx, int docId, Explanation scoreExplanation) throws IOException {
     Explanation expl = input.explain(ctx, docId, scoreExplanation);
-    return Explanation.match((float)recip(expl.getValue()),
+    return Explanation.match(recip(expl.getValue().doubleValue()),
         distToEdge + " / (v + " + distToEdge + "), computed from:", expl);
   }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/test-framework/src/java/org/apache/lucene/search/CheckHits.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/search/CheckHits.java b/lucene/test-framework/src/java/org/apache/lucene/search/CheckHits.java
index 2797427..9c8943d 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/search/CheckHits.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/search/CheckHits.java
@@ -316,7 +316,7 @@ public class CheckHits {
                                        float score,
                                        boolean deep,
                                        Explanation expl) {
-    float value = expl.getValue();
+    float value = expl.getValue().floatValue();
     // TODO: clean this up if we use junit 5 (the assert message is costly)
     try {
       Assert.assertEquals(score, value, 0d);
@@ -382,7 +382,7 @@ public class CheckHits {
         float max = Float.NEGATIVE_INFINITY;
         double maxError = 0;
         for (int i=0; i<detail.length; i++) {
-          float dval = detail[i].getValue();
+          float dval = detail[i].getValue().floatValue();
           verifyExplanation(q,doc,dval,deep,detail[i]);
           product *= dval;
           sum += dval;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/test-framework/src/java/org/apache/lucene/search/similarities/AssertingSimilarity.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/search/similarities/AssertingSimilarity.java b/lucene/test-framework/src/java/org/apache/lucene/search/similarities/AssertingSimilarity.java
index 98e49eb..ac41ea91 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/search/similarities/AssertingSimilarity.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/search/similarities/AssertingSimilarity.java
@@ -110,13 +110,13 @@ public class AssertingSimilarity extends Similarity {
         assert doc < context.reader().maxDoc();
         // freq in bounds 
         assert freq != null;
-        assert Float.isFinite(freq.getValue());
+        assert Float.isFinite(freq.getValue().floatValue());
         // result in bounds
         Explanation explanation = delegateScorer.explain(doc, freq);
         assert explanation != null;
-        assert Float.isFinite(explanation.getValue());
+        assert Float.isFinite(explanation.getValue().floatValue());
         // result matches score exactly
-        assert explanation.getValue() == delegateScorer.score(doc, freq.getValue());
+        assert explanation.getValue().floatValue() == delegateScorer.score(doc, freq.getValue().floatValue());
         return explanation;
       }
     };

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/test-framework/src/java/org/apache/lucene/search/similarities/BaseSimilarityTestCase.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/search/similarities/BaseSimilarityTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/search/similarities/BaseSimilarityTestCase.java
index 5eb64fc..91e64c0 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/search/similarities/BaseSimilarityTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/search/similarities/BaseSimilarityTestCase.java
@@ -452,7 +452,7 @@ public abstract class BaseSimilarityTestCase extends LuceneTestCase {
       assertTrue("score > maxScore: " + score + " > " + maxScore, score <= maxScore);
       // check explanation matches
       Explanation explanation = scorer.explain(0, Explanation.match(freq, "freq, occurrences of term within document"));
-      if (score != explanation.getValue()) {
+      if (score != explanation.getValue().doubleValue()) {
         fail("expected: " + score + ", got: " + explanation);
       }
       CheckHits.verifyExplanation("<test query>", 0, score, true, explanation);
@@ -473,7 +473,7 @@ public abstract class BaseSimilarityTestCase extends LuceneTestCase {
       assertTrue(prevScore >= 0);
       // check explanation matches
       Explanation prevExplanation = scorer.explain(0, Explanation.match(prevFreq, "freq, occurrences of term within document"));
-      if (prevScore != prevExplanation.getValue()) {
+      if (prevScore != prevExplanation.getValue().doubleValue()) {
         fail("expected: " + prevScore + ", got: " + prevExplanation);
       }
       CheckHits.verifyExplanation("test query (prevFreq)", 0, prevScore, true, prevExplanation);
@@ -493,7 +493,7 @@ public abstract class BaseSimilarityTestCase extends LuceneTestCase {
         assertTrue(prevNormScore >= 0);
         // check explanation matches
         Explanation prevNormExplanation = prevNormScorer.explain(0, Explanation.match(freq, "freq, occurrences of term within document"));
-        if (prevNormScore != prevNormExplanation.getValue()) {
+        if (prevNormScore != prevNormExplanation.getValue().doubleValue()) {
           fail("expected: " + prevNormScore + ", got: " + prevNormExplanation);
         }
         CheckHits.verifyExplanation("test query (prevNorm)", 0, prevNormScore, true, prevNormExplanation);
@@ -516,7 +516,7 @@ public abstract class BaseSimilarityTestCase extends LuceneTestCase {
         assertTrue(prevTermScore >= 0);
         // check explanation matches
         Explanation prevTermExplanation = prevTermScorer.explain(0, Explanation.match(freq, "freq, occurrences of term within document"));
-        if (prevTermScore != prevTermExplanation.getValue()) {
+        if (prevTermScore != prevTermExplanation.getValue().doubleValue()) {
           fail("expected: " + prevTermScore + ", got: " + prevTermExplanation);
         }
         CheckHits.verifyExplanation("test query (prevTerm)", 0, prevTermScore, true, prevTermExplanation);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/lucene/test-framework/src/test/org/apache/lucene/search/TestBaseExplanationTestCase.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/test/org/apache/lucene/search/TestBaseExplanationTestCase.java b/lucene/test-framework/src/test/org/apache/lucene/search/TestBaseExplanationTestCase.java
index 8e5db28..2f0f067 100644
--- a/lucene/test-framework/src/test/org/apache/lucene/search/TestBaseExplanationTestCase.java
+++ b/lucene/test-framework/src/test/org/apache/lucene/search/TestBaseExplanationTestCase.java
@@ -89,7 +89,7 @@ public class TestBaseExplanationTestCase extends BaseExplanationTestCase {
       Explanation result = in.explain(context, doc);
       if (result.isMatch()) {
         if (q.breakExplainScores) {
-          result = Explanation.match(-1F * result.getValue(), "Broken Explanation Score", result);
+          result = Explanation.match(-1F * result.getValue().doubleValue(), "Broken Explanation Score", result);
         }
         if (q.toggleExplainMatch) {
           result = Explanation.noMatch("Broken Explanation Matching", result);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/LinearModel.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/LinearModel.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/LinearModel.java
index ee065c3..08780ca 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/LinearModel.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/LinearModel.java
@@ -129,7 +129,7 @@ public class LinearModel extends LTRScoringModel {
           "weight on feature"));
       featureDetails.add(featureExplain);
 
-      details.add(Explanation.match(featureExplain.getValue()
+      details.add(Explanation.match(featureExplain.getValue().doubleValue()
           * featureToWeight[index], "prod of:", featureDetails));
       index++;
     }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/MultipleAdditiveTreesModel.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/MultipleAdditiveTreesModel.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/MultipleAdditiveTreesModel.java
index 278a4f5..23d4886 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/MultipleAdditiveTreesModel.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/model/MultipleAdditiveTreesModel.java
@@ -345,7 +345,7 @@ public class MultipleAdditiveTreesModel extends LTRScoringModel {
     final float[] fv = new float[featureExplanations.size()];
     int index = 0;
     for (final Explanation featureExplain : featureExplanations) {
-      fv[index] = featureExplain.getValue();
+      fv[index] = featureExplain.getValue().floatValue();
       index++;
     }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/solr/contrib/ltr/src/java/org/apache/solr/ltr/norm/Normalizer.java
----------------------------------------------------------------------
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/norm/Normalizer.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/norm/Normalizer.java
index 2b311f8..b475173 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/norm/Normalizer.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/norm/Normalizer.java
@@ -36,7 +36,7 @@ public abstract class Normalizer {
   public abstract LinkedHashMap<String,Object> paramsToMap();
 
   public Explanation explain(Explanation explain) {
-    final float normalized = normalize(explain.getValue());
+    final float normalized = normalize(explain.getValue().floatValue());
     final String explainDesc = "normalized using " + toString();
 
     return Explanation.match(normalized, explainDesc, explain);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/solr/core/src/java/org/apache/solr/schema/LatLonType.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/schema/LatLonType.java b/solr/core/src/java/org/apache/solr/schema/LatLonType.java
index 31679fb..8cf86b8 100644
--- a/solr/core/src/java/org/apache/solr/schema/LatLonType.java
+++ b/solr/core/src/java/org/apache/solr/schema/LatLonType.java
@@ -497,7 +497,7 @@ class SpatialDistanceQuery extends ExtendedQueryBase implements PostFilter {
       double dist = dist(latVals.doubleVal(doc), lonVals.doubleVal(doc));
 
       String description = SpatialDistanceQuery.this.toString();
-      return Explanation.match((float) (base.getValue() * dist), description + " product of:",
+      return Explanation.match((float) (base.getValue().floatValue() * dist), description + " product of:",
           base, Explanation.match((float) dist, "hsin("+latVals.doubleVal(doc)+","+lonVals.doubleVal(doc)));
     }
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c1030eeb/solr/core/src/test/org/apache/solr/search/similarities/TestSweetSpotSimilarityFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/similarities/TestSweetSpotSimilarityFactory.java b/solr/core/src/test/org/apache/solr/search/similarities/TestSweetSpotSimilarityFactory.java
index 52d6f8d..c6f4ac3 100644
--- a/solr/core/src/test/org/apache/solr/search/similarities/TestSweetSpotSimilarityFactory.java
+++ b/solr/core/src/test/org/apache/solr/search/similarities/TestSweetSpotSimilarityFactory.java
@@ -57,7 +57,7 @@ public class TestSweetSpotSimilarityFactory extends BaseSimilarityTestCase {
     dir.close();
     Explanation norm = findExplanation(expl, "fieldNorm");
     assertNotNull(norm);
-    return norm.getValue();
+    return norm.getValue().floatValue();
   }
 
   private static Explanation findExplanation(Explanation expl, String text) {


Re: [1/2] lucene-solr:master: LUCENE-8010: GroupingSearchTest assumes longer fields = lower scores

Posted by Adrien Grand <jp...@gmail.com>.
Thanks, Alan!

Le mar. 2 janv. 2018 à 12:07, <ro...@apache.org> a écrit :

> Repository: lucene-solr
> Updated Branches:
>   refs/heads/master ca29722b2 -> 6dd9dbf27
>
>
> LUCENE-8010: GroupingSearchTest assumes longer fields = lower scores
>
>
> Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
> Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/6dd9dbf2
> Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/6dd9dbf2
> Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/6dd9dbf2
>
> Branch: refs/heads/master
> Commit: 6dd9dbf2758c1fad2f10f0eba96998411aa43fd0
> Parents: c1030ee
> Author: Alan Woodward <ro...@apache.org>
> Authored: Tue Jan 2 11:06:45 2018 +0000
> Committer: Alan Woodward <ro...@apache.org>
> Committed: Tue Jan 2 11:06:59 2018 +0000
>
> ----------------------------------------------------------------------
>  .../test/org/apache/lucene/search/grouping/GroupingSearchTest.java | 2 ++
>  1 file changed, 2 insertions(+)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/6dd9dbf2/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
> ----------------------------------------------------------------------
> diff --git
> a/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
> b/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
> index d13bfd7..d09513c 100644
> ---
> a/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
> +++
> b/lucene/grouping/src/test/org/apache/lucene/search/grouping/GroupingSearchTest.java
> @@ -31,6 +31,7 @@ import org.apache.lucene.search.IndexSearcher;
>  import org.apache.lucene.search.Query;
>  import org.apache.lucene.search.Sort;
>  import org.apache.lucene.search.TermQuery;
> +import org.apache.lucene.search.similarities.BM25Similarity;
>  import org.apache.lucene.store.Directory;
>  import org.apache.lucene.util.BytesRef;
>  import org.apache.lucene.util.LuceneTestCase;
> @@ -115,6 +116,7 @@ public class GroupingSearchTest extends LuceneTestCase
> {
>      w.addDocument(doc);
>
>      IndexSearcher indexSearcher = newSearcher(w.getReader());
> +    indexSearcher.setSimilarity(new BM25Similarity());
>      w.close();
>
>      Sort groupSort = Sort.RELEVANCE;
>
>