org.apache.solr.schema

## Class CollationField

- java.lang.Object
- - org.apache.solr.schema.FieldProperties
  - - org.apache.solr.schema.FieldType
    - - org.apache.solr.schema.CollationField

-     public class CollationField
      extends FieldType

  Field for collated sort keys. These can be used for locale-sensitive sort and range queries.

  This field can be created in two ways:

  - Based upon a system collator associated with a Locale.
  - Based upon a tailored ruleset.

  Using a System collator:

  - language: ISO-639 language code (mandatory)
  - country: ISO-3166 country code (optional)
  - variant: vendor or browser-specific code (optional)
  - strength: 'primary','secondary','tertiary', or 'identical' (optional)
  - decomposition: 'no','canonical', or 'full' (optional)

  Using a Tailored ruleset:

  - custom: UTF-8 text file containing rules supported by RuleBasedCollator (mandatory)
  - strength: 'primary','secondary','tertiary', or 'identical' (optional)
  - decomposition: 'no','canonical', or 'full' (optional)
  Since:
    solr 4.0
  See Also:
    `Collator`, `Locale`, `RuleBasedCollator`

- - ### 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.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
    `CollationField()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkSchemaField(SchemaField field)` Check's `SchemaField` instances constructed using this field type to ensure that they are valid.
    `List<IndexableField>` | `createFields(SchemaField field, Object value, float boost)` Given a `SchemaField`, create one or more `IndexableField` instances
    `Analyzer` | `getIndexAnalyzer()` Returns the Analyzer to be used when indexing fields of this type.
    `Analyzer` | `getQueryAnalyzer()` Returns the Analyzer to be used when searching fields of this type.
    `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.
    `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.
    `protected void` | `init(IndexSchema schema, Map<String,String> args)` subclasses should initialize themselves with the args provided and remove valid arguments.
    `Object` | `marshalSortValue(Object value)` Convert a value used by the FieldComparator for this FieldType's SortField into a marshalable value for distributed sorting.
    `Object` | `unmarshalSortValue(Object value)` Convert a value marshaled via `FieldType.marshalSortValue(java.lang.Object)` back into a value usable by the FieldComparator for this FieldType's SortField
    `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.FieldType

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

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

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

- - ### Constructor Detail

    - #### CollationField

          public CollationField()

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

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

    - #### getIndexAnalyzer

          public Analyzer getIndexAnalyzer()

      Description copied from class: `FieldType`
      Returns the Analyzer to be used when indexing fields of this type.

      This method may be called many times, at any time.

      Overrides:
        `getIndexAnalyzer` in class `FieldType`
      See Also:
        `FieldType.getQueryAnalyzer()`

    - #### getQueryAnalyzer

          public Analyzer getQueryAnalyzer()

      Description copied from class: `FieldType`
      Returns the Analyzer to be used when searching fields of this type.

      This method may be called many times, at any time.

      Overrides:
        `getQueryAnalyzer` in class `FieldType`
      See Also:
        `FieldType.getIndexAnalyzer()`

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

    - #### checkSchemaField

          public void checkSchemaField(SchemaField field)

      Description copied from class: `FieldType`
      Check's `SchemaField` instances constructed using this field type to ensure that they are valid.

      This method is called by the `SchemaField` constructor to check that its initialization does not violate any fundemental requirements of the `FieldType`. The default implementation does nothing, but subclasses may chose to throw a `SolrException` if invariants are violated by the `SchemaField.`

      Overrides:
        `checkSchemaField` in class `FieldType`

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

    - #### marshalSortValue

          public Object marshalSortValue(Object value)

      Description copied from class: `FieldType`
      Convert a value used by the FieldComparator for this FieldType's SortField into a marshalable value for distributed sorting.
      Overrides:
        `marshalSortValue` in class `FieldType`

    - #### unmarshalSortValue

          public Object unmarshalSortValue(Object value)

      Description copied from class: `FieldType`
      Convert a value marshaled via `FieldType.marshalSortValue(java.lang.Object)` back into a value usable by the FieldComparator for this FieldType's SortField
      Overrides:
        `unmarshalSortValue` in class `FieldType`

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