diff --git a/lucene/build.xml b/lucene/build.xml index 131c04fe53e..b2412ea4dfd 100644 --- a/lucene/build.xml +++ b/lucene/build.xml @@ -256,7 +256,7 @@ - + diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarity.java b/lucene/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarity.java index d0779207038..ed685dba1b4 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarity.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxSimilarity.java @@ -21,6 +21,8 @@ import org.apache.lucene.search.Explanation; import com.spatial4j.core.shape.Rectangle; /** + * Abstraction of the calculation used to determine how similar two Bounding Boxes are. + * * @lucene.experimental */ public interface BBoxSimilarity { diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PointPrefixTreeFieldCacheProvider.java b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PointPrefixTreeFieldCacheProvider.java index 5a17741e195..812685acb43 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PointPrefixTreeFieldCacheProvider.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PointPrefixTreeFieldCacheProvider.java @@ -24,6 +24,11 @@ import org.apache.lucene.spatial.util.ShapeFieldCacheProvider; import org.apache.lucene.util.BytesRef; /** + * Implementation of {@link ShapeFieldCacheProvider} designed for {@link PrefixTreeStrategy}s. + * + * Note, due to the fragmented representation of Shapes in these Strategies, this implementation + * can only retrieve the central {@link Point} of the original Shapes. + * * @lucene.internal */ public class PointPrefixTreeFieldCacheProvider extends ShapeFieldCacheProvider { diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java index 66226035750..7c31d3e2926 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java @@ -37,6 +37,8 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** + * Abstract SpatialStrategy which provides common functionality for those + * Strategys which use {@link SpatialPrefixTree}s * @lucene.internal */ public abstract class PrefixTreeStrategy extends SpatialStrategy { diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/GeohashPrefixTree.java b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/GeohashPrefixTree.java index f8366187ce0..5bf0c8957fc 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/GeohashPrefixTree.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/GeohashPrefixTree.java @@ -35,6 +35,9 @@ import java.util.List; */ public class GeohashPrefixTree extends SpatialPrefixTree { + /** + * Factory for creating {@link GeohashPrefixTree} instances with useful defaults + */ public static class Factory extends SpatialPrefixTreeFactory { @Override diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java index a41bb82ceb0..d19af379725 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/QuadPrefixTree.java @@ -31,10 +31,16 @@ import java.util.List; import java.util.Locale; /** + * Implementation of {@link SpatialPrefixTree} which uses a quad tree + * (http://en.wikipedia.org/wiki/Quadtree) + * * @lucene.experimental */ public class QuadPrefixTree extends SpatialPrefixTree { + /** + * Factory for creating {@link QuadPrefixTree} instances with useful defaults + */ public static class Factory extends SpatialPrefixTreeFactory { @Override diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeFactory.java b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeFactory.java index 0a405b29c82..bbb01df0d22 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeFactory.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeFactory.java @@ -23,6 +23,9 @@ import com.spatial4j.core.distance.DistanceUtils; import java.util.Map; /** + * Abstract Factory for creating {@link SpatialPrefixTree} instances with useful + * defaults and passed on configurations defined in a Map. + * * @lucene.experimental */ public abstract class SpatialPrefixTreeFactory { diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCache.java b/lucene/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCache.java index 93a829f021e..367e581bfe1 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCache.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCache.java @@ -23,6 +23,9 @@ import java.util.ArrayList; import java.util.List; /** + * Bounded Cache of Shapes associated with docIds. Note, multiple Shapes can be + * associated with a given docId + * * @lucene.internal */ public class ShapeFieldCache { diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheProvider.java b/lucene/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheProvider.java index ef587bf9911..a0317e96a0d 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheProvider.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/util/ShapeFieldCacheProvider.java @@ -27,6 +27,12 @@ import java.util.WeakHashMap; import java.util.logging.Logger; /** + * Provides access to a {@link ShapeFieldCache} for a given {@link AtomicReader}. + * + * If a Cache does not exist for the Reader, then it is built by iterating over + * the all terms for a given field, reconstructing the Shape from them, and adding + * them to the Cache. + * * @lucene.internal */ public abstract class ShapeFieldCacheProvider { diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/vector/TwoDoublesStrategy.java b/lucene/spatial/src/java/org/apache/lucene/spatial/vector/TwoDoublesStrategy.java index db53e4fd1d9..0e8253dd795 100644 --- a/lucene/spatial/src/java/org/apache/lucene/spatial/vector/TwoDoublesStrategy.java +++ b/lucene/spatial/src/java/org/apache/lucene/spatial/vector/TwoDoublesStrategy.java @@ -45,6 +45,15 @@ import org.apache.lucene.spatial.util.CachingDoubleValueSource; import org.apache.lucene.spatial.util.ValueSourceFilter; /** + * Simple {@link SpatialStrategy} which represents Points in two numeric {@link DoubleField}s. + * + * Note, currently only Points can be indexed by this Strategy. At query time, the bounding + * box of the given Shape is used to create {@link NumericRangeQuery}s to efficiently + * find Points within the Shape. + * + * Due to the simple use of numeric fields, this Strategy provides support for sorting by + * distance through {@link DistanceValueSource} + * * @lucene.experimental */ public class TwoDoublesStrategy extends SpatialStrategy {