public class DateRangeField extends AbstractSpatialPrefixTreeFieldType<NumberRangePrefixTreeStrategy>
FieldType.DefaultAnalyzer, FieldType.MultiValueSelector
DEFAULT_FIELD_VALUES_ARRAY_LEN, grid
argsParser, ctx, DISTANCE, distanceUnits, FILTER_PARAM, log, NONE, RECIP_DISTANCE, SCORE_PARAM, supportedScoreModes, units
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
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
Constructor and Description |
---|
DateRangeField() |
Modifier and Type | Method and Description |
---|---|
List<IndexableField> |
createFields(SchemaField field,
Object val,
float boost)
Given a
SchemaField , create one or more IndexableField instances |
Query |
getRangeQuery(QParser parser,
SchemaField field,
String startStr,
String endStr,
boolean minInclusive,
boolean maxInclusive)
Returns a Query instance for doing range searches on this field type.
|
protected String |
getStoredValue(com.spatial4j.core.shape.Shape shape,
String shapeStr)
Called by
AbstractSpatialFieldType.createFields(SchemaField, Object, float) to get the stored value. |
protected void |
init(IndexSchema schema,
Map<String,String> args)
subclasses should initialize themselves with the args provided
and remove valid arguments.
|
protected NumberRangePrefixTreeStrategy |
newPrefixTreeStrategy(String fieldName) |
Date |
parseMath(Date now,
String rawval)
For easy compatibility with
DateFormatUtil.parseMath(Date, String) . |
protected NumberRangePrefixTree.NRShape |
parseShape(String str) |
protected SpatialArgs |
parseSpatialArgs(QParser parser,
String externalVal) |
protected String |
shapeToString(com.spatial4j.core.shape.Shape shape)
Returns a String version of a shape to be used for the stored value.
|
getIndexAnalyzer, getQueryAnalyzer, newSpatialStrategy
createField, createSpatialQuery, getDistanceUnits, getFieldQuery, getQueryFromSpatialArgs, getSortField, getSphereRadius, getStrategy, getSupportedScoreModes, getUninversionType, getValueSource, getValueSourceFromSpatialArgs, isPolyField, newSpatialArgsParser, parseDistanceUnits, write
checkSchemaField, createField, getAnalyzerProperties, getClassArg, getDocValuesFormat, getIndexOptions, getNamedPropertyValues, getNonFieldPropertyArgs, getNumericType, getPostingsFormat, getPrefixQuery, 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
protected void init(IndexSchema schema, Map<String,String> args)
FieldType
init
in class AbstractSpatialPrefixTreeFieldType<NumberRangePrefixTreeStrategy>
protected NumberRangePrefixTreeStrategy newPrefixTreeStrategy(String fieldName)
newPrefixTreeStrategy
in class AbstractSpatialPrefixTreeFieldType<NumberRangePrefixTreeStrategy>
public List<IndexableField> createFields(SchemaField field, Object val, float boost)
FieldType
SchemaField
, create one or more IndexableField
instancescreateFields
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
field
- the SchemaField
val
- The value to add to the fieldboost
- The boost to applyIndexableField
FieldType.createField(SchemaField, Object, float)
,
FieldType.isPolyField()
protected String getStoredValue(com.spatial4j.core.shape.Shape shape, String shapeStr)
AbstractSpatialFieldType
AbstractSpatialFieldType.createFields(SchemaField, Object, float)
to get the stored value.getStoredValue
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
protected NumberRangePrefixTree.NRShape parseShape(String str)
parseShape
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
public Date parseMath(Date now, String rawval)
DateFormatUtil.parseMath(Date, String)
.protected String shapeToString(com.spatial4j.core.shape.Shape shape)
AbstractSpatialFieldType
Spatial4j 0.4 is probably the last release to support SpatialContext.toString(shape) but it's deprecated with no planned replacement. Shapes do have a toString() method but they are generally internal/diagnostic and not standard WKT. The solution is subclassing and calling ctx.toString(shape) or directly using LegacyShapeReadWriterFormat or passing in some sort of custom wrapped shape that holds a reference to a String or can generate it.
shapeToString
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
protected SpatialArgs parseSpatialArgs(QParser parser, String externalVal)
parseSpatialArgs
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
public Query getRangeQuery(QParser parser, SchemaField field, String startStr, String endStr, boolean minInclusive, boolean maxInclusive)
FieldType
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.
getRangeQuery
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
parser
- the QParser
calling the methodfield
- the schema fieldstartStr
- the lower boundary of the range, nulls are allowed.endStr
- the upper boundary of the range, nulls are allowedminInclusive
- whether the minimum of the range is inclusive or notmaxInclusive
- whether the maximum of the range is inclusive or notCopyright © 2000-2015 Apache Software Foundation. All Rights Reserved.