You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by kw...@apache.org on 2017/12/08 10:41:49 UTC

[1/2] lucene-solr:master: LUCENE-8080: Detect when we are constructing a bogus exact circle, and throw an IllegalArgumentException in that case. Committed on behalf of Ignacio Vera.

Repository: lucene-solr
Updated Branches:
  refs/heads/master 25f24e094 -> dcb84701a


LUCENE-8080: Detect when we are constructing a bogus exact circle, and throw an IllegalArgumentException in that case.  Committed on behalf of Ignacio Vera.


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

Branch: refs/heads/master
Commit: 18f12fdb2853814bea5f61e5b020b80d6bcebec6
Parents: cd30dab
Author: Karl Wright <Da...@gmail.com>
Authored: Fri Dec 8 05:41:11 2017 -0500
Committer: Karl Wright <Da...@gmail.com>
Committed: Fri Dec 8 05:41:11 2017 -0500

----------------------------------------------------------------------
 .../lucene/spatial3d/geom/GeoExactCircle.java   | 15 +++++----
 .../spatial3d/geom/GeoExactCircleTest.java      | 34 +++++++++++++++-----
 2 files changed, 34 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/18f12fdb/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoExactCircle.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoExactCircle.java b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoExactCircle.java
index 5726e60..876b24f 100644
--- a/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoExactCircle.java
+++ b/lucene/spatial3d/src/java/org/apache/lucene/spatial3d/geom/GeoExactCircle.java
@@ -77,17 +77,16 @@ class GeoExactCircle extends GeoBaseCircle {
     final GeoPoint eastPoint = planetModel.surfacePointOnBearing(center, cutoffAngle, Math.PI * 0.5);
     final GeoPoint westPoint = planetModel.surfacePointOnBearing(center, cutoffAngle, Math.PI * 1.5);
 
-    final boolean mustSplit = cutoffAngle > Math.PI * 0.5;
     final GeoPoint edgePoint;
     if (planetModel.c > planetModel.ab) {
       // z can be greater than x or y, so ellipse is longer in height than width
-      slices.add(new ApproximationSlice(center, eastPoint, Math.PI * 0.5, westPoint, Math.PI * -0.5, northPoint, 0.0, mustSplit));
-      slices.add(new ApproximationSlice(center, westPoint, Math.PI * 1.5, eastPoint, Math.PI * 0.5, southPoint, Math.PI, mustSplit));
+      slices.add(new ApproximationSlice(center, eastPoint, Math.PI * 0.5, westPoint, Math.PI * -0.5, northPoint, 0.0, true));
+      slices.add(new ApproximationSlice(center, westPoint, Math.PI * 1.5, eastPoint, Math.PI * 0.5, southPoint, Math.PI, true));
       edgePoint = eastPoint;
     } else {
       // z will be less than x or y, so ellipse is shorter than it is tall
-      slices.add(new ApproximationSlice(center, northPoint, 0.0, southPoint, Math.PI, eastPoint, Math.PI * 0.5, mustSplit));
-      slices.add(new ApproximationSlice(center, southPoint, Math.PI, northPoint, Math.PI * 2.0, westPoint, Math.PI * 1.5, mustSplit));
+      slices.add(new ApproximationSlice(center, northPoint, 0.0, southPoint, Math.PI, eastPoint, Math.PI * 0.5, true));
+      slices.add(new ApproximationSlice(center, southPoint, Math.PI, northPoint, Math.PI * 2.0, westPoint, Math.PI * 1.5, true));
       edgePoint = northPoint;
     }
     //System.out.println("Edgepoint = " + edgePoint);
@@ -283,8 +282,10 @@ class GeoExactCircle extends GeoBaseCircle {
       if (this.plane == null) {
         throw new IllegalArgumentException("Either circle is too small or accuracy is too high; could not construct a plane with endPoint1="+endPoint1+" bearing "+point1Bearing+", endPoint2="+endPoint2+" bearing "+point2Bearing+", middle="+middlePoint+" bearing "+middlePointBearing);
       }
-      if (plane.isWithin(center) == false || !plane.evaluateIsZero(endPoint1) || !plane.evaluateIsZero(endPoint2) || !plane.evaluateIsZero(middlePoint))
-        throw new IllegalStateException("SidedPlane constructor built a bad plane!!");
+      if (this.plane.isWithin(-center.x, -center.y, -center.z)) {
+        //Plane is bogus, we cannot build the circle
+        throw new IllegalArgumentException("Could not construct a valid plane for this planet model with endPoint1="+endPoint1+" bearing "+point1Bearing+", endPoint2="+endPoint2+" bearing "+point2Bearing+", middle="+middlePoint+" bearing "+middlePointBearing);
+      }
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/18f12fdb/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoExactCircleTest.java
----------------------------------------------------------------------
diff --git a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoExactCircleTest.java b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoExactCircleTest.java
index 2f758f1..6f96214 100644
--- a/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoExactCircleTest.java
+++ b/lucene/spatial3d/src/test/org/apache/lucene/spatial3d/geom/GeoExactCircleTest.java
@@ -54,8 +54,6 @@ public class GeoExactCircleTest extends RandomGeo3dShapeGenerator{
 
   @Test
   public void testSurfacePointOnBearingScale(){
-    double ab = 1.6;
-    double c = 0.7;
     PlanetModel p1 = PlanetModel.WGS84;
     PlanetModel p2 = new PlanetModel(0.5 * PlanetModel.WGS84.ab, 0.5 * PlanetModel.WGS84.c );
     GeoPoint point1P1 = new GeoPoint(p1, 0, 0);
@@ -93,9 +91,18 @@ public class GeoExactCircleTest extends RandomGeo3dShapeGenerator{
   @Test
   @Repeat(iterations = 100)
   public void RandomPointBearingCardinalTest(){
-    double ab = random().nextDouble() * 0.6 + 0.9;
-    double c = random().nextDouble() * 0.6  + 0.9 ;
-    PlanetModel planetModel = new PlanetModel(ab, c);
+    //surface distance calculations methods start not converging when
+    //planet flattening > 0.4
+    PlanetModel planetModel;
+    do {
+      double ab = random().nextDouble() * 2;
+      double c = random().nextDouble() * 2;
+      if (random().nextBoolean()) {
+        planetModel = new PlanetModel(ab, c);
+      } else {
+        planetModel = new PlanetModel(c, ab);
+      }
+    } while (Math.abs(planetModel.flattening) > 0.4);
     GeoPoint center = randomGeoPoint(planetModel);
     double radius =  random().nextDouble() * 0.9 * Math.PI;
     checkBearingPoint(planetModel, center, radius, 0);
@@ -133,7 +140,7 @@ public class GeoExactCircleTest extends RandomGeo3dShapeGenerator{
   public void exactCircleLargeTest(){
     boolean success = true;
     try {
-      GeoCircle circle = GeoCircleFactory.makeExactGeoCircle(new PlanetModel(0.5, 0.7), 0.25 * Math.PI,  0,0.35 * Math.PI, 1e-12);
+      GeoCircle circle = GeoCircleFactory.makeExactGeoCircle(new PlanetModel(0.99, 1.05), 0.25 * Math.PI,  0,0.35 * Math.PI, 1e-12);
     } catch (IllegalArgumentException e) {
       success = false;
     }
@@ -174,8 +181,8 @@ public class GeoExactCircleTest extends RandomGeo3dShapeGenerator{
    */
   @Test
   @Repeat(iterations = 100)
-  public void testRandom_LUCENE8054() {
-    PlanetModel planetModel = PlanetModel.WGS84;
+  public void testRandomLUCENE8054() {
+    PlanetModel planetModel = randomPlanetModel();
     GeoCircle circle1 = (GeoCircle) randomGeoAreaShape(EXACT_CIRCLE, planetModel);
     // new radius, a bit smaller than the generated one!
     double radius = circle1.getRadius() *  (1 - 0.01 * random().nextDouble());
@@ -232,4 +239,15 @@ public class GeoExactCircleTest extends RandomGeo3dShapeGenerator{
     assertTrue(circle1.getRelationship(circle2) != GeoArea.DISJOINT);
   }
 
+  public void testLUCENE8080() {
+    PlanetModel planetModel = new PlanetModel(1.6304230055804751, 1.0199671157571204);
+    boolean fail = false;
+    try {
+      GeoCircle circle = GeoCircleFactory.makeExactGeoCircle(planetModel, 0.8853814403571284, 0.9784990176851283, 0.9071033527030907, 1e-11);
+    } catch (IllegalArgumentException e) {
+      fail = true;
+    }
+    assertTrue(fail);
+  }
+
 }


[2/2] lucene-solr:master: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/lucene-solr

Posted by kw...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/lucene-solr


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

Branch: refs/heads/master
Commit: dcb84701a4c6d293b8eb30c676630d16d6cdcaa8
Parents: 18f12fd 25f24e0
Author: Karl Wright <Da...@gmail.com>
Authored: Fri Dec 8 05:41:33 2017 -0500
Committer: Karl Wright <Da...@gmail.com>
Committed: Fri Dec 8 05:41:33 2017 -0500

----------------------------------------------------------------------
 lucene/CHANGES.txt                              |  29 +-
 .../apache/lucene/document/RangeFieldQuery.java |   3 +-
 .../SortedNumericDocValuesRangeQuery.java       |   3 +-
 .../document/SortedSetDocValuesRangeQuery.java  |   3 +-
 .../apache/lucene/index/DocumentsWriter.java    |   5 +-
 .../lucene/index/FrozenBufferedUpdates.java     |   3 +-
 .../apache/lucene/index/IndexWriterConfig.java  |   5 +
 .../lucene/index/LiveIndexWriterConfig.java     |  27 ++
 .../java/org/apache/lucene/index/Sorter.java    |   5 +
 .../lucene/search/Boolean2ScorerSupplier.java   |  30 +-
 .../org/apache/lucene/search/BooleanQuery.java  |   6 +-
 .../org/apache/lucene/search/BooleanWeight.java |  25 +-
 .../org/apache/lucene/search/BoostQuery.java    |   4 +-
 .../apache/lucene/search/CachingCollector.java  |  13 +-
 .../org/apache/lucene/search/Collector.java     |   6 +-
 .../apache/lucene/search/ConjunctionScorer.java |  20 +
 .../lucene/search/ConstantScoreQuery.java       |  14 +-
 .../lucene/search/ConstantScoreScorer.java      |   5 +
 .../org/apache/lucene/search/DisiWrapper.java   |   3 +
 .../lucene/search/DisjunctionMaxQuery.java      |  14 +-
 .../lucene/search/DisjunctionMaxScorer.java     |   6 +
 .../lucene/search/DisjunctionSumScorer.java     |   7 +
 .../search/DocValuesFieldExistsQuery.java       |   2 +-
 .../lucene/search/DocValuesRewriteMethod.java   |   2 +-
 .../lucene/search/DoubleValuesSource.java       |   4 +-
 .../apache/lucene/search/ExactPhraseScorer.java |   5 +
 .../org/apache/lucene/search/FakeScorer.java    |   5 +
 .../apache/lucene/search/FilterCollector.java   |   4 +-
 .../org/apache/lucene/search/FilterScorer.java  |   3 +
 .../org/apache/lucene/search/FilterWeight.java  |   2 +-
 .../lucene/search/IndexOrDocValuesQuery.java    |   6 +-
 .../org/apache/lucene/search/IndexSearcher.java |  34 +-
 .../apache/lucene/search/MatchAllDocsQuery.java |   2 +-
 .../apache/lucene/search/MatchNoDocsQuery.java  |   2 +-
 .../lucene/search/MinShouldMatchSumScorer.java  |   6 +
 .../apache/lucene/search/MultiCollector.java    |  13 +-
 .../lucene/search/MultiCollectorManager.java    |  18 +-
 .../apache/lucene/search/MultiPhraseQuery.java  |   4 +-
 .../MultiTermQueryConstantScoreWrapper.java     |   4 +-
 .../lucene/search/NormsFieldExistsQuery.java    |   2 +-
 .../org/apache/lucene/search/PhraseQuery.java   |   4 +-
 .../apache/lucene/search/PointInSetQuery.java   |   2 +-
 .../apache/lucene/search/PointRangeQuery.java   |   2 +-
 .../java/org/apache/lucene/search/Query.java    |   4 +-
 .../org/apache/lucene/search/QueryCache.java    |   2 +-
 .../org/apache/lucene/search/QueryRescorer.java |   2 +-
 .../org/apache/lucene/search/ReqExclScorer.java |  11 +
 .../apache/lucene/search/ReqOptSumScorer.java   |   5 +
 .../search/ScoreCachingWrappingScorer.java      |  12 +-
 .../org/apache/lucene/search/ScoreMode.java     |  60 +++
 .../java/org/apache/lucene/search/Scorer.java   |  17 +
 .../lucene/search/SloppyPhraseScorer.java       |   5 +
 .../org/apache/lucene/search/SynonymQuery.java  |  49 +-
 .../apache/lucene/search/TermInSetQuery.java    |   4 +-
 .../org/apache/lucene/search/TermQuery.java     |  25 +-
 .../org/apache/lucene/search/TermScorer.java    |  11 +-
 .../lucene/search/TimeLimitingCollector.java    |   4 +-
 .../apache/lucene/search/TopDocsCollector.java  |   2 +-
 .../apache/lucene/search/TopFieldCollector.java |  16 +-
 .../lucene/search/TopScoreDocCollector.java     |  69 ++-
 .../lucene/search/TotalHitCountCollector.java   |   4 +-
 .../org/apache/lucene/search/WANDScorer.java    | 478 +++++++++++++++++++
 .../java/org/apache/lucene/search/Weight.java   |   2 +-
 .../org/apache/lucene/search/package-info.java  |   6 +-
 .../lucene/search/similarities/Axiomatic.java   |   6 +
 .../search/similarities/BM25Similarity.java     |   8 +-
 .../search/similarities/BooleanSimilarity.java  |   5 +
 .../search/similarities/DFISimilarity.java      |   6 +
 .../search/similarities/DFRSimilarity.java      |   8 +-
 .../search/similarities/IBSimilarity.java       |   6 +
 .../similarities/LMDirichletSimilarity.java     |   8 +-
 .../similarities/LMJelinekMercerSimilarity.java |   8 +-
 .../search/similarities/MultiSimilarity.java    |   9 +
 .../lucene/search/similarities/Similarity.java  |   7 +
 .../search/similarities/SimilarityBase.java     |  14 +-
 .../search/similarities/TFIDFSimilarity.java    |  14 +
 .../search/spans/FieldMaskingSpanQuery.java     |   5 +-
 .../lucene/search/spans/SpanBoostQuery.java     |   5 +-
 .../search/spans/SpanContainingQuery.java       |   9 +-
 .../search/spans/SpanMultiTermQueryWrapper.java |   3 +-
 .../lucene/search/spans/SpanNearQuery.java      |   9 +-
 .../lucene/search/spans/SpanNotQuery.java       |   9 +-
 .../apache/lucene/search/spans/SpanOrQuery.java |   7 +-
 .../search/spans/SpanPositionCheckQuery.java    |   7 +-
 .../apache/lucene/search/spans/SpanQuery.java   |   3 +-
 .../apache/lucene/search/spans/SpanScorer.java  |   5 +
 .../lucene/search/spans/SpanTermQuery.java      |   5 +-
 .../lucene/search/spans/SpanWithinQuery.java    |   9 +-
 .../apache/lucene/index/TestIndexWriter.java    |  87 ++++
 .../lucene/index/TestIndexWriterConfig.java     |   2 +
 .../lucene/index/TestMaxTermFrequency.java      |   4 +
 .../org/apache/lucene/index/TestOmitTf.java     |  21 +-
 .../apache/lucene/search/JustCompileSearch.java |   9 +-
 .../lucene/search/MultiCollectorTest.java       |  24 +-
 .../search/TestBoolean2ScorerSupplier.java      |  62 +--
 .../org/apache/lucene/search/TestBooleanOr.java |   6 +-
 .../apache/lucene/search/TestBooleanQuery.java  |  26 +-
 .../search/TestBooleanQueryVisitSubscorers.java |  14 +-
 .../lucene/search/TestBooleanRewrites.java      |   2 +-
 .../apache/lucene/search/TestBooleanScorer.java |  14 +-
 .../lucene/search/TestCachingCollector.java     |  11 +-
 .../lucene/search/TestConjunctionDISI.java      |   4 +
 .../apache/lucene/search/TestConjunctions.java  |   9 +-
 .../lucene/search/TestConstantScoreQuery.java   |  14 +-
 .../lucene/search/TestDisjunctionMaxQuery.java  |   4 +-
 .../lucene/search/TestDocValuesQueries.java     |   2 +-
 .../lucene/search/TestDocValuesScoring.java     |   5 +
 .../lucene/search/TestDoubleValuesSource.java   |   8 +-
 .../lucene/search/TestEarlyTermination.java     |   4 +-
 .../search/TestIndexOrDocValuesQuery.java       |   4 +-
 .../apache/lucene/search/TestLRUQueryCache.java |  14 +-
 .../lucene/search/TestMinShouldMatch2.java      |   6 +-
 .../apache/lucene/search/TestNeedsScores.java   |  22 +-
 .../apache/lucene/search/TestPointQueries.java  |  12 +-
 .../lucene/search/TestPositionIncrement.java    |   4 +-
 .../search/TestPositiveScoresOnlyCollector.java |   7 +-
 .../apache/lucene/search/TestQueryRescorer.java |   7 +-
 .../search/TestScoreCachingWrappingScorer.java  |  11 +-
 .../apache/lucene/search/TestScorerPerf.java    |   6 +-
 .../apache/lucene/search/TestSimilarity.java    |  16 +-
 .../lucene/search/TestSimilarityProvider.java   |  10 +-
 .../lucene/search/TestSloppyPhraseQuery.java    |   8 +-
 .../apache/lucene/search/TestSortRandom.java    |   2 +-
 .../lucene/search/TestSubScorerFreqs.java       |   5 +
 .../org/apache/lucene/search/TestTermQuery.java |   4 +-
 .../apache/lucene/search/TestTermScorer.java    |  14 +-
 .../search/TestTimeLimitingCollector.java       |   4 +-
 .../lucene/search/TestTopDocsCollector.java     | 206 +++++++-
 .../apache/lucene/search/TestTopDocsMerge.java  |   3 +-
 .../lucene/search/TestTopFieldCollector.java    |  34 +-
 .../TestTopFieldCollectorEarlyTermination.java  |   5 +-
 .../TestUsageTrackingFilterCachingPolicy.java   |   2 +-
 .../apache/lucene/search/TestWANDScorer.java    | 394 +++++++++++++++
 .../search/spans/JustCompileSearchSpans.java    |   3 +-
 .../search/spans/TestFieldMaskingSpanQuery.java |  15 +-
 .../search/spans/TestNearSpansOrdered.java      |  29 +-
 .../lucene/search/spans/TestSpanCollection.java |   7 +-
 .../search/spans/TestSpanContainQuery.java      |   3 +-
 .../apache/lucene/search/spans/TestSpans.java   |  11 +-
 .../apache/lucene/expressions/FakeScorer.java   |   5 +
 .../org/apache/lucene/facet/DrillSideways.java  |  11 +-
 .../apache/lucene/facet/DrillSidewaysQuery.java |   7 +-
 .../lucene/facet/DrillSidewaysScorer.java       |   5 +
 .../apache/lucene/facet/FacetsCollector.java    |   7 +-
 .../apache/lucene/facet/range/DoubleRange.java  |   5 +-
 .../facet/range/DoubleRangeFacetCounts.java     |   3 +-
 .../apache/lucene/facet/range/LongRange.java    |   5 +-
 .../facet/range/LongRangeFacetCounts.java       |   3 +-
 .../facet/AssertingSubDocsAtOnceCollector.java  |   5 +-
 .../apache/lucene/facet/TestDrillSideways.java  |   7 +-
 .../facet/range/TestRangeFacetCounts.java       |   5 +-
 .../search/grouping/AllGroupHeadsCollector.java |   5 +-
 .../search/grouping/AllGroupsCollector.java     |   5 +-
 .../search/grouping/BlockGroupingCollector.java |   5 +-
 .../grouping/DistinctValuesCollector.java       |   5 +-
 .../lucene/search/grouping/FakeScorer.java      |   5 +
 .../grouping/FirstPassGroupingCollector.java    |   5 +-
 .../search/grouping/GroupFacetCollector.java    |   5 +-
 .../lucene/search/grouping/GroupingSearch.java  |   3 +-
 .../grouping/SecondPassGroupingCollector.java   |   5 +-
 .../lucene/search/grouping/TestGrouping.java    |   5 +-
 .../search/highlight/QueryTermExtractor.java    |   3 +-
 .../highlight/WeightedSpanTermExtractor.java    |   9 +-
 .../lucene/search/uhighlight/PhraseHelper.java  |   7 +-
 .../search/uhighlight/UnifiedHighlighter.java   |   3 +-
 .../search/highlight/HighlighterPhraseTest.java |   5 +-
 .../uhighlight/TestUnifiedHighlighterMTQ.java   |   5 +-
 .../TestUnifiedHighlighterStrictPhrases.java    |   5 +-
 .../search/join/BaseGlobalOrdinalScorer.java    |   5 +
 .../apache/lucene/search/join/FakeScorer.java   |   5 +
 .../search/join/GenericTermsCollector.java      |   4 +-
 .../search/join/GlobalOrdinalsCollector.java    |   4 +-
 .../lucene/search/join/GlobalOrdinalsQuery.java |   4 +-
 .../join/GlobalOrdinalsWithScoreCollector.java  |   8 +-
 .../join/GlobalOrdinalsWithScoreQuery.java      |   8 +-
 .../org/apache/lucene/search/join/JoinUtil.java |   8 +-
 .../join/ParentChildrenBlockJoinQuery.java      |   8 +-
 .../join/PointInSetIncludingScoreQuery.java     |   7 +-
 .../lucene/search/join/QueryBitSetProducer.java |   2 +-
 .../lucene/search/join/TermsCollector.java      |   4 +-
 .../search/join/TermsIncludingScoreQuery.java   |  11 +-
 .../search/join/TermsWithScoreCollector.java    |   4 +-
 .../search/join/ToChildBlockJoinQuery.java      |   9 +-
 .../search/join/ToParentBlockJoinQuery.java     |  15 +-
 .../lucene/search/join/TestBlockJoin.java       |  21 +-
 .../search/join/TestBlockJoinValidation.java    |   2 +-
 .../apache/lucene/search/join/TestJoinUtil.java |  28 +-
 .../apache/lucene/index/memory/MemoryIndex.java |   5 +-
 .../apache/lucene/index/PKIndexSplitter.java    |   4 +-
 .../search/DiversifiedTopDocsCollector.java     |   4 +-
 .../lucene/search/DocValuesStatsCollector.java  |   4 +-
 .../search/TestDiversifiedTopDocsCollector.java |   5 +
 .../apache/lucene/queries/BoostingQuery.java    |  19 +-
 .../apache/lucene/queries/CustomScoreQuery.java |  16 +-
 .../lucene/queries/function/BoostedQuery.java   |  14 +-
 .../queries/function/FunctionMatchQuery.java    |   3 +-
 .../lucene/queries/function/FunctionQuery.java  |   8 +-
 .../queries/function/FunctionRangeQuery.java    |   3 +-
 .../queries/function/FunctionScoreQuery.java    |  11 +-
 .../lucene/queries/function/ValueSource.java    |   5 +
 .../queries/function/ValueSourceScorer.java     |   5 +
 .../function/valuesource/QueryValueSource.java  |   3 +-
 .../queries/payloads/PayloadScoreQuery.java     |   7 +-
 .../queries/payloads/SpanPayloadCheckQuery.java |   7 +-
 .../function/TestIndexReaderFunctions.java      |   5 +-
 .../queries/payloads/TestPayloadSpans.java      |  31 +-
 .../queries/payloads/TestPayloadTermQuery.java  |   5 +-
 .../surround/query/BooleanQueryTst.java         |   5 +-
 .../document/LatLonDocValuesBoxQuery.java       |   3 +-
 .../document/LatLonDocValuesDistanceQuery.java  |   3 +-
 .../document/LatLonPointDistanceQuery.java      |   3 +-
 .../document/LatLonPointInPolygonQuery.java     |   3 +-
 .../apache/lucene/payloads/PayloadSpanUtil.java |   3 +-
 .../org/apache/lucene/search/CoveringQuery.java |   4 +-
 .../apache/lucene/search/CoveringScorer.java    |   6 +
 .../lucene/search/DocValuesNumbersQuery.java    |   2 +-
 .../lucene/search/DocValuesTermsQuery.java      |   2 +-
 .../lucene/search/TermAutomatonQuery.java       |   2 +-
 .../lucene/search/TermAutomatonScorer.java      |   6 +-
 .../sandbox/queries/FuzzyLikeThisQueryTest.java |   9 +-
 .../lucene/search/TestTermAutomatonQuery.java   |   2 +-
 .../spatial/composite/CompositeVerifyQuery.java |   5 +-
 .../composite/IntersectsRPTVerifyQuery.java     |   3 +-
 .../spatial/prefix/AbstractPrefixTreeQuery.java |   3 +-
 .../serialized/SerializedDVStrategy.java        |   3 +-
 .../spatial/vector/PointVectorStrategy.java     |   5 +-
 .../spatial/prefix/NumberRangeFacetsTest.java   |   5 +-
 .../spatial3d/PointInGeo3DShapeQuery.java       |   3 +-
 .../apache/lucene/spatial3d/TestGeo3DPoint.java |   5 +-
 .../search/suggest/document/ContextQuery.java   |   5 +-
 .../suggest/document/FuzzyCompletionQuery.java  |   3 +-
 .../suggest/document/PrefixCompletionQuery.java |   3 +-
 .../suggest/document/RegexCompletionQuery.java  |   3 +-
 .../suggest/document/SuggestIndexSearcher.java  |   2 +-
 .../document/TopSuggestDocsCollector.java       |   5 +-
 .../apache/lucene/geo/BaseGeoPointTestCase.java |  17 +-
 .../lucene/search/AssertingBulkScorer.java      |  12 +-
 .../lucene/search/AssertingCollector.java       |   2 +-
 .../lucene/search/AssertingIndexSearcher.java   |   4 +-
 .../lucene/search/AssertingLeafCollector.java   |   6 +-
 .../apache/lucene/search/AssertingQuery.java    |   4 +-
 .../apache/lucene/search/AssertingScorer.java   |  30 +-
 .../apache/lucene/search/AssertingWeight.java   |  12 +-
 .../search/BaseRangeFieldQueryTestCase.java     |   2 +-
 .../lucene/search/BulkScorerWrapperScorer.java  |   5 +
 .../org/apache/lucene/search/CheckHits.java     |   8 +-
 .../org/apache/lucene/search/QueryUtils.java    |  22 +-
 .../lucene/search/RandomApproximationQuery.java |   9 +-
 .../lucene/search/ShardSearchingTestBase.java   |   2 +-
 .../similarities/AssertingSimilarity.java       |   9 +-
 .../similarities/BaseSimilarityTestCase.java    |   2 +
 .../lucene/search/spans/AssertingSpanQuery.java |   5 +-
 .../org/apache/lucene/util/LuceneTestCase.java  |   3 +
 .../search/TestBaseExplanationTestCase.java     |   5 +-
 solr/CHANGES.txt                                |   2 +
 .../analytics/facet/AbstractSolrQueryFacet.java |   5 +-
 .../java/org/apache/solr/ltr/LTRRescorer.java   |   5 +-
 .../org/apache/solr/ltr/LTRScoringQuery.java    |  22 +-
 .../org/apache/solr/ltr/feature/Feature.java    |   4 +
 .../solr/ltr/feature/FieldLengthFeature.java    |   5 +
 .../solr/ltr/feature/FieldValueFeature.java     |   5 +
 .../solr/ltr/feature/OriginalScoreFeature.java  |   8 +-
 .../apache/solr/ltr/feature/SolrFeature.java    |   8 +-
 .../LTRFeatureLoggerTransformerFactory.java     |   3 +-
 .../solr/ltr/TestLTRReRankingPipeline.java      |   5 +-
 .../apache/solr/ltr/TestLTRScoringQuery.java    |   3 +-
 .../solr/ltr/TestSelectiveWeightCreation.java   |   3 +-
 .../org/apache/solr/cloud/CreateAliasCmd.java   |  36 +-
 .../solr/handler/component/ExpandComponent.java |   9 +-
 .../solr/handler/component/QueryComponent.java  |   5 +
 .../handler/component/RealTimeGetComponent.java |   3 +-
 .../java/org/apache/solr/query/FilterQuery.java |   7 +-
 .../org/apache/solr/query/SolrRangeQuery.java   |   7 +-
 .../java/org/apache/solr/schema/LatLonType.java |   8 +-
 .../apache/solr/search/AbstractReRankQuery.java |   6 +-
 .../solr/search/CollapsingQParserPlugin.java    |  14 +-
 .../apache/solr/search/DelegatingCollector.java |   5 +-
 .../org/apache/solr/search/DocSetCollector.java |   5 +-
 .../apache/solr/search/ExportQParserPlugin.java |   9 +-
 .../src/java/org/apache/solr/search/Filter.java |   3 +-
 .../solr/search/GraphTermsQParserPlugin.java    |   5 +-
 .../apache/solr/search/HashQParserPlugin.java   |   6 +-
 .../apache/solr/search/JoinQParserPlugin.java   |   3 +-
 .../apache/solr/search/QueryWrapperFilter.java  |   3 +-
 .../org/apache/solr/search/ReRankCollector.java |   5 +-
 .../solr/search/SolrConstantScoreQuery.java     |   3 +-
 .../apache/solr/search/SolrIndexSearcher.java   |  14 +-
 .../org/apache/solr/search/WrappedQuery.java    |   5 +-
 .../facet/FacetFieldProcessorByHashDV.java      |   7 +-
 .../org/apache/solr/search/join/GraphQuery.java |   8 +-
 .../solr/search/join/GraphTermsCollector.java   |   5 +-
 .../search/join/ScoreJoinQParserPlugin.java     |  12 +-
 .../solr/search/stats/ExactStatsCache.java      |   3 +-
 .../solr/update/DeleteByQueryWrapper.java       |   5 +-
 .../apache/solr/cloud/AliasIntegrationTest.java |  10 +-
 .../solr/search/TestQueryWrapperFilter.java     |   5 +-
 .../apache/solr/search/TestRankQueryPlugin.java |  18 +-
 .../uninverting/TestFieldCacheSortRandom.java   |   3 +-
 solr/solr-ref-guide/src/collections-api.adoc    |  11 +
 .../src/solrcloud-autoscaling-api.adoc          |  51 ++
 300 files changed, 2896 insertions(+), 745 deletions(-)
----------------------------------------------------------------------