LatLonType (Solr 3.6.2 API)
Keywords: org.apache.solr.schema.LatLonType class

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.solr.schema
Class LatLonType

    java.lang.Object
      org.apache.solr.schema.FieldProperties
          org.apache.solr.schema.FieldType
              org.apache.solr.schema.AbstractSubTypeFieldType
                  org.apache.solr.schema.LatLonType

All Implemented Interfaces:
  SchemaAware, SpatialQueryable

    public class LatLonType

extends AbstractSubTypeFieldType
implements SpatialQueryable

Represents a Latitude/Longitude as a 2 dimensional point. Latitude is always specified first.

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.solr.schema.FieldType
`FieldType.DefaultAnalyzer`

Field Summary
`protected static int` | `LAT`
`protected static int` | `LONG`

Fields inherited from class org.apache.solr.schema.AbstractSubTypeFieldType
`dynFieldProps, schema, SUB_FIELD_SUFFIX, SUB_FIELD_TYPE, subType, suffix, suffixes`

Fields inherited from class org.apache.solr.schema.FieldType
`analyzer, args, falseProperties, log, POLY_FIELD_SEPARATOR, queryAnalyzer, trueProperties, typeName`

Fields inherited from class org.apache.solr.schema.FieldProperties
`BINARY, INDEXED, MULTIVALUED, OMIT_NORMS, OMIT_POSITIONS, OMIT_TF_POSITIONS, REQUIRED, SORT_MISSING_FIRST, SORT_MISSING_LAST, STORE_TERMOFFSETS, STORE_TERMPOSITIONS, STORE_TERMVECTORS, STORED, TOKENIZED`

Constructor Summary
`LatLonType()`

Method Summary
`Fieldable` | `createField(SchemaField field, String externalVal, float boost)` Used for adding a document when a field needs to be created from a type and a string.
`Fieldable[]` | `createFields(SchemaField field, String externalVal, float boost)` Given a `SchemaField`, create one or more `Fieldable` instances
`Query` | `createSpatialQuery(QParser parser, SpatialOptions options)`
`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.
`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 Fieldable instance for a single value, via the `FieldType.createFields(org.apache.solr.schema.SchemaField, String, float)` method.
`void` | `write(TextResponseWriter writer, String name, Fieldable f)` calls back to TextResponseWriter to write the field value
`void` | `write(XMLWriter xmlWriter, String name, Fieldable f)` Renders the specified field as XML

Methods inherited from class org.apache.solr.schema.AbstractSubTypeFieldType
`createSuffixCache, getSubType, inform, subField`

Methods inherited from class org.apache.solr.schema.FieldType
`createField, getAnalyzer, getArg, getFieldIndex, getFieldStore, getFieldTermVec, getIndexOptions, getQueryAnalyzer, getStringSort, getTypeName, getValueSource, hasProperty, indexedToReadable, isMultiValued, isTokenized, multiValuedFieldCache, readableToIndexed, restrictProps, setAnalyzer, setQueryAnalyzer, storedToIndexed, storedToReadable, toExternal, toInternal, toObject, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### LAT

    protected static final int LAT

See Also:
  Constant Field Values

### LONG

    protected static final int LONG

See Also:
  Constant Field Values

Constructor Detail

### LatLonType

    public LatLonType()

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`

### createFields

    public Fieldable[] createFields(SchemaField field,
                                    String externalVal,
                                    float boost)

  Description copied from class: `FieldType`
  Given a `SchemaField`, create one or more `Fieldable` instances

  Overrides:
    `createFields` in class `FieldType`
  Parameters:
    `field` - the `SchemaField`
    `externalVal` - The value to add to the field
    `boost` - The boost to apply
  Returns:
    An array of `Fieldable`
  See Also:
    `FieldType.createField(SchemaField, String, float)`, `FieldType.isPolyField()`

### 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`
    `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
  See Also:
    `SolrQueryParser.getRangeQuery(String, String, String, boolean)`

### 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)

  Specified by:
    `createSpatialQuery` in interface `SpatialQueryable`

### 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`

### isPolyField

    public boolean isPolyField()

  Description copied from class: `FieldType`
  A "polyField" is a FieldType that can produce more than one Fieldable instance for a single value, via the `FieldType.createFields(org.apache.solr.schema.SchemaField, String, 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, String, float)` method may return more than one field

### write

    public void write(XMLWriter xmlWriter,
                      String name,
                      Fieldable f)
               throws IOException

  Description copied from class: `FieldType`
  Renders the specified field as XML

  Specified by:
    `write` in class `FieldType`
  Throws:
    `IOException`

### write

    public void write(TextResponseWriter writer,
                      String name,
                      Fieldable 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()`

### createField

    public Fieldable createField(SchemaField field,
                                 String externalVal,
                                 float boost)

  Description copied from class: `FieldType`
  Used for adding a document when a field needs to be created from a type and a string.

  By default, the indexed value is the same as the stored value (taken from toInternal()). Having a different representation for external, internal, and indexed would present quite a few problems given the current Lucene architecture. An analyzer for adding docs would need to translate internal->indexed while an analyzer for querying would need to translate external->indexed.

  The only other alternative to having internal==indexed would be to have internal==external. In this case, toInternal should convert to the indexed representation, toExternal() should do nothing, and createField() should *not* call toInternal, but use the external value and set tokenized=true to get Lucene to convert to the internal(indexed) form.

  :TODO: clean up and clarify this explanation.

  Overrides:
    `createField` in class `FieldType`
  See Also:
    `FieldType.toInternal(java.lang.String)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD