Package org.elasticsearch.index.mapper
Class KeywordFieldMapper.KeywordFieldType
java.lang.Object
org.elasticsearch.index.mapper.MappedFieldType
org.elasticsearch.index.mapper.SimpleMappedFieldType
org.elasticsearch.index.mapper.TermBasedFieldType
org.elasticsearch.index.mapper.StringFieldType
org.elasticsearch.index.mapper.KeywordFieldMapper.KeywordFieldType
- Enclosing class:
- KeywordFieldMapper
-
Nested Class Summary
Nested classes/interfaces inherited from class org.elasticsearch.index.mapper.MappedFieldType
MappedFieldType.CollapseType, MappedFieldType.Relation
-
Constructor Summary
ConstructorDescriptionKeywordFieldType
(String name) KeywordFieldType
(String name, boolean isIndexed, boolean hasDocValues, Map<String, String> meta) KeywordFieldType
(String name, org.apache.lucene.document.FieldType fieldType) KeywordFieldType
(String name, org.apache.lucene.document.FieldType fieldType, NamedAnalyzer normalizer, NamedAnalyzer searchAnalyzer, NamedAnalyzer quoteAnalyzer, KeywordFieldMapper.Builder builder) KeywordFieldType
(String name, NamedAnalyzer analyzer) -
Method Summary
Modifier and TypeMethodDescriptionReturns the collapse type of the field CollapseType.NONE means the field can'be used for collapsing.boolean
fielddataBuilder
(String fullyQualifiedIndexName, Supplier<SearchLookup> searchLookup) Return a fielddata builder for this fieldorg.apache.lucene.search.Query
fuzzyQuery
(Object value, Fuzziness fuzziness, int prefixLength, int maxExpansions, boolean transpositions, SearchExecutionContext context) org.apache.lucene.index.TermsEnum
getTerms
(boolean caseInsensitive, String string, SearchExecutionContext queryShardContext, String searchAfter) This method is used to support auto-complete services and implementations are expected to find terms beginning with the provided string very quickly.int
Values that have more chars than the return value of this method will be skipped at parsing time.protected org.apache.lucene.util.BytesRef
indexedValueForSearch
(Object value) Returns the indexed value used to construct search "values".boolean
boolean
Returns true if the field is searchable.org.apache.lucene.search.Query
normalizedWildcardQuery
(String value, org.apache.lucene.search.MultiTermQuery.RewriteMethod method, SearchExecutionContext context) org.apache.lucene.search.Query
prefixQuery
(String value, org.apache.lucene.search.MultiTermQuery.RewriteMethod method, boolean caseInsensitive, SearchExecutionContext context) org.apache.lucene.search.Query
rangeQuery
(Object lowerTerm, Object upperTerm, boolean includeLower, boolean includeUpper, SearchExecutionContext context) Same asSimpleMappedFieldType.rangeQuery(Object, Object, boolean, boolean, ShapeRelation, ZoneId, DateMathParser, SearchExecutionContext)
but without the trouble of relations or date-specific options.org.apache.lucene.search.Query
regexpQuery
(String value, int syntaxFlags, int matchFlags, int maxDeterminizedStates, org.apache.lucene.search.MultiTermQuery.RewriteMethod method, SearchExecutionContext context) org.apache.lucene.search.Query
termQuery
(Object value, SearchExecutionContext context) Generates a query that will only match documents that contain the given value.org.apache.lucene.search.Query
termQueryCaseInsensitive
(Object value, SearchExecutionContext context) org.apache.lucene.search.Query
termsQuery
(Collection<?> values, SearchExecutionContext context) Build a constant-scoring query that matches all values.typeName()
Returns the name of this type, as would be specified in mapping propertiesvoid
Validate that this field can be the target ofIndexMetadata.INDEX_ROUTING_PATH
.valueFetcher
(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.org.apache.lucene.search.Query
wildcardQuery
(String value, org.apache.lucene.search.MultiTermQuery.RewriteMethod method, boolean caseInsensitive, SearchExecutionContext context) Wildcard queries on keyword fields use the normalizer of the underlying field, regardless of their case sensitivity optionMethods inherited from class org.elasticsearch.index.mapper.StringFieldType
normalizeWildcardPattern, wildcardQuery
Methods inherited from class org.elasticsearch.index.mapper.TermBasedFieldType
mayExistInIndex
Methods inherited from class org.elasticsearch.index.mapper.SimpleMappedFieldType
rangeQuery
Methods inherited from class org.elasticsearch.index.mapper.MappedFieldType
checkNoFormat, checkNoTimeZone, distanceFeatureQuery, docValueFormat, existsQuery, extractTerm, failIfNoDocValues, failIfNotIndexed, failIfNotIndexedNorDocValuesFallback, familyTypeName, fuzzyIntervals, getMetricType, getTextSearchInfo, hasDocValues, isAggregatable, isFieldWithinQuery, isIndexed, isStored, meta, multiPhraseQuery, name, phrasePrefixQuery, phraseQuery, pointReaderIfPossible, prefixIntervals, prefixQuery, spanPrefixQuery, termIntervals, wildcardIntervals, wildcardQuery
-
Constructor Details
-
KeywordFieldType
public KeywordFieldType(String name, org.apache.lucene.document.FieldType fieldType, NamedAnalyzer normalizer, NamedAnalyzer searchAnalyzer, NamedAnalyzer quoteAnalyzer, KeywordFieldMapper.Builder builder) -
KeywordFieldType
-
KeywordFieldType
-
KeywordFieldType
-
KeywordFieldType
-
-
Method Details
-
isSearchable
public boolean isSearchable()Description copied from class:MappedFieldType
Returns true if the field is searchable.- Overrides:
isSearchable
in classMappedFieldType
-
termQuery
Description copied from class:MappedFieldType
Generates a query that will only match documents that contain the given value. The default implementation returns aTermQuery
over the value bytes- Overrides:
termQuery
in classTermBasedFieldType
-
termsQuery
public org.apache.lucene.search.Query termsQuery(Collection<?> values, SearchExecutionContext context) Description copied from class:MappedFieldType
Build a constant-scoring query that matches all values. The default implementation uses aConstantScoreQuery
around aBooleanQuery
whoseBooleanClause.Occur.SHOULD
clauses are generated withMappedFieldType.termQuery(java.lang.Object, org.elasticsearch.index.query.SearchExecutionContext)
.- Overrides:
termsQuery
in classTermBasedFieldType
-
rangeQuery
public org.apache.lucene.search.Query rangeQuery(Object lowerTerm, Object upperTerm, boolean includeLower, boolean includeUpper, SearchExecutionContext context) Description copied from class:SimpleMappedFieldType
Same asSimpleMappedFieldType.rangeQuery(Object, Object, boolean, boolean, ShapeRelation, ZoneId, DateMathParser, SearchExecutionContext)
but without the trouble of relations or date-specific options.- Overrides:
rangeQuery
in classStringFieldType
-
fuzzyQuery
public org.apache.lucene.search.Query fuzzyQuery(Object value, Fuzziness fuzziness, int prefixLength, int maxExpansions, boolean transpositions, SearchExecutionContext context) - Overrides:
fuzzyQuery
in classStringFieldType
-
prefixQuery
public org.apache.lucene.search.Query prefixQuery(String value, org.apache.lucene.search.MultiTermQuery.RewriteMethod method, boolean caseInsensitive, SearchExecutionContext context) - Overrides:
prefixQuery
in classStringFieldType
-
termQueryCaseInsensitive
public org.apache.lucene.search.Query termQueryCaseInsensitive(Object value, SearchExecutionContext context) - Overrides:
termQueryCaseInsensitive
in classTermBasedFieldType
-
getTerms
public org.apache.lucene.index.TermsEnum getTerms(boolean caseInsensitive, String string, SearchExecutionContext queryShardContext, String searchAfter) throws IOException Description copied from class:MappedFieldType
This method is used to support auto-complete services and implementations are expected to find terms beginning with the provided string very quickly. If fields cannot look up matching terms quickly they should return null. The returned TermEnum should implement next(), term() and doc_freq() methods but postings etc are not required.- Overrides:
getTerms
in classMappedFieldType
- Parameters:
caseInsensitive
- if matches should be case insensitivestring
- the partially complete word the user has typed (can be empty)queryShardContext
- the shard contextsearchAfter
- - usually null. If supplied the TermsEnum result must be positioned after the provided term (used for pagination)- Returns:
- null or an enumeration of matching terms and their doc frequencies
- Throws:
IOException
- Errors accessing data
-
typeName
Description copied from class:MappedFieldType
Returns the name of this type, as would be specified in mapping properties- Specified by:
typeName
in classMappedFieldType
-
eagerGlobalOrdinals
public boolean eagerGlobalOrdinals()- Overrides:
eagerGlobalOrdinals
in classMappedFieldType
- Returns:
- if this field type should load global ordinals eagerly
-
fielddataBuilder
public IndexFieldData.Builder fielddataBuilder(String fullyQualifiedIndexName, Supplier<SearchLookup> searchLookup) Description copied from class:MappedFieldType
Return a fielddata builder for this field- Overrides:
fielddataBuilder
in classMappedFieldType
- Parameters:
fullyQualifiedIndexName
- the name of the index this field-data is build forsearchLookup
- aSearchLookup
supplier to allow for accessing other fields values in the context of runtime fields
-
valueFetcher
Description copied from class:MappedFieldType
Create 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 throwUnsupportedOperationException
since this could cause a search retrieving multiple fields (like "fields": ["*"]) to fail.- Specified by:
valueFetcher
in classMappedFieldType
-
valueForDisplay
Description copied from class:MappedFieldType
Given 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:
valueForDisplay
in classMappedFieldType
-
indexedValueForSearch
Description copied from class:TermBasedFieldType
Returns the indexed value used to construct search "values". This method is used for the default implementations of most query factory methods such asTermBasedFieldType.termQuery(java.lang.Object, org.elasticsearch.index.query.SearchExecutionContext)
.- Overrides:
indexedValueForSearch
in classTermBasedFieldType
-
wildcardQuery
public org.apache.lucene.search.Query wildcardQuery(String value, org.apache.lucene.search.MultiTermQuery.RewriteMethod method, boolean caseInsensitive, SearchExecutionContext context) Wildcard queries on keyword fields use the normalizer of the underlying field, regardless of their case sensitivity option- Overrides:
wildcardQuery
in classStringFieldType
-
normalizedWildcardQuery
public org.apache.lucene.search.Query normalizedWildcardQuery(String value, org.apache.lucene.search.MultiTermQuery.RewriteMethod method, SearchExecutionContext context) - Overrides:
normalizedWildcardQuery
in classStringFieldType
-
regexpQuery
public org.apache.lucene.search.Query regexpQuery(String value, int syntaxFlags, int matchFlags, int maxDeterminizedStates, org.apache.lucene.search.MultiTermQuery.RewriteMethod method, SearchExecutionContext context) - Overrides:
regexpQuery
in classStringFieldType
-
collapseType
Description copied from class:MappedFieldType
Returns the collapse type of the field CollapseType.NONE means the field can'be used for collapsing.- Overrides:
collapseType
in classMappedFieldType
- Returns:
- collapse type of the field
-
ignoreAbove
public int ignoreAbove()Values that have more chars than the return value of this method will be skipped at parsing time. -
isDimension
public boolean isDimension()- Overrides:
isDimension
in classMappedFieldType
- Returns:
- true if field has been marked as a dimension field
-
validateMatchedRoutingPath
public void validateMatchedRoutingPath()Description copied from class:MappedFieldType
Validate that this field can be the target ofIndexMetadata.INDEX_ROUTING_PATH
.- Overrides:
validateMatchedRoutingPath
in classMappedFieldType
-