public class BBoxStrategy extends SpatialStrategy
SpatialOperation
s and
has a custom overlap relevancy. It is based on GeoPortal's SpatialClauseAdapter.
Characteristics:
SpatialOperation
s but not Overlaps.Implementation:
This uses 4 double fields for minX, maxX, minY, maxY
and a boolean to mark a dateline cross. Depending on the particular SpatialOperation
s, there are a variety of range queries on DoublePoint
s to be
done.
The makeOverlapRatioValueSource(org.locationtech.spatial4j.shape.Rectangle, double)
works by calculating the query bbox overlap percentage against the indexed
shape overlap percentage. The indexed shape's coordinates are retrieved from
LeafReader.getNumericDocValues(java.lang.String)
.
Modifier and Type | Field and Description |
---|---|
static FieldType |
DEFAULT_FIELDTYPE
pointValues, docValues, and nothing else.
|
static LegacyFieldType |
LEGACY_FIELDTYPE
Deprecated.
|
static String |
SUFFIX_MAXX |
static String |
SUFFIX_MAXY |
static String |
SUFFIX_MINX |
static String |
SUFFIX_MINY |
static String |
SUFFIX_XDL |
ctx
Constructor and Description |
---|
BBoxStrategy(org.locationtech.spatial4j.context.SpatialContext ctx,
String fieldNamePrefix,
FieldType fieldType)
Creates this strategy.
|
Modifier and Type | Method and Description |
---|---|
Field[] |
createIndexableFields(org.locationtech.spatial4j.shape.Shape shape) |
FieldType |
getFieldType()
Returns a field type representing the set of field options.
|
DoubleValuesSource |
makeDistanceValueSource(org.locationtech.spatial4j.shape.Point queryPoint,
double multiplier) |
DoubleValuesSource |
makeOverlapRatioValueSource(org.locationtech.spatial4j.shape.Rectangle queryBox,
double queryTargetProportion)
Returns a similarity based on
BBoxOverlapRatioValueSource . |
Query |
makeQuery(SpatialArgs args) |
ShapeValuesSource |
makeShapeValueSource()
Provides access to each rectangle per document
|
static BBoxStrategy |
newInstance(org.locationtech.spatial4j.context.SpatialContext ctx,
String fieldNamePrefix)
Creates a new
BBoxStrategy instance that uses DoublePoint and DoublePoint.newRangeQuery(java.lang.String, double, double) |
static BBoxStrategy |
newLegacyInstance(org.locationtech.spatial4j.context.SpatialContext ctx,
String fieldNamePrefix)
Deprecated.
LegacyNumerics will be removed
|
getFieldName, getSpatialContext, makeDistanceValueSource, makeRecipDistanceValueSource, toString
public static FieldType DEFAULT_FIELDTYPE
@Deprecated public static LegacyFieldType LEGACY_FIELDTYPE
public static final String SUFFIX_MINX
public static final String SUFFIX_MAXX
public static final String SUFFIX_MINY
public static final String SUFFIX_MAXY
public static final String SUFFIX_XDL
public BBoxStrategy(org.locationtech.spatial4j.context.SpatialContext ctx, String fieldNamePrefix, FieldType fieldType)
fieldType
is used to customize the indexing options of the 4 number fields, and to a lesser degree the XDL
field too. Search requires pointValues (or legacy numerics), and relevancy requires docValues. If these features
aren't needed then disable them.public static BBoxStrategy newInstance(org.locationtech.spatial4j.context.SpatialContext ctx, String fieldNamePrefix)
BBoxStrategy
instance that uses DoublePoint
and DoublePoint.newRangeQuery(java.lang.String, double, double)
@Deprecated public static BBoxStrategy newLegacyInstance(org.locationtech.spatial4j.context.SpatialContext ctx, String fieldNamePrefix)
BBoxStrategy
instance that uses LegacyDoubleField
for backwards compatibilitypublic FieldType getFieldType()
public Field[] createIndexableFields(org.locationtech.spatial4j.shape.Shape shape)
createIndexableFields
in class SpatialStrategy
public ShapeValuesSource makeShapeValueSource()
public DoubleValuesSource makeDistanceValueSource(org.locationtech.spatial4j.shape.Point queryPoint, double multiplier)
makeDistanceValueSource
in class SpatialStrategy
public DoubleValuesSource makeOverlapRatioValueSource(org.locationtech.spatial4j.shape.Rectangle queryBox, double queryTargetProportion)
BBoxOverlapRatioValueSource
. This is just a
convenience method.public Query makeQuery(SpatialArgs args)
makeQuery
in class SpatialStrategy
Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.