Class XYShape

java.lang.Object
org.apache.lucene.document.XYShape

public class XYShape extends Object
A cartesian shape utility class for indexing and searching geometries whose vertices are unitless x, y values.

This class defines seven static factory methods for common indexing and search operations:

WARNING: Like LatLonPoint, vertex values are indexed with some loss of precision from the original double values.
See Also:
  • Method Details

    • createIndexableFields

      public static Field[] createIndexableFields(String fieldName, XYPolygon polygon)
      create indexable fields for cartesian polygon geometry
    • createDocValueField

      public static XYShapeDocValuesField createDocValueField(String fieldName, XYPolygon polygon)
      create doc value field for X,Y polygon geometry without creating indexable fields
    • createIndexableFields

      public static Field[] createIndexableFields(String fieldName, XYPolygon polygon, boolean checkSelfIntersections)
      create indexable fields for cartesian polygon geometry. If checkSelfIntersections is set to true, the validity of the provided polygon is checked with a small performance penalty.
    • createDocValueField

      public static XYShapeDocValuesField createDocValueField(String fieldName, XYPolygon polygon, boolean checkSelfIntersections)
      create doc value field for lat lon polygon geometry without creating indexable fields.
    • createIndexableFields

      public static Field[] createIndexableFields(String fieldName, XYLine line)
      create indexable fields for cartesian line geometry
    • createDocValueField

      public static XYShapeDocValuesField createDocValueField(String fieldName, XYLine line)
      create doc value field for x, y line geometry without creating indexable fields.
    • createIndexableFields

      public static Field[] createIndexableFields(String fieldName, float x, float y)
      create indexable fields for cartesian point geometry
    • createDocValueField

      public static XYShapeDocValuesField createDocValueField(String fieldName, float x, float y)
      create a XYShapeDocValuesField for cartesian points without creating indexable fields.
    • createDocValueField

      public static XYShapeDocValuesField createDocValueField(String fieldName, BytesRef binaryValue)
      create a XYShapeDocValuesField from an existing encoded representation
    • createDocValueField

      public static XYShapeDocValuesField createDocValueField(String fieldName, List<ShapeField.DecodedTriangle> tessellation)
      create a XYShapeDocValuesField from a precomputed tessellation
    • newBoxQuery

      public static Query newBoxQuery(String field, ShapeField.QueryRelation queryRelation, float minX, float maxX, float minY, float maxY)
      create a query to find all cartesian shapes that intersect a defined bounding box *
    • newSlowDocValuesBoxQuery

      public static Query newSlowDocValuesBoxQuery(String field, ShapeField.QueryRelation queryRelation, float minX, float maxX, float minY, float maxY)
      create a docvalue query to find all cartesian shapes that intersect a defined bounding box *
    • newLineQuery

      public static Query newLineQuery(String field, ShapeField.QueryRelation queryRelation, XYLine... lines)
      create a query to find all cartesian shapes that intersect a provided linestring (or array of linestrings) *
    • newPolygonQuery

      public static Query newPolygonQuery(String field, ShapeField.QueryRelation queryRelation, XYPolygon... polygons)
      create a query to find all cartesian shapes that intersect a provided polygon (or array of polygons) *
    • newPointQuery

      public static Query newPointQuery(String field, ShapeField.QueryRelation queryRelation, float[]... points)
      create a query to find all indexed shapes that comply the ShapeField.QueryRelation with the provided point
    • newDistanceQuery

      public static Query newDistanceQuery(String field, ShapeField.QueryRelation queryRelation, XYCircle... circle)
      create a query to find all cartesian shapes that intersect a provided circle (or arrays of circles) *
    • newGeometryQuery

      public static Query newGeometryQuery(String field, ShapeField.QueryRelation queryRelation, XYGeometry... xyGeometries)
      create a query to find all indexed geo shapes that intersect a provided geometry collection note: Components do not support dateline crossing
    • createXYShapeDocValues

      public static XYShapeDocValues createXYShapeDocValues(BytesRef bytesRef)
      Factory method for creating the XYShapeDocValues
      Parameters:
      bytesRef - BytesRef
      Returns:
      XYShapeDocValues