Package org.apache.solr.schema
Class DateRangeField
- java.lang.Object
-
- org.apache.solr.schema.FieldProperties
-
- org.apache.solr.schema.FieldType
-
- org.apache.solr.schema.AbstractSpatialFieldType<T>
-
- org.apache.solr.schema.AbstractSpatialPrefixTreeFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy>
-
- org.apache.solr.schema.DateRangeField
-
- All Implemented Interfaces:
DateValueFieldType
,SpatialQueryable
public class DateRangeField extends AbstractSpatialPrefixTreeFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy> implements DateValueFieldType
A field for indexed dates and date ranges. It's mostly compatible with DatePointField. It has the potential to allow efficient faceting, similar to facet.enum.- See Also:
NumberRangePrefixTreeStrategy
,DateRangePrefixTree
-
-
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.AbstractSpatialPrefixTreeFieldType
DEFAULT_FIELD_VALUES_ARRAY_LEN, FIELD_TYPE_INVARIANTS, grid
-
Fields inherited from class org.apache.solr.schema.AbstractSpatialFieldType
argsParser, ctx, DISTANCE, distanceUnits, FILTER_PARAM, FORMAT, NONE, RECIP_DISTANCE, SCORE_PARAM, shapeReader, shapeWriter, supportedScoreModes
-
Fields inherited from class org.apache.solr.schema.FieldType
ANALYZER, args, AUTO_GENERATE_PHRASE_QUERIES, CHAR_FILTER, CHAR_FILTERS, CLASS_NAME, docValuesFormat, ENABLE_GRAPH_QUERIES, falseProperties, FILTER, FILTERS, INDEX, INDEX_ANALYZER, MULTI_TERM, MULTI_TERM_ANALYZER, POLY_FIELD_SEPARATOR, postingsFormat, properties, QUERY, QUERY_ANALYZER, similarity, SIMILARITY, similarityFactory, SYNONYM_QUERY_STYLE, TOKENIZER, trueProperties, TYPE, TYPE_NAME, typeName
-
Fields inherited from class org.apache.solr.schema.FieldProperties
BINARY, DOC_VALUES, INDEXED, LARGE_FIELD, 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, UNINVERTIBLE, USE_DOCVALUES_AS_STORED
-
-
Constructor Summary
Constructors Constructor Description DateRangeField()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<org.apache.lucene.index.IndexableField>
createFields(SchemaField field, Object val)
Given aSchemaField
, create one or moreIndexableField
instancesprotected org.apache.lucene.search.Query
getSpecializedRangeQuery(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(org.locationtech.spatial4j.shape.Shape shape, String shapeStr)
Called byAbstractSpatialFieldType.createFields(SchemaField, Object)
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 org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy
newPrefixTreeStrategy(String fieldName)
Date
parseMath(Date now, String rawval)
For easy compatibility withDateMathParser.parseMath(Date, String)
.org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.NRShape
parseShape(String str)
Create aShape
from the input stringprotected org.apache.lucene.spatial.query.SpatialArgs
parseSpatialArgs(QParser parser, String externalVal)
String
shapeToString(org.locationtech.spatial4j.shape.Shape shape)
Returns a String version of a shape to be used for the stored value.-
Methods inherited from class org.apache.solr.schema.AbstractSpatialPrefixTreeFieldType
checkSchemaField, getIndexAnalyzer, getQueryAnalyzer, newSpatialStrategy, setArgs
-
Methods inherited from class org.apache.solr.schema.AbstractSpatialFieldType
createField, createSpatialQuery, getDistanceUnits, getFieldQuery, getQueryFromSpatialArgs, getSortField, getSpatialContext, getSpecializedExistenceQuery, getSphereRadius, getStrategy, getSupportedScoreModes, getUninversionType, getValueSource, getValueSourceFromSpatialArgs, isPolyField, newSpatialArgsParser, parseDistanceUnits, write
-
Methods inherited from class org.apache.solr.schema.FieldType
checkSupportsDocValues, createField, getAnalyzerProperties, getClassArg, getDefaultMultiValueSelectorForSort, getDocValuesFormat, getExistenceQuery, getFieldTermQuery, getNamedPropertyValues, getNonFieldPropertyArgs, getNumberType, getNumericSort, getPostingsFormat, getPrefixQuery, getRangeQuery, getRewriteMethod, getSetQuery, getSimilarity, getSimilarityFactory, getSingleValueSource, getSortedNumericSortField, getSortedSetSortField, getSortField, getStringSort, getTypeName, hasProperty, indexedToReadable, indexedToReadable, isExplicitAnalyzer, isExplicitQueryAnalyzer, isMultiValued, isPointField, isTokenized, isUtf8Field, marshalBase64SortValue, marshalSortValue, marshalStringSortValue, multiValuedFieldCache, readableToIndexed, readableToIndexed, restrictProps, setIndexAnalyzer, setIsExplicitAnalyzer, setIsExplicitQueryAnalyzer, setQueryAnalyzer, setSimilarity, storedToIndexed, storedToReadable, supportsAnalyzers, toExternal, toInternal, toNativeType, toObject, toObject, toString, treatUnboundedRangeAsExistence, unmarshalBase64SortValue, unmarshalSortValue, unmarshalStringSortValue, useDocValuesAsStored, write
-
-
-
-
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 classAbstractSpatialPrefixTreeFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy>
-
newPrefixTreeStrategy
protected org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy newPrefixTreeStrategy(String fieldName)
- Specified by:
newPrefixTreeStrategy
in classAbstractSpatialPrefixTreeFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy>
-
createFields
public List<org.apache.lucene.index.IndexableField> createFields(SchemaField field, Object val)
Description copied from class:FieldType
Given aSchemaField
, create one or moreIndexableField
instances- Overrides:
createFields
in classAbstractSpatialFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy>
- Parameters:
field
- theSchemaField
val
- The value to add to the field- Returns:
- An array of
IndexableField
- See Also:
FieldType.createField(SchemaField, Object)
,FieldType.isPolyField()
-
getStoredValue
protected String getStoredValue(org.locationtech.spatial4j.shape.Shape shape, String shapeStr)
Description copied from class:AbstractSpatialFieldType
Called byAbstractSpatialFieldType.createFields(SchemaField, Object)
to get the stored value.- Overrides:
getStoredValue
in classAbstractSpatialFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy>
-
shapeToString
public String shapeToString(org.locationtech.spatial4j.shape.Shape shape)
Description copied from class:AbstractSpatialFieldType
Returns a String version of a shape to be used for the stored value.The format can be selected using the initParam
format={WKT|GeoJSON}
- Overrides:
shapeToString
in classAbstractSpatialFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy>
-
parseShape
public org.apache.lucene.spatial.prefix.tree.NumberRangePrefixTree.NRShape parseShape(String str)
Description copied from class:AbstractSpatialFieldType
Create aShape
from the input string- Overrides:
parseShape
in classAbstractSpatialFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy>
-
parseMath
public Date parseMath(Date now, String rawval)
For easy compatibility withDateMathParser.parseMath(Date, String)
.
-
parseSpatialArgs
protected org.apache.lucene.spatial.query.SpatialArgs parseSpatialArgs(QParser parser, String externalVal)
- Overrides:
parseSpatialArgs
in classAbstractSpatialFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy>
-
getSpecializedRangeQuery
protected org.apache.lucene.search.Query getSpecializedRangeQuery(QParser parser, SchemaField field, String startStr, String endStr, boolean minInclusive, boolean maxInclusive)
Description copied from class:FieldType
Returns a Query instance for doing range searches on this field type.SolrQueryParser
currently passespart1
andpart2
as null if they are '*' respectively.minInclusive
andmaxInclusive
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/orpart2
as well as unequalminInclusive
andmaxInclusive
parameters gracefully.This method does not, and should not, check for or handle existence queries, please look at
FieldType.getRangeQuery(org.apache.solr.search.QParser, org.apache.solr.schema.SchemaField, java.lang.String, java.lang.String, boolean, boolean)
for that logic.- Overrides:
getSpecializedRangeQuery
in classAbstractSpatialFieldType<org.apache.lucene.spatial.prefix.NumberRangePrefixTreeStrategy>
- Parameters:
parser
- theQParser
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 not- Returns:
- a Query instance to perform range search according to given parameters
-
-