Module org.elasticsearch.server
Package org.elasticsearch.index.mapper
Class DateFieldMapper.DateFieldType
java.lang.Object
org.elasticsearch.index.mapper.MappedFieldType
org.elasticsearch.index.mapper.DateFieldMapper.DateFieldType
- Enclosing class:
DateFieldMapper
-
Nested Class Summary
Nested classes/interfaces inherited from class org.elasticsearch.index.mapper.MappedFieldType
MappedFieldType.BlockLoaderContext, MappedFieldType.CollapseType, MappedFieldType.FielddataOperation, MappedFieldType.FieldExtractPreference, MappedFieldType.Relation -
Constructor Summary
ConstructorsConstructorDescriptionDateFieldType(String name) DateFieldType(String name, boolean isIndexed) DateFieldType(String name, boolean isIndexed, boolean pointsMetadataAvailable, boolean isStored, boolean hasDocValues, boolean hasDocValuesSkipper, boolean isSyntheticSource, DateFormatter dateTimeFormatter, DateFieldMapper.Resolution resolution, String nullValue, FieldValues<Long> scriptValues, Map<String, String> meta) DateFieldType(String name, boolean isIndexed, boolean pointsMetadataAvailable, boolean isStored, boolean hasDocValues, DateFormatter dateTimeFormatter, DateFieldMapper.Resolution resolution, String nullValue, FieldValues<Long> scriptValues, Map<String, String> meta) DateFieldType(String name, boolean isIndexed, boolean isStored, boolean hasDocValues, DateFormatter dateTimeFormatter, DateFieldMapper.Resolution resolution, String nullValue, FieldValues<Long> scriptValues, Map<String, String> meta) DateFieldType(String name, boolean isIndexed, DateFieldMapper.Resolution resolution) DateFieldType(String name, DateFormatter dateFormatter) DateFieldType(String name, DateFieldMapper.Resolution resolution) DateFieldType(String name, DateFieldMapper.Resolution resolution, DateFormatter dateFormatter) -
Method Summary
Modifier and TypeMethodDescriptionblockLoader(MappedFieldType.BlockLoaderContext blContext) Returns a loader for ESQL ornullif the field doesn't support ESQL.protected DateMathParserstatic org.apache.lucene.search.QuerydateRangeQuery(Object lowerTerm, Object upperTerm, boolean includeLower, boolean includeUpper, ZoneId timeZone, DateMathParser parser, SearchExecutionContext context, DateFieldMapper.Resolution resolution, BiFunction<Long, Long, org.apache.lucene.search.Query> builder) org.apache.lucene.search.QuerydistanceFeatureQuery(Object origin, String pivot, SearchExecutionContext context) docValueFormat(String format, ZoneId timeZone) Pick aDocValueFormatthat can be used to display and parse values of fields of this type.org.apache.lucene.search.QueryequalityQuery(Long value, SearchExecutionContext context) Similar to thetermQuery(java.lang.Object, org.elasticsearch.index.query.SearchExecutionContext)method, but works on dates that are already parsed to a long in the same precision as the field mapper.fielddataBuilder(FieldDataContext fieldDataContext) Return a fielddata builder for this fieldstatic org.apache.lucene.search.QueryhandleNow(SearchExecutionContext context, Function<LongSupplier, org.apache.lucene.search.Query> builder) Handlenowin queries.booleanisFieldWithinQuery(long minValue, long maxValue, Object from, Object to, boolean includeLower, boolean includeUpper, ZoneId timeZone, DateMathParser dateParser, QueryRewriteContext context) isFieldWithinQuery(org.apache.lucene.index.IndexReader reader, Object from, Object to, boolean includeLower, boolean includeUpper, ZoneId timeZone, DateMathParser dateParser, QueryRewriteContext context) Return whether all values of the givenIndexReaderare within the range, outside the range or cross the range.booleanReturns true if the field is searchable.booleanmayExistInIndex(SearchExecutionContext context) longlongparseToLong(Object value, boolean roundUp, ZoneId zone, DateMathParser dateParser, LongSupplier now) static longparseToLong(Object value, boolean roundUp, ZoneId zone, DateMathParser dateParser, LongSupplier now, DateFieldMapper.Resolution resolution) If the field supports using the indexed data to speed up operations related to ordering of data, such as sorting or aggs, return a function for doing that.org.apache.lucene.search.QueryrangeQuery(Long lowerTerm, Long upperTerm, boolean includeLower, boolean includeUpper, SearchExecutionContext context) Similar to the existingrangeQuery(Object, Object, boolean, boolean, ShapeRelation, ZoneId, DateMathParser, SearchExecutionContext)method, but works on dates that are already parsed to a long in the same precision as the field mapper.org.apache.lucene.search.QueryrangeQuery(Object lowerTerm, Object upperTerm, boolean includeLower, boolean includeUpper, ShapeRelation relation, ZoneId timeZone, DateMathParser forcedDateParser, SearchExecutionContext context) Factory method for range queries.org.apache.lucene.search.QuerytermQuery(Object value, SearchExecutionContext context) Generates a query that will only match documents that contain the given value.typeName()Returns the name of this type, as would be specified in mapping propertiesvalueFetcher(SearchExecutionContext context, String format) Create a helper class to fetch field values during theFetchFieldsPhase.valueForDisplay(Object value) Given a value that comes from the stored fields API, convert it to the expected type.Methods inherited from class org.elasticsearch.index.mapper.MappedFieldType
automatonQuery, checkNoFormat, checkNoTimeZone, collapseType, dimensions, eagerGlobalOrdinals, existsQuery, failIfNoDocValues, failIfNotIndexed, failIfNotIndexedNorDocValuesFallback, familyTypeName, fieldHasValue, fuzzyIntervals, fuzzyQuery, fuzzyQuery, getDefaultHighlighter, getMetricType, getTerms, getTextSearchInfo, hasDocValues, hasScriptValues, isAggregatable, isDimension, isIndexed, isStored, isVectorEmbedding, meta, multiPhraseQuery, name, normalizedWildcardQuery, phrasePrefixQuery, phraseQuery, prefixIntervals, prefixQuery, prefixQuery, rangeIntervals, regexpIntervals, regexpQuery, spanPrefixQuery, termIntervals, termQueryCaseInsensitive, termsQuery, validateMatchedRoutingPath, wildcardIntervals, wildcardLikeQuery, wildcardQuery, wildcardQuery
-
Constructor Details
-
DateFieldType
public DateFieldType(String name, boolean isIndexed, boolean pointsMetadataAvailable, boolean isStored, boolean hasDocValues, DateFormatter dateTimeFormatter, DateFieldMapper.Resolution resolution, String nullValue, FieldValues<Long> scriptValues, Map<String, String> meta) -
DateFieldType
public DateFieldType(String name, boolean isIndexed, boolean pointsMetadataAvailable, boolean isStored, boolean hasDocValues, boolean hasDocValuesSkipper, boolean isSyntheticSource, DateFormatter dateTimeFormatter, DateFieldMapper.Resolution resolution, String nullValue, FieldValues<Long> scriptValues, Map<String, String> meta) -
DateFieldType
public DateFieldType(String name, boolean isIndexed, boolean isStored, boolean hasDocValues, DateFormatter dateTimeFormatter, DateFieldMapper.Resolution resolution, String nullValue, FieldValues<Long> scriptValues, Map<String, String> meta) -
DateFieldType
-
DateFieldType
-
DateFieldType
-
DateFieldType
-
DateFieldType
-
DateFieldType
public DateFieldType(String name, DateFieldMapper.Resolution resolution, DateFormatter dateFormatter)
-
-
Method Details
-
typeName
Description copied from class:MappedFieldTypeReturns the name of this type, as would be specified in mapping properties- Specified by:
typeNamein classMappedFieldType
-
dateTimeFormatter
-
resolution
-
dateMathParser
-
parse
-
hasDocValuesSkipper
public boolean hasDocValuesSkipper() -
mayExistInIndex
- Overrides:
mayExistInIndexin classMappedFieldType- Returns:
- if the field may have values in the underlying index
Note that this should only return
falseif it is not possible for it to match on a term query. - See Also:
-
valueFetcher
Description copied from class:MappedFieldTypeCreate a helper class to fetch field values during theFetchFieldsPhase. New field types must implement this method in order to support the search 'fields' option. Except for metadata fields, field types should not throwUnsupportedOperationExceptionsince this could cause a search retrieving multiple fields (like "fields": ["*"]) to fail.- Specified by:
valueFetcherin classMappedFieldType
-
isSearchable
public boolean isSearchable()Description copied from class:MappedFieldTypeReturns true if the field is searchable.- Overrides:
isSearchablein classMappedFieldType
-
termQuery
public org.apache.lucene.search.Query termQuery(Object value, @Nullable SearchExecutionContext context) Description copied from class:MappedFieldTypeGenerates a query that will only match documents that contain the given value. The default implementation returns aTermQueryover the value bytes- Specified by:
termQueryin classMappedFieldType
-
rangeQuery
public org.apache.lucene.search.Query rangeQuery(Object lowerTerm, Object upperTerm, boolean includeLower, boolean includeUpper, ShapeRelation relation, @Nullable ZoneId timeZone, @Nullable DateMathParser forcedDateParser, SearchExecutionContext context) Description copied from class:MappedFieldTypeFactory method for range queries.- Overrides:
rangeQueryin classMappedFieldType- Parameters:
relation- the relation, nulls should be interpreted like INTERSECTS
-
dateRangeQuery
public static org.apache.lucene.search.Query dateRangeQuery(Object lowerTerm, Object upperTerm, boolean includeLower, boolean includeUpper, @Nullable ZoneId timeZone, DateMathParser parser, SearchExecutionContext context, DateFieldMapper.Resolution resolution, BiFunction<Long, Long, org.apache.lucene.search.Query> builder) -
handleNow
public static org.apache.lucene.search.Query handleNow(SearchExecutionContext context, Function<LongSupplier, org.apache.lucene.search.Query> builder) Handlenowin queries.- Parameters:
context- context from which to read the current timebuilder- build the query- Returns:
- the result of the builder, wrapped in
DateRangeIncludingNowQueryifnowwas used.
-
parseToLong
public long parseToLong(Object value, boolean roundUp, @Nullable ZoneId zone, DateMathParser dateParser, LongSupplier now) -
parseToLong
public static long parseToLong(Object value, boolean roundUp, @Nullable ZoneId zone, DateMathParser dateParser, LongSupplier now, DateFieldMapper.Resolution resolution) -
equalityQuery
public org.apache.lucene.search.Query equalityQuery(Long value, @Nullable SearchExecutionContext context) Similar to thetermQuery(java.lang.Object, org.elasticsearch.index.query.SearchExecutionContext)method, but works on dates that are already parsed to a long in the same precision as the field mapper. -
rangeQuery
public org.apache.lucene.search.Query rangeQuery(Long lowerTerm, Long upperTerm, boolean includeLower, boolean includeUpper, SearchExecutionContext context) Similar to the existingrangeQuery(Object, Object, boolean, boolean, ShapeRelation, ZoneId, DateMathParser, SearchExecutionContext)method, but works on dates that are already parsed to a long in the same precision as the field mapper. -
distanceFeatureQuery
public org.apache.lucene.search.Query distanceFeatureQuery(Object origin, String pivot, SearchExecutionContext context) - Overrides:
distanceFeatureQueryin classMappedFieldType
-
isFieldWithinQuery
public MappedFieldType.Relation isFieldWithinQuery(org.apache.lucene.index.IndexReader reader, Object from, Object to, boolean includeLower, boolean includeUpper, ZoneId timeZone, DateMathParser dateParser, QueryRewriteContext context) throws IOException Description copied from class:MappedFieldTypeReturn whether all values of the givenIndexReaderare within the range, outside the range or cross the range. The default implementation returnsMappedFieldType.Relation.INTERSECTS, which is always fine to return when there is no way to check whether values are actually within bounds.- Overrides:
isFieldWithinQueryin classMappedFieldType- Throws:
IOException
-
isFieldWithinQuery
public MappedFieldType.Relation isFieldWithinQuery(long minValue, long maxValue, Object from, Object to, boolean includeLower, boolean includeUpper, ZoneId timeZone, DateMathParser dateParser, QueryRewriteContext context) -
pointReaderIfPossible
Description copied from class:MappedFieldTypeIf the field supports using the indexed data to speed up operations related to ordering of data, such as sorting or aggs, return a function for doing that. If it is unsupported for this field type, there is no need to override this method.- Overrides:
pointReaderIfPossiblein classMappedFieldType- Returns:
- null if the optimization cannot be applied, otherwise a function to use for the optimization
-
blockLoader
Description copied from class:MappedFieldTypeReturns a loader for ESQL ornullif the field doesn't support ESQL.- Overrides:
blockLoaderin classMappedFieldType
-
fielddataBuilder
Description copied from class:MappedFieldTypeReturn a fielddata builder for this field- Overrides:
fielddataBuilderin classMappedFieldType- Parameters:
fieldDataContext- the context for the fielddata
-
valueForDisplay
Description copied from class:MappedFieldTypeGiven 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:
valueForDisplayin classMappedFieldType
-
docValueFormat
Description copied from class:MappedFieldTypePick aDocValueFormatthat can be used to display and parse values of fields of this type.- Overrides:
docValueFormatin classMappedFieldType
-