Class PointField
- Direct Known Subclasses:
DatePointField,DoublePointField,FloatPointField,IntPointField,LongPointField
IntPoint, LongPoint, FloatPoint and DoublePoint. See PointRangeQuery for
more details. It supports integer, float, long and double types. See subclasses for details. DocValues are supported for single-value cases (NumericDocValues).
FieldCache is not supported for PointFields, so sorting, faceting, etc on these fields
require the use of docValues="true" in the schema.-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.solr.schema.FieldType
FieldType.DefaultAnalyzer, FieldType.MultiValueSelector -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic booleanThe Test framework can set this global variable to instruct PointField that (on init) it should be tolerant of theprecisionStepargument used by TrieFields.Fields inherited from class org.apache.solr.schema.NumericFieldType
doubleOrFloat, typeFields 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, typeNameFields 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 -
Method Summary
Modifier and TypeMethodDescriptionList<org.apache.lucene.index.IndexableField> createFields(SchemaField sf, Object value) Given aSchemaField, create one or moreIndexableFieldinstancesprotected abstract org.apache.lucene.search.QuerygetExactQuery(SchemaField field, String externalVal) org.apache.lucene.search.QuerygetFieldQuery(QParser parser, SchemaField field, String externalVal) Returns a Query instance for doing searches against a field.abstract org.apache.lucene.search.QuerygetPointRangeQuery(QParser parser, SchemaField field, String min, String max, boolean minInclusive, boolean maxInclusive) org.apache.lucene.search.QuerygetPrefixQuery(QParser parser, SchemaField sf, String termStr) Returns a Query instance for doing prefix searches on this field type.org.apache.lucene.search.QuerygetSetQuery(QParser parser, SchemaField field, Collection<String> externalVals) protected abstract org.apache.lucene.queries.function.ValueSourcegetSingleValueSource(org.apache.lucene.search.SortedNumericSelector.Type choice, SchemaField field) Helper method that will only be called for multivalued Point fields that have doc values.final org.apache.lucene.queries.function.ValueSourcegetSingleValueSource(FieldType.MultiValueSelector choice, SchemaField field, QParser parser) Method for dynamically building a ValueSource based on a single value of a multivalued field.org.apache.lucene.search.SortFieldgetSortField(SchemaField field, boolean top) Returns the SortField instance that should be used to sort fields of this type.protected org.apache.lucene.search.QuerygetSpecializedRangeQuery(QParser parser, SchemaField field, String min, String max, boolean minInclusive, boolean maxInclusive) Returns a Query instance for doing range searches on this field type.protected abstract org.apache.lucene.document.StoredFieldgetStoredField(SchemaField sf, Object value) indexedToReadable(String indexedForm) Given an indexed term, return the human readable representationprotected abstract StringindexedToReadable(org.apache.lucene.util.BytesRef indexedForm) org.apache.lucene.util.CharsRefindexedToReadable(org.apache.lucene.util.BytesRef indexedForm, org.apache.lucene.util.CharsRefBuilder charsRef) Given an indexed term, append the human readable representationprotected voidinit(IndexSchema schema, Map<String, String> args) NOTE: This method can be removed completely whenTEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGSis removedprotected booleanisFieldUsed(SchemaField field) booleanbooleanReturns true if fields of this type should be tokenizedbooleanReturns true if a single field value of this type has multiple logical values for the purposes of faceting, sorting, etc.storedToIndexed(org.apache.lucene.index.IndexableField f) Given the stored field, return the indexed formstoredToReadable(org.apache.lucene.index.IndexableField f) Given the stored field, return the human readable representationtoInternal(String val) Convert an external value (from XML update command or from query string) into the internal format for both storing and indexing (which can be modified by any analyzers).org.apache.lucene.util.BytesReftoInternalByteRef(String val) voidwrite(TextResponseWriter writer, String name, org.apache.lucene.index.IndexableField f) calls back to TextResponseWriter to write the field valueMethods inherited from class org.apache.solr.schema.NumericFieldType
getDocValuesRangeQuery, getNumberType, getRangeQueryForFloatDoubleDocValues, getRangeQueryForMultiValuedDoubleDocValues, getRangeQueryForMultiValuedFloatDocValues, getSpecializedExistenceQuery, numericDocValuesRangeQuery, treatUnboundedRangeAsExistenceMethods inherited from class org.apache.solr.schema.PrimitiveFieldType
checkSupportsDocValues, enableDocValuesByDefault, getDefaultMultiValueSelectorForSortMethods inherited from class org.apache.solr.schema.FieldType
checkSchemaField, createField, createField, getAnalyzerProperties, getClassArg, getDocValuesFormat, getExistenceQuery, getFieldTermQuery, getIndexAnalyzer, getNamedPropertyValues, getNonFieldPropertyArgs, getNumericSort, getPostingsFormat, getQueryAnalyzer, getRangeQuery, getRewriteMethod, getSimilarity, getSimilarityFactory, getSortedNumericSortField, getSortedSetSortField, getSortField, getStringSort, getTypeName, getUninversionType, getValueSource, hasProperty, isExplicitAnalyzer, isExplicitQueryAnalyzer, isMultiValued, isPolyField, isUtf8Field, marshalBase64SortValue, marshalSortValue, marshalStringSortValue, readableToIndexed, readableToIndexed, restrictProps, setArgs, setIndexAnalyzer, setIsExplicitAnalyzer, setIsExplicitQueryAnalyzer, setQueryAnalyzer, setSimilarity, supportsAnalyzers, toExternal, toNativeType, toObject, toObject, toString, unmarshalBase64SortValue, unmarshalSortValue, unmarshalStringSortValue, useDocValuesAsStored, write
-
Field Details
-
TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS
public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGSThe Test framework can set this global variable to instruct PointField that (on init) it should be tolerant of theprecisionStepargument used by TrieFields. This allows for simple randomization of TrieFields and PointFields w/o extensive duplication of<fieldType/>declarations.NOTE: When
TrieFieldis removed, this boolean must also be removed- WARNING: This API is experimental and might change in incompatible ways in the next release.
- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
-
Constructor Details
-
PointField
public PointField()
-
-
Method Details
-
init
NOTE: This method can be removed completely whenTEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGSis removed- Overrides:
initin classPrimitiveFieldType
-
isPointField
public boolean isPointField()- Overrides:
isPointFieldin classFieldType
-
getSingleValueSource
public final org.apache.lucene.queries.function.ValueSource getSingleValueSource(FieldType.MultiValueSelector choice, SchemaField field, QParser parser) Description copied from class:FieldTypeMethod for dynamically building a ValueSource based on a single value of a multivalued field.The default implementation throws an error except in the trivial case where this method is used on a
SchemaFieldthat is in fact not-multivalued, in which case it delegates toFieldType.getValueSource(org.apache.solr.schema.SchemaField, org.apache.solr.search.QParser)- Overrides:
getSingleValueSourcein classFieldType- See Also:
-
getSingleValueSource
protected abstract org.apache.lucene.queries.function.ValueSource getSingleValueSource(org.apache.lucene.search.SortedNumericSelector.Type choice, SchemaField field) Helper method that will only be called for multivalued Point fields that have doc values. Default impl throws an error indicating that selecting a single value from this multivalued field is not supported for this field type- Parameters:
choice- the selector Type to use, will never be nullfield- the field to use, guaranteed to be multivalued.- See Also:
-
isTokenized
public boolean isTokenized()Description copied from class:FieldTypeReturns true if fields of this type should be tokenized- Overrides:
isTokenizedin classFieldType
-
multiValuedFieldCache
public boolean multiValuedFieldCache()Description copied from class:FieldTypeReturns true if a single field value of this type has multiple logical values for the purposes of faceting, sorting, etc. Text fields normally return true since each token/word is a logical value.- Overrides:
multiValuedFieldCachein classFieldType
-
getSetQuery
public org.apache.lucene.search.Query getSetQuery(QParser parser, SchemaField field, Collection<String> externalVals) - Overrides:
getSetQueryin classFieldType
-
getFieldQuery
public org.apache.lucene.search.Query getFieldQuery(QParser parser, SchemaField field, String externalVal) Description copied from class:FieldTypeReturns a Query instance for doing searches against a field.- Overrides:
getFieldQueryin classFieldType- Parameters:
parser- TheQParsercalling the methodfield- TheSchemaFieldof the field to searchexternalVal- The String representation of the value to search- Returns:
- The
Queryinstance. This implementation returns aTermQuerybut overriding queries may not
-
getExactQuery
protected abstract org.apache.lucene.search.Query getExactQuery(SchemaField field, String externalVal) -
getSpecializedRangeQuery
protected org.apache.lucene.search.Query getSpecializedRangeQuery(QParser parser, SchemaField field, String min, String max, boolean minInclusive, boolean maxInclusive) Description copied from class:FieldTypeReturns a Query instance for doing range searches on this field type.SolrQueryParsercurrently passespart1andpart2as null if they are '*' respectively.minInclusiveandmaxInclusiveare 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
part1and/orpart2as well as unequalminInclusiveandmaxInclusiveparameters 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:
getSpecializedRangeQueryin classFieldType- Parameters:
parser- theQParsercalling the methodfield- the schema fieldmin- the lower boundary of the range, nulls are allowed.max- 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
-
getPointRangeQuery
public abstract org.apache.lucene.search.Query getPointRangeQuery(QParser parser, SchemaField field, String min, String max, boolean minInclusive, boolean maxInclusive) -
storedToReadable
Description copied from class:FieldTypeGiven the stored field, return the human readable representation- Overrides:
storedToReadablein classFieldType
-
toInternal
Description copied from class:FieldTypeConvert an external value (from XML update command or from query string) into the internal format for both storing and indexing (which can be modified by any analyzers).- Overrides:
toInternalin classFieldType- See Also:
-
toInternalByteRef
-
write
public void write(TextResponseWriter writer, String name, org.apache.lucene.index.IndexableField f) throws IOException Description copied from class:FieldTypecalls back to TextResponseWriter to write the field valueSub-classes should prefer using
FieldType.toExternal(IndexableField)orFieldType.toObject(IndexableField)to get the writeable external value offinstead of directly usingf.stringValue()orf.binaryValue()- Specified by:
writein classFieldType- Throws:
IOException
-
storedToIndexed
Description copied from class:FieldTypeGiven the stored field, return the indexed form- Overrides:
storedToIndexedin classFieldType
-
indexedToReadable
public org.apache.lucene.util.CharsRef indexedToReadable(org.apache.lucene.util.BytesRef indexedForm, org.apache.lucene.util.CharsRefBuilder charsRef) Description copied from class:FieldTypeGiven an indexed term, append the human readable representation- Overrides:
indexedToReadablein classFieldType
-
indexedToReadable
Description copied from class:FieldTypeGiven an indexed term, return the human readable representation- Overrides:
indexedToReadablein classFieldType
-
indexedToReadable
-
getPrefixQuery
public org.apache.lucene.search.Query getPrefixQuery(QParser parser, SchemaField sf, String termStr) Description copied from class:FieldTypeReturns a Query instance for doing prefix searches on this field type. Also, other QueryParser implementations may have different semantics.Sub-classes should override this method to provide their own range query implementation.
- Overrides:
getPrefixQueryin classFieldType- Parameters:
parser- theQParsercalling the methodsf- the schema fieldtermStr- the term string for prefix query, if blank then this query should match all docs with this field- Returns:
- a Query instance to perform prefix search
-
isFieldUsed
-
createFields
Description copied from class:FieldTypeGiven aSchemaField, create one or moreIndexableFieldinstances- Overrides:
createFieldsin classFieldType- Parameters:
sf- theSchemaFieldvalue- The value to add to the field- Returns:
- An array of
IndexableField - See Also:
-
getStoredField
protected abstract org.apache.lucene.document.StoredField getStoredField(SchemaField sf, Object value) -
getSortField
Description copied from class:FieldTypeReturns the SortField instance that should be used to sort fields of this type.- Specified by:
getSortFieldin classFieldType- See Also:
-