Package org.apache.lucene.document
Class StringField
- java.lang.Object
-
- org.apache.lucene.document.Field
-
- org.apache.lucene.document.StringField
-
- All Implemented Interfaces:
IndexableField
public final class StringField extends Field
A field that is indexed but not tokenized: the entire String value is indexed as a single token. For example this might be used for a 'country' field or an 'id' field. If you also need to sort on this field, separately add aSortedDocValuesField
to your document.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.document.Field
Field.Store
-
-
Field Summary
Fields Modifier and Type Field Description static FieldType
TYPE_NOT_STORED
Indexed, not tokenized, omits norms, indexes DOCS_ONLY, not stored.static FieldType
TYPE_STORED
Indexed, not tokenized, omits norms, indexes DOCS_ONLY, stored-
Fields inherited from class org.apache.lucene.document.Field
fieldsData, name, tokenStream, type
-
-
Constructor Summary
Constructors Constructor Description StringField(String name, String value, Field.Store stored)
Creates a new textual StringField, indexing the provided String value as a single token.StringField(String name, BytesRef value, Field.Store stored)
Creates a new binary StringField, indexing the provided binary (BytesRef) value as a single token.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BytesRef
binaryValue()
Non-null if this field has a binary valueInvertableType
invertableType()
Describes how this field should be inverted.void
setBytesValue(BytesRef value)
Expert: change the value of this field.void
setStringValue(String value)
Expert: change the value of this field.StoredValue
storedValue()
Stored value.-
Methods inherited from class org.apache.lucene.document.Field
fieldType, getCharSequenceValue, name, numericValue, readerValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setTokenStream, stringValue, tokenStream, tokenStreamValue, toString
-
-
-
-
Constructor Detail
-
StringField
public StringField(String name, String value, Field.Store stored)
Creates a new textual StringField, indexing the provided String value as a single token.- Parameters:
name
- field namevalue
- String valuestored
- Store.YES if the content should also be stored- Throws:
IllegalArgumentException
- if the field name or value is null.
-
StringField
public StringField(String name, BytesRef value, Field.Store stored)
Creates a new binary StringField, indexing the provided binary (BytesRef) value as a single token.- Parameters:
name
- field namevalue
- BytesRef value. The provided value is not cloned so you must not change it until the document(s) holding it have been indexed.stored
- Store.YES if the content should also be stored- Throws:
IllegalArgumentException
- if the field name or value is null.
-
-
Method Detail
-
invertableType
public InvertableType invertableType()
Description copied from interface:IndexableField
Describes how this field should be inverted. This must return a non-null value if the field indexes terms and postings.- Specified by:
invertableType
in interfaceIndexableField
- Overrides:
invertableType
in classField
-
binaryValue
public BytesRef binaryValue()
Description copied from interface:IndexableField
Non-null if this field has a binary value- Specified by:
binaryValue
in interfaceIndexableField
- Overrides:
binaryValue
in classField
-
setStringValue
public void setStringValue(String value)
Description copied from class:Field
Expert: change the value of this field. This can be used during indexing to re-use a single Field instance to improve indexing speed by avoiding GC cost of new'ing and reclaiming Field instances. Typically a singleDocument
instance is re-used as well. This helps most on small documents.Each Field instance should only be used once within a single
Document
instance. See ImproveIndexingSpeed for details.- Overrides:
setStringValue
in classField
-
setBytesValue
public void setBytesValue(BytesRef value)
Description copied from class:Field
Expert: change the value of this field. SeeField.setStringValue(String)
.NOTE: the provided BytesRef is not copied so be sure not to change it until you're done with this field.
- Overrides:
setBytesValue
in classField
-
storedValue
public StoredValue storedValue()
Description copied from interface:IndexableField
Stored value. This method is called to populate stored fields and must return a non-null value if the field stored.- Specified by:
storedValue
in interfaceIndexableField
- Overrides:
storedValue
in classField
-
-