public class DateRangeField extends AbstractSpatialPrefixTreeFieldType<NumberRangePrefixTreeStrategy> implements DateValueFieldType
NumberRangePrefixTreeStrategy
,
DateRangePrefixTree
FieldType.DefaultAnalyzer, FieldType.MultiValueSelector
DEFAULT_FIELD_VALUES_ARRAY_LEN, FIELD_TYPE_INVARIANTS, grid
argsParser, ctx, DISTANCE, distanceUnits, FILTER_PARAM, FORMAT, NONE, RECIP_DISTANCE, SCORE_PARAM, shapeReader, shapeWriter, supportedScoreModes
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
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 and Description |
---|
DateRangeField() |
Modifier and Type | Method and Description |
---|---|
List<IndexableField> |
createFields(SchemaField field,
Object val)
Given a
SchemaField , create one or more IndexableField instances |
protected 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 by
AbstractSpatialFieldType.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 NumberRangePrefixTreeStrategy |
newPrefixTreeStrategy(String fieldName) |
Date |
parseMath(Date now,
String rawval)
For easy compatibility with
DateMathParser.parseMath(Date, String) . |
NumberRangePrefixTree.NRShape |
parseShape(String str)
Create a
Shape from the input string |
protected 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.
|
checkSchemaField, getIndexAnalyzer, getQueryAnalyzer, newSpatialStrategy, setArgs
createField, createSpatialQuery, getDistanceUnits, getFieldQuery, getQueryFromSpatialArgs, getSortField, getSpatialContext, getSphereRadius, getStrategy, getSupportedScoreModes, getUninversionType, getValueSource, getValueSourceFromSpatialArgs, isPolyField, newSpatialArgsParser, parseDistanceUnits, write
checkSupportsDocValues, createField, getAnalyzerProperties, getClassArg, getDefaultMultiValueSelectorForSort, getDocValuesFormat, getExistenceQuery, getNamedPropertyValues, getNonFieldPropertyArgs, getNumberType, getNumericSort, getPostingsFormat, getPrefixQuery, getRangeQuery, getRewriteMethod, getSetQuery, getSimilarity, getSimilarityFactory, getSingleValueSource, getSortedNumericSortField, getSortedSetSortField, getSortField, getSpecializedExistenceQuery, 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
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)
FieldType
SchemaField
, create one or more IndexableField
instancescreateFields
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
field
- the SchemaField
val
- The value to add to the fieldIndexableField
FieldType.createField(SchemaField, Object)
,
FieldType.isPolyField()
protected String getStoredValue(org.locationtech.spatial4j.shape.Shape shape, String shapeStr)
AbstractSpatialFieldType
AbstractSpatialFieldType.createFields(SchemaField, Object)
to get the stored value.getStoredValue
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
public String shapeToString(org.locationtech.spatial4j.shape.Shape shape)
AbstractSpatialFieldType
format={WKT|GeoJSON}
shapeToString
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
public NumberRangePrefixTree.NRShape parseShape(String str)
AbstractSpatialFieldType
Shape
from the input stringparseShape
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
public Date parseMath(Date now, String rawval)
DateMathParser.parseMath(Date, String)
.protected SpatialArgs parseSpatialArgs(QParser parser, String externalVal)
parseSpatialArgs
in class AbstractSpatialFieldType<NumberRangePrefixTreeStrategy>
protected Query getSpecializedRangeQuery(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.
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.
getSpecializedRangeQuery
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-2021 Apache Software Foundation. All Rights Reserved.