org.apache.solr.schema
Class TextField

java.lang.Object
  extended by org.apache.solr.schema.FieldProperties
      extended by org.apache.solr.schema.FieldType
          extended by org.apache.solr.schema.TextField

public class TextField
extends FieldType

TextField is the basic type for configurable text analysis. Analyzers for field types using this implementation should be defined in the schema.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.solr.schema.FieldType
FieldType.DefaultAnalyzer
 
Field Summary
protected  boolean autoGeneratePhraseQueries
           
protected  Analyzer multiTermAnalyzer
          Analyzer set by schema for text types to use when searching fields of this type, subclasses can set analyzer themselves or override getAnalyzer() This analyzer is used to process wildcard, prefix, regex and other multiterm queries.
 
Fields inherited from class org.apache.solr.schema.FieldType
analyzer, ANALYZER, args, CHAR_FILTER, CHAR_FILTERS, CLASS_NAME, docValuesFormat, falseProperties, FILTER, FILTERS, INDEX, INDEX_ANALYZER, log, MULTI_TERM, MULTI_TERM_ANALYZER, POLY_FIELD_SEPARATOR, postingsFormat, properties, QUERY, QUERY_ANALYZER, queryAnalyzer, similarity, SIMILARITY, similarityFactory, TOKENIZER, trueProperties, TYPE, TYPE_NAME, typeName
 
Fields inherited from class org.apache.solr.schema.FieldProperties
BINARY, DOC_VALUES, INDEXED, MULTIVALUED, OMIT_NORMS, OMIT_POSITIONS, OMIT_TF_POSITIONS, REQUIRED, SORT_MISSING_FIRST, SORT_MISSING_LAST, STORE_OFFSETS, STORE_TERMOFFSETS, STORE_TERMPOSITIONS, STORE_TERMVECTORS, STORED, TOKENIZED
 
Constructor Summary
TextField()
           
 
Method Summary
static BytesRef analyzeMultiTerm(String field, String part, Analyzer analyzerIn)
           
 boolean getAutoGeneratePhraseQueries()
           
 Query getFieldQuery(QParser parser, SchemaField field, String externalVal)
          Returns a Query instance for doing searches against a field.
 Analyzer getMultiTermAnalyzer()
          Returns the Analyzer to be used when searching fields of this type when mult-term queries are specified.
 Query getRangeQuery(QParser parser, SchemaField field, String part1, String part2, boolean minInclusive, boolean maxInclusive)
          Returns a Query instance for doing range searches on this field type.
 SortField getSortField(SchemaField field, boolean reverse)
          Returns the SortField instance that should be used to sort fields of this type.
protected  void init(IndexSchema schema, Map<String,String> args)
          subclasses should initialize themselves with the args provided and remove valid arguments.
 boolean isExplicitMultiTermAnalyzer()
           
 Object marshalSortValue(Object value)
          Convert a value used by the FieldComparator for this FieldType's SortField into a marshalable value for distributed sorting.
 void setAnalyzer(Analyzer analyzer)
          Sets the Analyzer to be used when indexing fields of this type.
 void setIsExplicitMultiTermAnalyzer(boolean isExplicitMultiTermAnalyzer)
           
 void setMultiTermAnalyzer(Analyzer analyzer)
           
 void setQueryAnalyzer(Analyzer analyzer)
          Sets the Analyzer to be used when querying fields of this type.
 Object toObject(SchemaField sf, BytesRef term)
           
 Object unmarshalSortValue(Object value)
          Convert a value marshaled via FieldType.marshalSortValue(java.lang.Object) back into a value usable by the FieldComparator for this FieldType's SortField
 void write(TextResponseWriter writer, String name, IndexableField f)
          calls back to TextResponseWriter to write the field value
 
Methods inherited from class org.apache.solr.schema.FieldType
checkSchemaField, createField, createField, createFields, getAnalyzer, getAnalyzerProperties, getClassArg, getDocValuesFormat, getIndexOptions, getNamedPropertyValues, getNonFieldPropertyArgs, getNumericType, getPostingsFormat, getPrefixQuery, getQueryAnalyzer, getRewriteMethod, getSimilarity, getSimilarityFactory, getStringSort, getTypeName, getValueSource, hasProperty, indexedToReadable, indexedToReadable, isExplicitAnalyzer, isExplicitQueryAnalyzer, isMultiValued, isPolyField, isTokenized, marshalBase64SortValue, marshalStringSortValue, multiValuedFieldCache, readableToIndexed, readableToIndexed, restrictProps, setArgs, setIsExplicitAnalyzer, setIsExplicitQueryAnalyzer, setSimilarity, storedToIndexed, storedToReadable, toExternal, toInternal, toObject, toString, unmarshalBase64SortValue, unmarshalStringSortValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

autoGeneratePhraseQueries

protected boolean autoGeneratePhraseQueries

multiTermAnalyzer

protected Analyzer multiTermAnalyzer
Analyzer set by schema for text types to use when searching fields of this type, subclasses can set analyzer themselves or override getAnalyzer() This analyzer is used to process wildcard, prefix, regex and other multiterm queries. It assembles a list of tokenizer +filters that "make sense" for this, primarily accent folding and lowercasing filters, and charfilters.

See Also:
getMultiTermAnalyzer(), setMultiTermAnalyzer(org.apache.lucene.analysis.Analyzer)
Constructor Detail

TextField

public TextField()
Method Detail

init

protected void init(IndexSchema schema,
                    Map<String,String> args)
Description copied from class: FieldType
subclasses should initialize themselves with the args provided and remove valid arguments. leftover arguments will cause an exception. Common boolean properties have already been handled.

Overrides:
init in class FieldType

getMultiTermAnalyzer

public Analyzer getMultiTermAnalyzer()
Returns the Analyzer to be used when searching fields of this type when mult-term queries are specified.

This method may be called many times, at any time.

See Also:
FieldType.getAnalyzer()

setMultiTermAnalyzer

public void setMultiTermAnalyzer(Analyzer analyzer)

getAutoGeneratePhraseQueries

public boolean getAutoGeneratePhraseQueries()

getSortField

public SortField getSortField(SchemaField field,
                              boolean reverse)
Description copied from class: FieldType
Returns the SortField instance that should be used to sort fields of this type.

Specified by:
getSortField in class FieldType
See Also:
SchemaField.checkSortability()

write

public void write(TextResponseWriter writer,
                  String name,
                  IndexableField f)
           throws IOException
Description copied from class: FieldType
calls back to TextResponseWriter to write the field value

Specified by:
write in class FieldType
Throws:
IOException

getFieldQuery

public Query getFieldQuery(QParser parser,
                           SchemaField field,
                           String externalVal)
Description copied from class: FieldType
Returns a Query instance for doing searches against a field.

Overrides:
getFieldQuery in class FieldType
Parameters:
parser - The QParser calling the method
field - The SchemaField of the field to search
externalVal - The String representation of the value to search
Returns:
The Query instance. This implementation returns a TermQuery but overriding queries may not

toObject

public Object toObject(SchemaField sf,
                       BytesRef term)
Overrides:
toObject in class FieldType

setAnalyzer

public void setAnalyzer(Analyzer analyzer)
Description copied from class: FieldType
Sets the Analyzer to be used when indexing fields of this type.

The default implementation throws a SolrException. Subclasses that override this method need to ensure the behavior of the analyzer is consistent with the implementation of toInternal.

Overrides:
setAnalyzer in class FieldType
See Also:
FieldType.toInternal(java.lang.String), FieldType.setQueryAnalyzer(org.apache.lucene.analysis.Analyzer), FieldType.getAnalyzer()

setQueryAnalyzer

public void setQueryAnalyzer(Analyzer analyzer)
Description copied from class: FieldType
Sets the Analyzer to be used when querying fields of this type.

The default implementation throws a SolrException. Subclasses that override this method need to ensure the behavior of the analyzer is consistent with the implementation of toInternal.

Overrides:
setQueryAnalyzer in class FieldType
See Also:
FieldType.toInternal(java.lang.String), FieldType.setAnalyzer(org.apache.lucene.analysis.Analyzer), FieldType.getQueryAnalyzer()

getRangeQuery

public Query getRangeQuery(QParser parser,
                           SchemaField field,
                           String part1,
                           String part2,
                           boolean minInclusive,
                           boolean maxInclusive)
Description copied from class: FieldType
Returns a Query instance for doing range searches on this field type. SolrQueryParser currently passes part1 and part2 as null if they are '*' respectively. minInclusive and maxInclusive are 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 part1 and/or part2 as well as unequal minInclusive and maxInclusive parameters gracefully.

Overrides:
getRangeQuery in class FieldType
Parameters:
parser - the QParser calling the method
field - the schema field
part1 - the lower boundary of the range, nulls are allowed.
part2 - the upper boundary of the range, nulls are allowed
minInclusive - whether the minimum of the range is inclusive or not
maxInclusive - whether the maximum of the range is inclusive or not
Returns:
a Query instance to perform range search according to given parameters

analyzeMultiTerm

public static BytesRef analyzeMultiTerm(String field,
                                        String part,
                                        Analyzer analyzerIn)

setIsExplicitMultiTermAnalyzer

public void setIsExplicitMultiTermAnalyzer(boolean isExplicitMultiTermAnalyzer)

isExplicitMultiTermAnalyzer

public boolean isExplicitMultiTermAnalyzer()

marshalSortValue

public Object marshalSortValue(Object value)
Description copied from class: FieldType
Convert a value used by the FieldComparator for this FieldType's SortField into a marshalable value for distributed sorting.

Overrides:
marshalSortValue in class FieldType

unmarshalSortValue

public Object unmarshalSortValue(Object value)
Description copied from class: FieldType
Convert a value marshaled via FieldType.marshalSortValue(java.lang.Object) back into a value usable by the FieldComparator for this FieldType's SortField

Overrides:
unmarshalSortValue in class FieldType


Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.