org.apache.solr.schema

## Class PointType

- java.lang.Object
- - org.apache.solr.schema.FieldProperties
  - - org.apache.solr.schema.FieldType
    - - org.apache.solr.schema.AbstractSubTypeFieldType
      - - org.apache.solr.schema.CoordinateFieldType
        - - org.apache.solr.schema.PointType

- All Implemented Interfaces:
    SchemaAware, SpatialQueryable

      public class PointType
      extends CoordinateFieldType
      implements SpatialQueryable

  A point type that indexes a point in an n-dimensional space as separate fields and supports range queries. See `LatLonType` for geo-spatial queries.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.solr.schema.FieldType

      `FieldType.DefaultAnalyzer, FieldType.MultiValueSelector`

  - ### Field Summary

    - ### Fields inherited from class org.apache.solr.schema.CoordinateFieldType

      `DEFAULT_DIMENSION, dimension, DIMENSION`

    - ### Fields inherited from class org.apache.solr.schema.AbstractSubTypeFieldType

      `dynFieldProps, schema, SUB_FIELD_SUFFIX, SUB_FIELD_TYPE, subFieldType, subSuffix, subType, suffix, suffixes`

    - ### Fields inherited from class org.apache.solr.schema.FieldType

      `ANALYZER, args, CHAR_FILTER, CHAR_FILTERS, CLASS_NAME, docValuesFormat, falseProperties, FILTER, FILTERS, INDEX, INDEX_ANALYZER, MULTI_TERM, MULTI_TERM_ANALYZER, POLY_FIELD_SEPARATOR, postingsFormat, properties, QUERY, QUERY_ANALYZER, similarity, SIMILARITY, similarityFactory, TOKENIZER, trueProperties, TYPE, TYPE_NAME, typeName`

    - ### Fields inherited from class org.apache.solr.schema.FieldProperties

      `BINARY, DOC_VALUES, INDEXED, MULTIVALUED, OMIT_NORMS, OMIT_POSITIONS, OMIT_TF_POSITIONS, REQUIRED, SORT_MISSING_FIRST, SORT_MISSING_LAST, STORE_OFFSETS, STORE_TERMOFFSETS, STORE_TERMPAYLOADS, STORE_TERMPOSITIONS, STORE_TERMVECTORS, STORED, TOKENIZED, USE_DOCVALUES_AS_STORED`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PointType()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `IndexableField` | `createField(SchemaField field, Object value, float boost)` It never makes sense to create a single field, so make it impossible to happen by throwing UnsupportedOperationException
    `List<IndexableField>` | `createFields(SchemaField field, Object value, float boost)` Given a `SchemaField`, create one or more `IndexableField` instances
    `Query` | `createSpatialQuery(QParser parser, SpatialOptions options)` Calculates the range and creates a RangeQuery (bounding box) wrapped in a BooleanQuery (unless the dimension is 1, one range for every dimension, AND'd together by a Boolean
    `Query` | `getFieldQuery(QParser parser, SchemaField field, String externalVal)` Throws UnsupportedOperationException()
    `Query` | `getRangeQuery(QParser parser, SchemaField field, String part1, String part2, boolean minInclusive, boolean maxInclusive)` Returns a Query instance for doing range searches on this field type.
    `SortField` | `getSortField(SchemaField field, boolean top)` Returns the SortField instance that should be used to sort fields of this type.
    `double` | `getSphereRadius()`
    `UninvertingReader.Type` | `getUninversionType(SchemaField sf)` DocValues is not enabled for a field, but it's indexed, docvalues can be constructed on the fly (uninverted, aka fieldcache) on the first request to sort, facet, etc.
    `ValueSource` | `getValueSource(SchemaField field, QParser parser)` called to get the default value source (normally, from the Lucene FieldCache.)
    `protected void` | `init(IndexSchema schema, Map<String,String> args)` subclasses should initialize themselves with the args provided and remove valid arguments.
    `boolean` | `isPolyField()` A "polyField" is a FieldType that can produce more than one IndexableField instance for a single value, via the `FieldType.createFields(org.apache.solr.schema.SchemaField, Object, float)` method.
    `static String[]` | `parseCommaSeparatedList(String externalVal, int dimension)` Given a string containing dimension values encoded in it, separated by commas, return a String array of length dimension containing the values.
    `static double[]` | `vectorBoxCorner(double[] center, double[] result, double distance, boolean upperRight)` Return the coordinates of a vector that is the corner of a box (upper right or lower left), assuming a Rectangular coordinate system.
    `void` | `write(TextResponseWriter writer, String name, IndexableField f)` calls back to TextResponseWriter to write the field value

    - ### Methods inherited from class org.apache.solr.schema.CoordinateFieldType

      `getDimension`

    - ### Methods inherited from class org.apache.solr.schema.AbstractSubTypeFieldType

      `createSuffixCache, getSubType, inform, subField`

    - ### Methods inherited from class org.apache.solr.schema.FieldType

      `checkSchemaField, createField, getAnalyzerProperties, getClassArg, getDocValuesFormat, getIndexAnalyzer, getIndexOptions, getNamedPropertyValues, getNonFieldPropertyArgs, getNumericType, getPostingsFormat, getPrefixQuery, getQueryAnalyzer, getRewriteMethod, getSimilarity, getSimilarityFactory, getSingleValueSource, getStringSort, getTypeName, hasProperty, indexedToReadable, indexedToReadable, isExplicitAnalyzer, isExplicitQueryAnalyzer, isMultiValued, isTokenized, marshalBase64SortValue, marshalSortValue, marshalStringSortValue, multiValuedFieldCache, readableToIndexed, readableToIndexed, restrictProps, setArgs, setIndexAnalyzer, setIsExplicitAnalyzer, setIsExplicitQueryAnalyzer, setQueryAnalyzer, setSimilarity, storedToIndexed, storedToReadable, supportsAnalyzers, toExternal, toInternal, toNativeType, toObject, toObject, toString, unmarshalBase64SortValue, unmarshalSortValue, unmarshalStringSortValue, useDocValuesAsStored`

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

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

- - ### Constructor Detail

    - #### PointType

          public PointType()

  - ### Method Detail

    - #### init

          protected void init(IndexSchema schema,
                              Map<String,String> args)

      Description copied from class: `FieldType`
      subclasses should initialize themselves with the args provided and remove valid arguments. leftover arguments will cause an exception. Common boolean properties have already been handled.
      Overrides:
        `init` in class `AbstractSubTypeFieldType`

    - #### isPolyField

          public boolean isPolyField()

      Description copied from class: `FieldType`
      A "polyField" is a FieldType that can produce more than one IndexableField instance for a single value, via the `FieldType.createFields(org.apache.solr.schema.SchemaField, Object, float)` method. This is useful when hiding the implementation details of a field from the Solr end user. For instance, a spatial point may be represented by multiple different fields.
      Overrides:
        `isPolyField` in class `FieldType`
      Returns:
        true if the `FieldType.createFields(org.apache.solr.schema.SchemaField, Object, float)` method may return more than one field

    - #### createFields

          public List<IndexableField> createFields(SchemaField field,
                                                   Object value,
                                                   float boost)

      Description copied from class: `FieldType`
      Given a `SchemaField`, create one or more `IndexableField` instances
      Overrides:
        `createFields` in class `FieldType`
      Parameters:
        `field` - the `SchemaField`
        `value` - The value to add to the field
        `boost` - The boost to apply
      Returns:
        An array of `IndexableField`
      See Also:
        `FieldType.createField(SchemaField, Object, float)`, `FieldType.isPolyField()`

    - #### getValueSource

          public ValueSource getValueSource(SchemaField field,
                                            QParser parser)

      Description copied from class: `FieldType`
      called to get the default value source (normally, from the Lucene FieldCache.)
      Overrides:
        `getValueSource` in class `FieldType`

    - #### createField

          public IndexableField createField(SchemaField field,
                                            Object value,
                                            float boost)

      It never makes sense to create a single field, so make it impossible to happen by throwing UnsupportedOperationException
      Overrides:
        `createField` in class `FieldType`
      See Also:
        `FieldType.toInternal(java.lang.String)`

    - #### write

          public void write(TextResponseWriter writer,
                            String name,
                            IndexableField f)
                     throws IOException

      Description copied from class: `FieldType`
      calls back to TextResponseWriter to write the field value
      Specified by:
        `write` in class `FieldType`
      Throws:
        `IOException`

    - #### getSortField

          public SortField getSortField(SchemaField field,
                                        boolean top)

      Description copied from class: `FieldType`
      Returns the SortField instance that should be used to sort fields of this type.
      Specified by:
        `getSortField` in class `FieldType`
      See Also:
        `SchemaField.checkSortability()`

    - #### getUninversionType

          public UninvertingReader.Type getUninversionType(SchemaField sf)

      Description copied from class: `FieldType`
      DocValues is not enabled for a field, but it's indexed, docvalues can be constructed on the fly (uninverted, aka fieldcache) on the first request to sort, facet, etc. This specifies the structure to use.
      Specified by:
        `getUninversionType` in class `FieldType`
      Parameters:
        `sf` - field instance
      Returns:
        type to uninvert, or `null` (to disallow uninversion for the field)

    - #### getRangeQuery

          public Query getRangeQuery(QParser parser,
                                     SchemaField field,
                                     String part1,
                                     String part2,
                                     boolean minInclusive,
                                     boolean maxInclusive)

      Description copied from class: `FieldType`
      Returns a Query instance for doing range searches on this field type. `SolrQueryParser` currently passes part1 and part2 as null if they are '*' respectively. minInclusive and maxInclusive are both true currently by SolrQueryParser but that may change in the future. Also, other QueryParser implementations may have different semantics.

      Sub-classes should override this method to provide their own range query implementation. They should strive to handle nulls in part1 and/or part2 as well as unequal minInclusive and maxInclusive parameters gracefully.

      Overrides:
        `getRangeQuery` in class `FieldType`
      Parameters:
        `parser` - the `QParser` calling the method
        `field` - the schema field
        `part1` - the lower boundary of the range, nulls are allowed.
        `part2` - the upper boundary of the range, nulls are allowed
        `minInclusive` - whether the minimum of the range is inclusive or not
        `maxInclusive` - whether the maximum of the range is inclusive or not
      Returns:
        a Query instance to perform range search according to given parameters

    - #### getFieldQuery

          public Query getFieldQuery(QParser parser,
                                     SchemaField field,
                                     String externalVal)

      Description copied from class: `AbstractSubTypeFieldType`
      Throws UnsupportedOperationException()
      Overrides:
        `getFieldQuery` in class `AbstractSubTypeFieldType`
      Parameters:
        `parser` - The `QParser` calling the method
        `field` - The `SchemaField` of the field to search
        `externalVal` - The String representation of the value to search
      Returns:
        The `Query` instance. This implementation returns a `TermQuery` but overriding queries may not

    - #### createSpatialQuery

          public Query createSpatialQuery(QParser parser,
                                          SpatialOptions options)

      Calculates the range and creates a RangeQuery (bounding box) wrapped in a BooleanQuery (unless the dimension is 1, one range for every dimension, AND'd together by a Boolean
      Specified by:
        `createSpatialQuery` in interface `SpatialQueryable`
      Parameters:
        `parser` - The parser
        `options` - The `SpatialOptions` for this filter.
      Returns:
        The Query representing the bounding box around the point.

    - #### vectorBoxCorner

          public static double[] vectorBoxCorner(double[] center,
                                                 double[] result,
                                                 double distance,
                                                 boolean upperRight)

      Return the coordinates of a vector that is the corner of a box (upper right or lower left), assuming a Rectangular coordinate system. Note, this does not apply for points on a sphere or ellipse (although it could be used as an approximation).
      Parameters:
        `center` - The center point
        `result` - Holds the result, potentially resizing if needed.
        `distance` - The d from the center to the corner
        `upperRight` - If true, return the coords for the upper right corner, else return the lower left.
      Returns:
        The point, either the upperLeft or the lower right

    - #### parseCommaSeparatedList

          public static String[] parseCommaSeparatedList(String externalVal,
                                                         int dimension)
                                                  throws SolrException

      Given a string containing dimension values encoded in it, separated by commas, return a String array of length dimension containing the values.
      Parameters:
        `externalVal` - The value to parse
        `dimension` - The expected number of values for the point
      Returns:
        An array of the values that make up the point (aka vector)
      Throws:
        `SolrException` - if the dimension specified does not match the number found

    - #### getSphereRadius

          public double getSphereRadius()

      Specified by:
        `getSphereRadius` in interface `SpatialQueryable`

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.