Class PreAnalyzedField
- java.lang.Object
-
- org.apache.solr.schema.FieldProperties
-
- org.apache.solr.schema.FieldType
-
- org.apache.solr.schema.TextField
-
- org.apache.solr.schema.PreAnalyzedField
-
- All Implemented Interfaces:
HasImplicitIndexAnalyzer
public class PreAnalyzedField extends TextField implements HasImplicitIndexAnalyzer
Pre-analyzed field type provides a way to index a serialized token stream, optionally with an independent stored value of a field.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPreAnalyzedField.ParseResultThis is a simple holder of a stored part and the collected states (tokens with attributes).static interfacePreAnalyzedField.PreAnalyzedParserParse the input and return the stored part and the tokens with attributes.-
Nested classes/interfaces inherited from class org.apache.solr.schema.FieldType
FieldType.DefaultAnalyzer, FieldType.MultiValueSelector
-
-
Field Summary
Fields Modifier and Type Field Description static StringPARSER_IMPLInit argument name.-
Fields inherited from class org.apache.solr.schema.TextField
autoGeneratePhraseQueries, enableGraphQueries, multiTermAnalyzer, synonymQueryStyle
-
Fields 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, typeName
-
Fields 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 Constructor Description PreAnalyzedField()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.lucene.index.IndexableFieldcreateField(SchemaField field, Object value)Used for adding a document when a field needs to be created from a type and a string.static org.apache.lucene.document.FieldTypecreateFieldType(SchemaField field)Utility method to create aFieldTypebased on theSchemaFieldorg.apache.lucene.index.IndexableFieldfromString(SchemaField field, String val)org.apache.lucene.analysis.AnalyzergetIndexAnalyzer()Overridden to return an analyzer consisting of aPreAnalyzedField.PreAnalyzedTokenizer.org.apache.lucene.analysis.AnalyzergetQueryAnalyzer()Returns the query analyzer defined via the schema, unless there is none, in which case the index-time pre-analyzer is returned.org.apache.lucene.search.SortFieldgetSortField(SchemaField field, boolean top)Returns the SortField instance that should be used to sort fields of this type.UninvertingReader.TypegetUninversionType(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.org.apache.lucene.queries.function.ValueSourcegetValueSource(SchemaField field, QParser parser)called to get the default value source (normally, from the Lucene FieldCache.)voidinit(IndexSchema schema, Map<String,String> args)subclasses should initialize themselves with the args provided and remove valid arguments.StringtoFormattedString(org.apache.lucene.document.Field f)Utility method to convert a field to a string that is parse-able by this class.voidwrite(TextResponseWriter writer, String name, org.apache.lucene.index.IndexableField f)calls back to TextResponseWriter to write the field value-
Methods inherited from class org.apache.solr.schema.TextField
analyzeMultiTerm, getAutoGeneratePhraseQueries, getEnableGraphQueries, getFieldQuery, getFieldTermQuery, getMultiTermAnalyzer, getSpecializedRangeQuery, getSynonymQueryStyle, isExplicitMultiTermAnalyzer, isUtf8Field, marshalSortValue, setIsExplicitMultiTermAnalyzer, setMultiTermAnalyzer, supportsAnalyzers, toObject, unmarshalSortValue
-
Methods inherited from class org.apache.solr.schema.FieldType
checkSchemaField, checkSupportsDocValues, createField, createFields, 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, isPolyField, isTokenized, marshalBase64SortValue, marshalStringSortValue, multiValuedFieldCache, readableToIndexed, readableToIndexed, restrictProps, setArgs, setIndexAnalyzer, setIsExplicitAnalyzer, setIsExplicitQueryAnalyzer, setQueryAnalyzer, setSimilarity, storedToIndexed, storedToReadable, toExternal, toInternal, toNativeType, toObject, toString, treatUnboundedRangeAsExistence, unmarshalBase64SortValue, unmarshalStringSortValue, useDocValuesAsStored, write
-
-
-
-
Field Detail
-
PARSER_IMPL
public static final String PARSER_IMPL
Init argument name. Value is a fully-qualified class name of the parser that implementsPreAnalyzedField.PreAnalyzedParser.- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public void init(IndexSchema schema, Map<String,String> args)
Description copied from class:FieldTypesubclasses should initialize themselves with the args provided and remove valid arguments. leftover arguments will cause an exception. Common boolean properties have already been handled.
-
getIndexAnalyzer
public org.apache.lucene.analysis.Analyzer getIndexAnalyzer()
Overridden to return an analyzer consisting of aPreAnalyzedField.PreAnalyzedTokenizer. NOTE: If an index analyzer is specified in the schema, it will be ignored.- Overrides:
getIndexAnalyzerin classFieldType- See Also:
FieldType.getQueryAnalyzer()
-
getQueryAnalyzer
public org.apache.lucene.analysis.Analyzer getQueryAnalyzer()
Returns the query analyzer defined via the schema, unless there is none, in which case the index-time pre-analyzer is returned.Note that if the schema specifies an index-time analyzer via either
<analyzer>or<analyzer type="index">, but no query-time analyzer, the query analyzer returned here will be the index-time analyzer specified in the schema rather than the pre-analyzer.- Overrides:
getQueryAnalyzerin classFieldType- See Also:
FieldType.getIndexAnalyzer()
-
createField
public org.apache.lucene.index.IndexableField createField(SchemaField field, Object value)
Description copied from class:FieldTypeUsed for adding a document when a field needs to be created from a type and a string.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.
- Overrides:
createFieldin classFieldType- See Also:
FieldType.toInternal(java.lang.String)
-
getSortField
public org.apache.lucene.search.SortField getSortField(SchemaField field, boolean top)
Description copied from class:FieldTypeReturns the SortField instance that should be used to sort fields of this type.
-
getValueSource
public org.apache.lucene.queries.function.ValueSource getValueSource(SchemaField field, QParser parser)
Description copied from class:FieldTypecalled to get the default value source (normally, from the Lucene FieldCache.)- Overrides:
getValueSourcein classTextField
-
getUninversionType
public UninvertingReader.Type getUninversionType(SchemaField sf)
Description copied from class:FieldTypeIf 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"- Overrides:
getUninversionTypein classTextField- Parameters:
sf- field instance- Returns:
- type to uninvert, or
null(to disallow uninversion for the field) - See Also:
SchemaField.isUninvertible()
-
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()- Overrides:
writein classTextField- Throws:
IOException
-
toFormattedString
public String toFormattedString(org.apache.lucene.document.Field f) throws IOException
Utility method to convert a field to a string that is parse-able by this class.- Parameters:
f- field to convert- Returns:
- string that is compatible with the serialization format
- Throws:
IOException- If there is a low-level I/O error.
-
createFieldType
public static org.apache.lucene.document.FieldType createFieldType(SchemaField field)
Utility method to create aFieldTypebased on theSchemaField
-
fromString
public org.apache.lucene.index.IndexableField fromString(SchemaField field, String val) throws Exception
- Throws:
Exception
-
-