public class BinaryField extends FieldType
FieldType.DefaultAnalyzer, FieldType.MultiValueSelector
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 |
---|
BinaryField() |
Modifier and Type | Method and Description |
---|---|
void |
checkSchemaField(SchemaField field)
Check's
SchemaField instances constructed
using this field type to ensure that they are valid. |
IndexableField |
createField(SchemaField field,
Object val)
Used for adding a document when a field needs to be created from a
type and a string.
|
SortField |
getSortField(SchemaField field,
boolean top)
Returns the SortField instance that should be used to sort fields
of this type.
|
UninvertingReader.Type |
getUninversionType(SchemaField sf)
If DocValues is not enabled for a field, but it's indexed, docvalues can be constructed
on the fly (uninverted, aka fieldcache) on the first request to sort, facet, etc.
|
String |
toExternal(IndexableField f)
Convert the stored-field format to an external (string, human readable)
value
|
Object |
toNativeType(Object val)
Converts any Object to a java Object native to this field type
|
ByteBuffer |
toObject(IndexableField f)
Convert the stored-field format to an external object.
|
void |
write(TextResponseWriter writer,
String name,
IndexableField f)
calls back to TextResponseWriter to write the field value
|
checkSupportsDocValues, createField, createFields, getAnalyzerProperties, getClassArg, getDefaultMultiValueSelectorForSort, getDocValuesFormat, getFieldQuery, getIndexAnalyzer, getNamedPropertyValues, getNonFieldPropertyArgs, getNumberType, getNumericSort, getPostingsFormat, getPrefixQuery, getQueryAnalyzer, getRangeQuery, getRewriteMethod, getSetQuery, getSimilarity, getSimilarityFactory, getSingleValueSource, getSortedNumericSortField, getSortedSetSortField, getSortField, getStringSort, getTypeName, getValueSource, hasProperty, indexedToReadable, indexedToReadable, init, isExplicitAnalyzer, isExplicitQueryAnalyzer, isMultiValued, isPointField, isPolyField, isTokenized, isUtf8Field, marshalBase64SortValue, marshalSortValue, marshalStringSortValue, multiValuedFieldCache, readableToIndexed, readableToIndexed, restrictProps, setArgs, setIndexAnalyzer, setIsExplicitAnalyzer, setIsExplicitQueryAnalyzer, setQueryAnalyzer, setSimilarity, storedToIndexed, storedToReadable, supportsAnalyzers, toInternal, toObject, toString, unmarshalBase64SortValue, unmarshalSortValue, unmarshalStringSortValue, useDocValuesAsStored, write
public void checkSchemaField(SchemaField field)
FieldType
SchemaField
instances constructed
using this field type to ensure that they are valid.
This method is called by the SchemaField
constructor to
check that its initialization does not violate any fundamental
requirements of the FieldType
.
Subclasses may choose to throw a SolrException
if invariants are violated by the SchemaField.
checkSchemaField
in class FieldType
public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException
FieldType
write
in class FieldType
IOException
public SortField getSortField(SchemaField field, boolean top)
FieldType
public UninvertingReader.Type getUninversionType(SchemaField sf)
FieldType
If DocValues is not enabled for a field, but it's indexed, docvalues can be constructed on the fly (uninverted, aka fieldcache) on the first request to sort, facet, etc. This specifies the structure to use.
This method will not be used if the field is (effectively) uninvertible="false"
getUninversionType
in class FieldType
sf
- field instancenull
(to disallow uninversion for the field)SchemaField.isUninvertible()
public String toExternal(IndexableField f)
FieldType
toExternal
in class FieldType
FieldType.toInternal(java.lang.String)
public ByteBuffer toObject(IndexableField f)
FieldType
toObject
in class FieldType
FieldType.toInternal(java.lang.String)
public IndexableField createField(SchemaField field, Object val)
FieldType
By default, the indexed value is the same as the stored value (taken from toInternal()). Having a different representation for external, internal, and indexed would present quite a few problems given the current Lucene architecture. An analyzer for adding docs would need to translate internal->indexed while an analyzer for querying would need to translate external->indexed.
The only other alternative to having internal==indexed would be to have internal==external. In this case, toInternal should convert to the indexed representation, toExternal() should do nothing, and createField() should *not* call toInternal, but use the external value and set tokenized=true to get Lucene to convert to the internal(indexed) form.
:TODO: clean up and clarify this explanation.createField
in class FieldType
FieldType.toInternal(java.lang.String)
public Object toNativeType(Object val)
FieldType
toNativeType
in class FieldType
Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.