Class KeywordFieldMapper.KeywordFieldType

Enclosing class:
KeywordFieldMapper

public static final class KeywordFieldMapper.KeywordFieldType extends StringFieldType
  • Constructor Details

  • Method Details

    • getTerms

      public org.apache.lucene.index.TermsEnum getTerms(boolean caseInsensitive, String string, SearchExecutionContext queryShardContext, String searchAfter) throws IOException
      Description copied from class: MappedFieldType
      This method is used to support auto-complete services and implementations are expected to find terms beginning with the provided string very quickly. If fields cannot look up matching terms quickly they should return null. The returned TermEnum should implement next(), term() and doc_freq() methods but postings etc are not required.
      Overrides:
      getTerms in class MappedFieldType
      Parameters:
      caseInsensitive - if matches should be case insensitive
      string - the partially complete word the user has typed (can be empty)
      queryShardContext - the shard context
      searchAfter - - usually null. If supplied the TermsEnum result must be positioned after the provided term (used for pagination)
      Returns:
      null or an enumeration of matching terms and their doc frequencies
      Throws:
      IOException - Errors accessing data
    • typeName

      public String typeName()
      Description copied from class: MappedFieldType
      Returns the name of this type, as would be specified in mapping properties
      Specified by:
      typeName in class MappedFieldType
    • eagerGlobalOrdinals

      public boolean eagerGlobalOrdinals()
      Overrides:
      eagerGlobalOrdinals in class MappedFieldType
      Returns:
      if this field type should load global ordinals eagerly
    • fielddataBuilder

      public IndexFieldData.Builder fielddataBuilder(String fullyQualifiedIndexName, Supplier<SearchLookup> searchLookup)
      Description copied from class: MappedFieldType
      Return a fielddata builder for this field
      Overrides:
      fielddataBuilder in class MappedFieldType
      Parameters:
      fullyQualifiedIndexName - the name of the index this field-data is build for
      searchLookup - a SearchLookup supplier to allow for accessing other fields values in the context of runtime fields
    • valueFetcher

      public ValueFetcher valueFetcher(SearchExecutionContext context, String format)
      Description copied from class: MappedFieldType
      Create a helper class to fetch field values during the FetchFieldsPhase.

      New field types must implement this method in order to support the search 'fields' option. Except for metadata fields, field types should not throw UnsupportedOperationException since this could cause a search retrieving multiple fields (like "fields": ["*"]) to fail.

      Specified by:
      valueFetcher in class MappedFieldType
    • valueForDisplay

      public Object valueForDisplay(Object value)
      Description copied from class: MappedFieldType
      Given a value that comes from the stored fields API, convert it to the expected type. For instance a date field would store dates as longs and format it back to a string in this method.
      Overrides:
      valueForDisplay in class MappedFieldType
    • indexedValueForSearch

      protected org.apache.lucene.util.BytesRef indexedValueForSearch(Object value)
      Description copied from class: TermBasedFieldType
      Returns the indexed value used to construct search "values". This method is used for the default implementations of most query factory methods such as TermBasedFieldType.termQuery(java.lang.Object, org.elasticsearch.index.query.SearchExecutionContext).
      Overrides:
      indexedValueForSearch in class TermBasedFieldType
    • wildcardQuery

      public org.apache.lucene.search.Query wildcardQuery(String value, org.apache.lucene.search.MultiTermQuery.RewriteMethod method, boolean caseInsensitive, SearchExecutionContext context)
      Wildcard queries on keyword fields use the normalizer of the underlying field, regardless of their case sensitivity option
      Overrides:
      wildcardQuery in class StringFieldType
    • collapseType

      public MappedFieldType.CollapseType collapseType()
      Description copied from class: MappedFieldType
      Returns the collapse type of the field CollapseType.NONE means the field can'be used for collapsing.
      Overrides:
      collapseType in class MappedFieldType
      Returns:
      collapse type of the field
    • ignoreAbove

      public int ignoreAbove()
      Values that have more chars than the return value of this method will be skipped at parsing time.