Package org.apache.lucene.document

# Class ShapeDocValuesField

java.lang.Object
org.apache.lucene.document.Field
org.apache.lucene.document.ShapeDocValuesField

All Implemented Interfaces:
  `IndexableField`

Direct Known Subclasses:
  `LatLonShapeDocValuesField`, `XYShapeDocValuesField`

public abstract class ShapeDocValuesField extends Field
A doc values field for `LatLonShape` and `XYShape` that uses `ShapeDocValues` as the underlying binary doc value format.

Note that this class cannot be instantiated directly due to different encodings `XYEncodingUtils` and `GeoEncodingUtils`

Concrete Implementations include: `LatLonShapeDocValuesField` and `XYShapeDocValuesField`

WARNING: This API is experimental and might change in incompatible ways in the next release.

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.lucene.document.Field

`Field.Store`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final FieldType`
`FIELD_TYPE`
FieldType for ShapeDocValues field
`protected final org.apache.lucene.document.ShapeDocValues`
`shapeDocValues`
the binary doc value format for this field

### Fields inherited from class org.apache.lucene.document.Field

`fieldsData, name, type`

## Method Summary

Modifier and Type
Method
Description
`protected abstract double`
`decodeX(int encoded)`
decodes x coordinates from encoded space
`protected abstract double`
`decodeY(int encoded)`
decodes y coordinates from encoded space
`IndexableFieldType`
`fieldType()`
Gets the `IndexableFieldType` for this ShapeDocValue field
`abstract Geometry`
`getBoundingBox()`
retrieves the bounding box for the geometry
`abstract Geometry`
`getCentroid()`
retrieves the centroid location for the geometry
`ShapeField.DecodedTriangle.TYPE`
`getHighestDimensionType()`
Retrieves the highest dimensional type (POINT, LINE, TRIANGLE) for computing the geometry(s) centroid
`String`
`name()`
The name of the field
`static Query`
`newGeometryQuery(String field, ShapeField.QueryRelation relation, Object... geometries)`
Creates a geometry query for shape docvalues
`int`
`numberOfTerms()`
Returns the number of terms (tessellated triangles) for this shape
`String`
`stringValue()`
Currently there is no string representation for the ShapeDocValueField
`TokenStream`
`tokenStream(Analyzer analyzer, TokenStream reuse)`
TokenStreams are not yet supported

### Methods inherited from class org.apache.lucene.document.Field

`binaryValue, getCharSequenceValue, invertableType, numericValue, readerValue, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setStringValue, setTokenStream, storedValue, tokenStreamValue, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### shapeDocValues

protected final org.apache.lucene.document.ShapeDocValues shapeDocValues
the binary doc value format for this field

### FIELD_TYPE

protected static final FieldType FIELD_TYPE
FieldType for ShapeDocValues field

## Method Details

### name

public String name()
The name of the field

Specified by:
  `name` in interface `IndexableField`
Overrides:
  `name` in class `Field`

### fieldType

public IndexableFieldType fieldType()
Gets the `IndexableFieldType` for this ShapeDocValue field

Specified by:
  `fieldType` in interface `IndexableField`
Overrides:
  `fieldType` in class `Field`

### stringValue

public String stringValue()
Currently there is no string representation for the ShapeDocValueField

Specified by:
  `stringValue` in interface `IndexableField`
Overrides:
  `stringValue` in class `Field`

### tokenStream

public TokenStream tokenStream(Analyzer analyzer, TokenStream reuse)
TokenStreams are not yet supported

Specified by:
  `tokenStream` in interface `IndexableField`
Overrides:
  `tokenStream` in class `Field`
Parameters:
  `analyzer` - Analyzer that should be used to create the TokenStreams from
  `reuse` - TokenStream for a previous instance of this field name. This allows custom field types (like StringField and NumericField) that do not use the analyzer to still have good performance. Note: the passed-in type may be inappropriate, for example if you mix up different types of Fields for the same field name. So it's the responsibility of the implementation to check.
Returns:
  TokenStream value for indexing the document. Should always return a non-null value if the field is to be indexed

### numberOfTerms

public int numberOfTerms()
Returns the number of terms (tessellated triangles) for this shape

### newGeometryQuery

public static Query newGeometryQuery(String field, ShapeField.QueryRelation relation, Object... geometries)
Creates a geometry query for shape docvalues

### getCentroid

public abstract Geometry getCentroid()
retrieves the centroid location for the geometry

### getBoundingBox

public abstract Geometry getBoundingBox()
retrieves the bounding box for the geometry

### getHighestDimensionType

public ShapeField.DecodedTriangle.TYPE getHighestDimensionType()
Retrieves the highest dimensional type (POINT, LINE, TRIANGLE) for computing the geometry(s) centroid

### decodeX

protected abstract double decodeX(int encoded)
decodes x coordinates from encoded space

### decodeY

protected abstract double decodeY(int encoded)
decodes y coordinates from encoded space