ShapeDocValuesField (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.document, class: ShapeDocValuesField

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