Package org.apache.lucene.document
Class Field
- java.lang.Object
-
- org.apache.lucene.document.AbstractField
-
- org.apache.lucene.document.Field
-
- All Implemented Interfaces:
Serializable
,Fieldable
public final class Field extends AbstractField implements Fieldable, Serializable
A field is a section of a Document. Each field has two parts, a name and a value. Values may be free text, provided as a String or as a Reader, or they may be atomic keywords, which are not further processed. Such keywords may be used to represent dates, urls, etc. Fields are optionally stored in the index, so that they may be returned with hits on the document.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Field.Index
Specifies whether and how a field should be indexed.static class
Field.Store
Specifies whether and how a field should be stored.static class
Field.TermVector
Specifies whether and how a field should have term vectors.
-
Field Summary
-
Fields inherited from class org.apache.lucene.document.AbstractField
binaryLength, binaryOffset, boost, fieldsData, indexOptions, isBinary, isIndexed, isStored, isTokenized, lazy, name, omitNorms, storeOffsetWithTermVector, storePositionWithTermVector, storeTermVector, tokenStream
-
-
Constructor Summary
Constructors Constructor Description Field(String name, boolean internName, String value, Field.Store store, Field.Index index, Field.TermVector termVector)
Create a field by specifying its name, value and how it will be saved in the index.Field(String name, byte[] value)
Create a stored field with binary value.Field(String name, byte[] value, int offset, int length)
Create a stored field with binary value.Field(String name, byte[] value, int offset, int length, Field.Store store)
Deprecated.Useinstead
Field(String name, byte[] value, Field.Store store)
Deprecated.Useinstead
Field(String name, Reader reader)
Create a tokenized and indexed field that is not stored.Field(String name, Reader reader, Field.TermVector termVector)
Create a tokenized and indexed field that is not stored, optionally with storing term vectors.Field(String name, String value, Field.Store store, Field.Index index)
Create a field by specifying its name, value and how it will be saved in the index.Field(String name, String value, Field.Store store, Field.Index index, Field.TermVector termVector)
Create a field by specifying its name, value and how it will be saved in the index.Field(String name, TokenStream tokenStream)
Create a tokenized and indexed field that is not stored.Field(String name, TokenStream tokenStream, Field.TermVector termVector)
Create a tokenized and indexed field that is not stored, optionally with storing term vectors.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Reader
readerValue()
The value of the field as a Reader, or null.void
setTokenStream(TokenStream tokenStream)
Expert: sets the token stream to be used for indexing and causes isIndexed() and isTokenized() to return true.void
setValue(byte[] value)
Expert: change the value of this field.void
setValue(byte[] value, int offset, int length)
Expert: change the value of this field.void
setValue(Reader value)
Expert: change the value of this field.void
setValue(String value)
Expert: change the value of this field.String
stringValue()
The value of the field as a String, or null.TokenStream
tokenStreamValue()
The TokesStream for this field to be used when indexing, or null.-
Methods inherited from class org.apache.lucene.document.AbstractField
getBinaryLength, getBinaryOffset, getBinaryValue, getBinaryValue, getBoost, getIndexOptions, getOmitNorms, getOmitTermFreqAndPositions, isBinary, isIndexed, isLazy, isStored, isStoreOffsetWithTermVector, isStorePositionWithTermVector, isTermVectorStored, isTokenized, name, setBoost, setIndexOptions, setOmitNorms, setOmitTermFreqAndPositions, setStoreTermVector, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.lucene.document.Fieldable
getBinaryLength, getBinaryOffset, getBinaryValue, getBinaryValue, getBoost, getIndexOptions, getOmitNorms, isBinary, isIndexed, isLazy, isStored, isStoreOffsetWithTermVector, isStorePositionWithTermVector, isTermVectorStored, isTokenized, name, setBoost, setIndexOptions, setOmitNorms
-
-
-
-
Constructor Detail
-
Field
public Field(String name, String value, Field.Store store, Field.Index index)
Create a field by specifying its name, value and how it will be saved in the index. Term vectors will not be stored in the index.- Parameters:
name
- The name of the fieldvalue
- The string to processstore
- Whethervalue
should be stored in the indexindex
- Whether the field should be indexed, and if so, if it should be tokenized before indexing- Throws:
NullPointerException
- if name or value isnull
IllegalArgumentException
- if the field is neither stored nor indexed
-
Field
public Field(String name, String value, Field.Store store, Field.Index index, Field.TermVector termVector)
Create a field by specifying its name, value and how it will be saved in the index.- Parameters:
name
- The name of the fieldvalue
- The string to processstore
- Whethervalue
should be stored in the indexindex
- Whether the field should be indexed, and if so, if it should be tokenized before indexingtermVector
- Whether term vector should be stored- Throws:
NullPointerException
- if name or value isnull
IllegalArgumentException
- in any of the following situations:- the field is neither stored nor indexed
- the field is not indexed but termVector is
TermVector.YES
-
Field
public Field(String name, boolean internName, String value, Field.Store store, Field.Index index, Field.TermVector termVector)
Create a field by specifying its name, value and how it will be saved in the index.- Parameters:
name
- The name of the fieldinternName
- Whether to .intern() name or notvalue
- The string to processstore
- Whethervalue
should be stored in the indexindex
- Whether the field should be indexed, and if so, if it should be tokenized before indexingtermVector
- Whether term vector should be stored- Throws:
NullPointerException
- if name or value isnull
IllegalArgumentException
- in any of the following situations:- the field is neither stored nor indexed
- the field is not indexed but termVector is
TermVector.YES
-
Field
public Field(String name, Reader reader)
Create a tokenized and indexed field that is not stored. Term vectors will not be stored. The Reader is read only when the Document is added to the index, i.e. you may not close the Reader untilIndexWriter.addDocument(Document)
has been called.- Parameters:
name
- The name of the fieldreader
- The reader with the content- Throws:
NullPointerException
- if name or reader isnull
-
Field
public Field(String name, Reader reader, Field.TermVector termVector)
Create a tokenized and indexed field that is not stored, optionally with storing term vectors. The Reader is read only when the Document is added to the index, i.e. you may not close the Reader untilIndexWriter.addDocument(Document)
has been called.- Parameters:
name
- The name of the fieldreader
- The reader with the contenttermVector
- Whether term vector should be stored- Throws:
NullPointerException
- if name or reader isnull
-
Field
public Field(String name, TokenStream tokenStream)
Create a tokenized and indexed field that is not stored. Term vectors will not be stored. This is useful for pre-analyzed fields. The TokenStream is read only when the Document is added to the index, i.e. you may not close the TokenStream untilIndexWriter.addDocument(Document)
has been called.- Parameters:
name
- The name of the fieldtokenStream
- The TokenStream with the content- Throws:
NullPointerException
- if name or tokenStream isnull
-
Field
public Field(String name, TokenStream tokenStream, Field.TermVector termVector)
Create a tokenized and indexed field that is not stored, optionally with storing term vectors. This is useful for pre-analyzed fields. The TokenStream is read only when the Document is added to the index, i.e. you may not close the TokenStream untilIndexWriter.addDocument(Document)
has been called.- Parameters:
name
- The name of the fieldtokenStream
- The TokenStream with the contenttermVector
- Whether term vector should be stored- Throws:
NullPointerException
- if name or tokenStream isnull
-
Field
@Deprecated public Field(String name, byte[] value, Field.Store store)
Deprecated.Useinstead
Create a stored field with binary value. Optionally the value may be compressed.- Parameters:
name
- The name of the fieldvalue
- The binary valuestore
- Must be Store.YES- Throws:
IllegalArgumentException
- if store isStore.NO
-
Field
public Field(String name, byte[] value)
Create a stored field with binary value. Optionally the value may be compressed.- Parameters:
name
- The name of the fieldvalue
- The binary value
-
Field
@Deprecated public Field(String name, byte[] value, int offset, int length, Field.Store store)
Deprecated.Useinstead
Create a stored field with binary value. Optionally the value may be compressed.- Parameters:
name
- The name of the fieldvalue
- The binary valueoffset
- Starting offset in value where this Field's bytes arelength
- Number of bytes to use for this Field, starting at offsetstore
- Howvalue
should be stored (compressed or not)- Throws:
IllegalArgumentException
- if store isStore.NO
-
Field
public Field(String name, byte[] value, int offset, int length)
Create a stored field with binary value. Optionally the value may be compressed.- Parameters:
name
- The name of the fieldvalue
- The binary valueoffset
- Starting offset in value where this Field's bytes arelength
- Number of bytes to use for this Field, starting at offset
-
-
Method Detail
-
stringValue
public String stringValue()
The value of the field as a String, or null. If null, the Reader value or binary value is used. Exactly one of stringValue(), readerValue(), and getBinaryValue() must be set.- Specified by:
stringValue
in interfaceFieldable
-
readerValue
public Reader readerValue()
The value of the field as a Reader, or null. If null, the String value or binary value is used. Exactly one of stringValue(), readerValue(), and getBinaryValue() must be set.- Specified by:
readerValue
in interfaceFieldable
- See Also:
Fieldable.stringValue()
-
tokenStreamValue
public TokenStream tokenStreamValue()
The TokesStream for this field to be used when indexing, or null. If null, the Reader value or String value is analyzed to produce the indexed tokens.- Specified by:
tokenStreamValue
in interfaceFieldable
- See Also:
Fieldable.stringValue()
-
setValue
public void setValue(String value)
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 single
Document
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.
-
setValue
public void setValue(Reader value)
Expert: change the value of this field. See setValue(String).
-
setValue
public void setValue(byte[] value)
Expert: change the value of this field. See setValue(String).
-
setValue
public void setValue(byte[] value, int offset, int length)
Expert: change the value of this field. See setValue(String).
-
setTokenStream
public void setTokenStream(TokenStream tokenStream)
Expert: sets the token stream to be used for indexing and causes isIndexed() and isTokenized() to return true. May be combined with stored values from stringValue() or getBinaryValue()
-
-