Package org.apache.solr.legacy
Class BBoxStrategy
java.lang.Object
org.apache.lucene.spatial.SpatialStrategy
org.apache.solr.legacy.BBoxStrategy
Deprecated.
A SpatialStrategy for indexing and searching Rectangles by storing its coordinates in numeric
fields. It supports all
SpatialOperations and has a custom overlap relevancy. It is based
on GeoPortal's SpatialClauseAdapter.
Characteristics:
- Only indexes Rectangles; just one per field value. Other shapes can be provided and the bounding box will be used.
- Can query only by a Rectangle. Providing other shapes is an error.
- Supports most
SpatialOperations but not Overlaps. - Uses the DocValues API for any sorting / relevancy.
Implementation:
This uses 4 double fields for minX, maxX, minY, maxY and a boolean to mark a dateline cross.
Depending on the particular SpatialOperations, there are a variety of range queries on
DoublePoints 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).
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic org.apache.lucene.document.FieldTypeDeprecated.pointValues, docValues, and nothing else.static LegacyFieldTypeDeprecated.static final StringDeprecated.static final StringDeprecated.static final StringDeprecated.static final StringDeprecated.static final StringDeprecated.Fields inherited from class org.apache.lucene.spatial.SpatialStrategy
ctx -
Constructor Summary
ConstructorsConstructorDescriptionBBoxStrategy(org.locationtech.spatial4j.context.SpatialContext ctx, String fieldNamePrefix, org.apache.lucene.document.FieldType fieldType) Deprecated.Creates this strategy. -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.lucene.document.Field[]createIndexableFields(org.locationtech.spatial4j.shape.Shape shape) Deprecated.org.apache.lucene.document.FieldTypeDeprecated.Returns a field type representing the set of field options.org.apache.lucene.search.DoubleValuesSourcemakeDistanceValueSource(org.locationtech.spatial4j.shape.Point queryPoint, double multiplier) Deprecated.org.apache.lucene.search.DoubleValuesSourcemakeOverlapRatioValueSource(org.locationtech.spatial4j.shape.Rectangle queryBox, double queryTargetProportion) Deprecated.Returns a similarity based onBBoxOverlapRatioValueSource.org.apache.lucene.search.QuerymakeQuery(org.apache.lucene.spatial.query.SpatialArgs args) Deprecated.org.apache.lucene.spatial.ShapeValuesSourceDeprecated.Provides access to each rectangle per documentstatic BBoxStrategynewInstance(org.locationtech.spatial4j.context.SpatialContext ctx, String fieldNamePrefix) Deprecated.Creates a newBBoxStrategyinstance that usesDoublePointandDoublePoint.newRangeQuery(java.lang.String, double, double)static BBoxStrategynewLegacyInstance(org.locationtech.spatial4j.context.SpatialContext ctx, String fieldNamePrefix) Deprecated.LegacyNumerics will be removedMethods inherited from class org.apache.lucene.spatial.SpatialStrategy
getFieldName, getSpatialContext, makeDistanceValueSource, makeRecipDistanceValueSource, toString
-
Field Details
-
DEFAULT_FIELDTYPE
public static org.apache.lucene.document.FieldType DEFAULT_FIELDTYPEDeprecated.pointValues, docValues, and nothing else. -
LEGACY_FIELDTYPE
Deprecated. -
SUFFIX_MINX
Deprecated.- See Also:
-
SUFFIX_MAXX
Deprecated.- See Also:
-
SUFFIX_MINY
Deprecated.- See Also:
-
SUFFIX_MAXY
Deprecated.- See Also:
-
SUFFIX_XDL
Deprecated.- See Also:
-
-
Constructor Details
-
BBoxStrategy
public BBoxStrategy(org.locationtech.spatial4j.context.SpatialContext ctx, String fieldNamePrefix, org.apache.lucene.document.FieldType fieldType) Deprecated.Creates this strategy.fieldTypeis 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.
-
-
Method Details
-
newInstance
public static BBoxStrategy newInstance(org.locationtech.spatial4j.context.SpatialContext ctx, String fieldNamePrefix) Deprecated.Creates a newBBoxStrategyinstance that usesDoublePointandDoublePoint.newRangeQuery(java.lang.String, double, double) -
newLegacyInstance
@Deprecated public static BBoxStrategy newLegacyInstance(org.locationtech.spatial4j.context.SpatialContext ctx, String fieldNamePrefix) Deprecated.LegacyNumerics will be removedCreates a newBBoxStrategyinstance that usesLegacyDoubleFieldfor backwards compatibility -
getFieldType
public org.apache.lucene.document.FieldType getFieldType()Deprecated.Returns a field type representing the set of field options. This is identical to what was passed into the constructor. It's frozen. -
createIndexableFields
public org.apache.lucene.document.Field[] createIndexableFields(org.locationtech.spatial4j.shape.Shape shape) Deprecated.- Specified by:
createIndexableFieldsin classorg.apache.lucene.spatial.SpatialStrategy
-
makeShapeValueSource
public org.apache.lucene.spatial.ShapeValuesSource makeShapeValueSource()Deprecated.Provides access to each rectangle per document -
makeDistanceValueSource
public org.apache.lucene.search.DoubleValuesSource makeDistanceValueSource(org.locationtech.spatial4j.shape.Point queryPoint, double multiplier) Deprecated.- Specified by:
makeDistanceValueSourcein classorg.apache.lucene.spatial.SpatialStrategy
-
makeOverlapRatioValueSource
public org.apache.lucene.search.DoubleValuesSource makeOverlapRatioValueSource(org.locationtech.spatial4j.shape.Rectangle queryBox, double queryTargetProportion) Deprecated.Returns a similarity based onBBoxOverlapRatioValueSource. This is just a convenience method. -
makeQuery
public org.apache.lucene.search.Query makeQuery(org.apache.lucene.spatial.query.SpatialArgs args) Deprecated.- Specified by:
makeQueryin classorg.apache.lucene.spatial.SpatialStrategy
-