org.elasticsearch.index.mapper.core
Class NumberFieldMapper<T extends Number>

java.lang.Object
  extended by org.elasticsearch.index.mapper.core.AbstractFieldMapper<T>
      extended by org.elasticsearch.index.mapper.core.NumberFieldMapper<T>
All Implemented Interfaces:
ToXContent, FieldMapper<T>, AllFieldMapper.IncludeInAll, Mapper
Direct Known Subclasses:
BoostFieldMapper, ByteFieldMapper, DateFieldMapper, DoubleFieldMapper, FloatFieldMapper, IntegerFieldMapper, IpFieldMapper, LongFieldMapper, ShortFieldMapper

public abstract class NumberFieldMapper<T extends Number>
extends AbstractFieldMapper<T>
implements AllFieldMapper.IncludeInAll


Nested Class Summary
static class NumberFieldMapper.Builder<T extends NumberFieldMapper.Builder,Y extends NumberFieldMapper>
           
static class NumberFieldMapper.CustomNumericField
           
static class NumberFieldMapper.Defaults
           
 
Nested classes/interfaces inherited from class org.elasticsearch.index.mapper.core.AbstractFieldMapper
AbstractFieldMapper.OpenBuilder<T extends AbstractFieldMapper.Builder,Y extends AbstractFieldMapper>
 
Nested classes/interfaces inherited from interface org.elasticsearch.index.mapper.Mapper
Mapper.BuilderContext, Mapper.TypeParser
 
Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
ToXContent.MapParams, ToXContent.Params
 
Nested classes/interfaces inherited from interface org.elasticsearch.index.mapper.FieldMapper
FieldMapper.Names
 
Field Summary
protected  double dFuzzyFactor
           
protected  String fuzzyFactor
           
protected  boolean ignoreMalformed
           
protected  Boolean includeInAll
           
protected  int precisionStep
           
 
Fields inherited from class org.elasticsearch.index.mapper.core.AbstractFieldMapper
boost, index, indexAnalyzer, indexOptions, names, omitNorms, searchAnalyzer, store, termVector
 
Fields inherited from interface org.elasticsearch.index.mapper.Mapper
EMPTY_ARRAY
 
Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS
 
Constructor Summary
protected NumberFieldMapper(FieldMapper.Names names, int precisionStep, String fuzzyFactor, org.apache.lucene.document.Field.Index index, org.apache.lucene.document.Field.Store store, float boost, boolean omitNorms, org.apache.lucene.index.FieldInfo.IndexOptions indexOptions, boolean ignoreMalformed, NamedAnalyzer indexAnalyzer, NamedAnalyzer searchAnalyzer)
           
 
Method Summary
 void close()
           
protected  void doXContentBody(XContentBuilder builder)
           
abstract  FieldDataType fieldDataType()
           
 org.apache.lucene.search.Filter fieldFilter(String value, QueryParseContext context)
          Numeric field level filter are basically range queries with same value and included.
 org.apache.lucene.search.Query fieldQuery(String value, QueryParseContext context)
          Numeric field level query are basically range queries with same value and included.
abstract  org.apache.lucene.search.Query fuzzyQuery(String value, double minSim, int prefixLength, int maxExpansions)
           
abstract  org.apache.lucene.search.Query fuzzyQuery(String value, String minSim, int prefixLength, int maxExpansions)
           
 void includeInAll(Boolean includeInAll)
           
 void includeInAllIfNotSet(Boolean includeInAll)
           
protected abstract  org.apache.lucene.document.Fieldable innerParseCreateField(ParseContext context)
           
protected abstract  int maxPrecisionStep()
           
 void merge(Mapper mergeWith, MergeContext mergeContext)
           
protected  org.apache.lucene.document.Fieldable parseCreateField(ParseContext context)
           
protected  double parseFuzzyFactor(String fuzzyFactor)
           
protected  org.apache.lucene.analysis.NumericTokenStream popCachedStream()
           
 int precisionStep()
           
abstract  org.apache.lucene.search.Filter rangeFilter(FieldDataCache fieldDataCache, String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper, QueryParseContext context)
          A range filter based on the field data cache.
abstract  org.apache.lucene.search.Filter rangeFilter(String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper, QueryParseContext context)
          Constructs a range query filter based on the mapper.
abstract  org.apache.lucene.search.Query rangeQuery(String lowerTerm, String upperTerm, boolean includeLower, boolean includeUpper, QueryParseContext context)
          Constructs a range query based on the mapper.
 boolean useFieldQueryWithQueryString()
          Use the field query created here when matching on numbers.
 String valueAsString(org.apache.lucene.document.Fieldable field)
          Returns the actual value of the field as string.
 Object valueForSearch(org.apache.lucene.document.Fieldable field)
          Override the default behavior (to return the string, and return the actual Number instance).
 
Methods inherited from class org.elasticsearch.index.mapper.core.AbstractFieldMapper
analyzed, boost, contentType, customBoost, index, indexAnalyzer, indexed, indexedValue, indexOptions, indexOptionToString, name, names, nullValueFilter, omitNorms, parse, prefixFilter, prefixQuery, queryStringTermQuery, searchAnalyzer, searchQuoteAnalyzer, store, stored, termVector, toXContent, traverse, traverse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.elasticsearch.index.mapper.Mapper
name, parse, traverse, traverse
 
Methods inherited from interface org.elasticsearch.common.xcontent.ToXContent
toXContent
 
Methods inherited from interface org.elasticsearch.index.mapper.FieldMapper
value, valueFromString
 

Field Detail

precisionStep

protected int precisionStep

fuzzyFactor

protected String fuzzyFactor

dFuzzyFactor

protected double dFuzzyFactor

includeInAll

protected Boolean includeInAll

ignoreMalformed

protected boolean ignoreMalformed
Constructor Detail

NumberFieldMapper

protected NumberFieldMapper(FieldMapper.Names names,
                            int precisionStep,
                            @Nullable
                            String fuzzyFactor,
                            org.apache.lucene.document.Field.Index index,
                            org.apache.lucene.document.Field.Store store,
                            float boost,
                            boolean omitNorms,
                            org.apache.lucene.index.FieldInfo.IndexOptions indexOptions,
                            boolean ignoreMalformed,
                            NamedAnalyzer indexAnalyzer,
                            NamedAnalyzer searchAnalyzer)
Method Detail

parseFuzzyFactor

protected double parseFuzzyFactor(String fuzzyFactor)

includeInAll

public void includeInAll(Boolean includeInAll)
Specified by:
includeInAll in interface AllFieldMapper.IncludeInAll

includeInAllIfNotSet

public void includeInAllIfNotSet(Boolean includeInAll)
Specified by:
includeInAllIfNotSet in interface AllFieldMapper.IncludeInAll

maxPrecisionStep

protected abstract int maxPrecisionStep()

precisionStep

public int precisionStep()

parseCreateField

protected org.apache.lucene.document.Fieldable parseCreateField(ParseContext context)
                                                         throws IOException
Specified by:
parseCreateField in class AbstractFieldMapper<T extends Number>
Throws:
IOException

innerParseCreateField

protected abstract org.apache.lucene.document.Fieldable innerParseCreateField(ParseContext context)
                                                                       throws IOException
Throws:
IOException

useFieldQueryWithQueryString

public boolean useFieldQueryWithQueryString()
Use the field query created here when matching on numbers.

Specified by:
useFieldQueryWithQueryString in interface FieldMapper<T extends Number>
Overrides:
useFieldQueryWithQueryString in class AbstractFieldMapper<T extends Number>

fieldQuery

public org.apache.lucene.search.Query fieldQuery(String value,
                                                 @Nullable
                                                 QueryParseContext context)
Numeric field level query are basically range queries with same value and included. That's the recommended way to execute it.

Specified by:
fieldQuery in interface FieldMapper<T extends Number>
Overrides:
fieldQuery in class AbstractFieldMapper<T extends Number>

fuzzyQuery

public abstract org.apache.lucene.search.Query fuzzyQuery(String value,
                                                          String minSim,
                                                          int prefixLength,
                                                          int maxExpansions)
Specified by:
fuzzyQuery in interface FieldMapper<T extends Number>
Overrides:
fuzzyQuery in class AbstractFieldMapper<T extends Number>

fuzzyQuery

public abstract org.apache.lucene.search.Query fuzzyQuery(String value,
                                                          double minSim,
                                                          int prefixLength,
                                                          int maxExpansions)
Specified by:
fuzzyQuery in interface FieldMapper<T extends Number>
Overrides:
fuzzyQuery in class AbstractFieldMapper<T extends Number>

fieldFilter

public org.apache.lucene.search.Filter fieldFilter(String value,
                                                   @Nullable
                                                   QueryParseContext context)
Numeric field level filter are basically range queries with same value and included. That's the recommended way to execute it.

Specified by:
fieldFilter in interface FieldMapper<T extends Number>
Overrides:
fieldFilter in class AbstractFieldMapper<T extends Number>

rangeQuery

public abstract org.apache.lucene.search.Query rangeQuery(String lowerTerm,
                                                          String upperTerm,
                                                          boolean includeLower,
                                                          boolean includeUpper,
                                                          @Nullable
                                                          QueryParseContext context)
Description copied from interface: FieldMapper
Constructs a range query based on the mapper.

Specified by:
rangeQuery in interface FieldMapper<T extends Number>
Overrides:
rangeQuery in class AbstractFieldMapper<T extends Number>

rangeFilter

public abstract org.apache.lucene.search.Filter rangeFilter(String lowerTerm,
                                                            String upperTerm,
                                                            boolean includeLower,
                                                            boolean includeUpper,
                                                            @Nullable
                                                            QueryParseContext context)
Description copied from interface: FieldMapper
Constructs a range query filter based on the mapper.

Specified by:
rangeFilter in interface FieldMapper<T extends Number>
Overrides:
rangeFilter in class AbstractFieldMapper<T extends Number>

rangeFilter

public abstract org.apache.lucene.search.Filter rangeFilter(FieldDataCache fieldDataCache,
                                                            String lowerTerm,
                                                            String upperTerm,
                                                            boolean includeLower,
                                                            boolean includeUpper,
                                                            @Nullable
                                                            QueryParseContext context)
A range filter based on the field data cache.


valueForSearch

public Object valueForSearch(org.apache.lucene.document.Fieldable field)
Override the default behavior (to return the string, and return the actual Number instance).

Specified by:
valueForSearch in interface FieldMapper<T extends Number>
Overrides:
valueForSearch in class AbstractFieldMapper<T extends Number>

valueAsString

public String valueAsString(org.apache.lucene.document.Fieldable field)
Description copied from interface: FieldMapper
Returns the actual value of the field as string.

Specified by:
valueAsString in interface FieldMapper<T extends Number>

merge

public void merge(Mapper mergeWith,
                  MergeContext mergeContext)
           throws MergeMappingException
Specified by:
merge in interface Mapper
Overrides:
merge in class AbstractFieldMapper<T extends Number>
Throws:
MergeMappingException

close

public void close()
Specified by:
close in interface Mapper
Overrides:
close in class AbstractFieldMapper<T extends Number>

fieldDataType

public abstract FieldDataType fieldDataType()
Specified by:
fieldDataType in interface FieldMapper<T extends Number>
Overrides:
fieldDataType in class AbstractFieldMapper<T extends Number>

popCachedStream

protected org.apache.lucene.analysis.NumericTokenStream popCachedStream()

doXContentBody

protected void doXContentBody(XContentBuilder builder)
                       throws IOException
Overrides:
doXContentBody in class AbstractFieldMapper<T extends Number>
Throws:
IOException


Copyright © 2009-2012. All Rights Reserved.