public abstract class AbstractField extends Object implements Fieldable
Modifier and Type | Field and Description |
---|---|
protected int |
binaryLength |
protected int |
binaryOffset |
protected float |
boost |
protected Object |
fieldsData |
protected FieldInfo.IndexOptions |
indexOptions |
protected boolean |
isBinary |
protected boolean |
isIndexed |
protected boolean |
isStored |
protected boolean |
isTokenized |
protected boolean |
lazy |
protected String |
name |
protected boolean |
omitNorms |
protected boolean |
storeOffsetWithTermVector |
protected boolean |
storePositionWithTermVector |
protected boolean |
storeTermVector |
protected TokenStream |
tokenStream |
Modifier | Constructor and Description |
---|---|
protected |
AbstractField() |
protected |
AbstractField(String name,
Field.Store store,
Field.Index index,
Field.TermVector termVector) |
Modifier and Type | Method and Description |
---|---|
int |
getBinaryLength()
Returns length of byte[] segment that is used as value, if Field is not binary
returned value is undefined
|
int |
getBinaryOffset()
Returns offset into byte[] segment that is used as value, if Field is not binary
returned value is undefined
|
byte[] |
getBinaryValue()
Return the raw byte[] for the binary field.
|
byte[] |
getBinaryValue(byte[] result)
Return the raw byte[] for the binary field.
|
float |
getBoost()
Returns the boost factor for hits for this field.
|
FieldInfo.IndexOptions |
getIndexOptions() |
boolean |
getOmitNorms()
True if norms are omitted for this indexed field
|
boolean |
getOmitTermFreqAndPositions()
Deprecated.
use
getIndexOptions() instead. |
boolean |
isBinary()
True iff the value of the filed is stored as binary
|
boolean |
isIndexed()
True iff the value of the field is to be indexed, so that it may be
searched on.
|
boolean |
isLazy()
Indicates whether a Field is Lazy or not.
|
boolean |
isStored()
True iff the value of the field is to be stored in the index for return
with search hits.
|
boolean |
isStoreOffsetWithTermVector()
True iff terms are stored as term vector together with their offsets
(start and end position in source text).
|
boolean |
isStorePositionWithTermVector()
True iff terms are stored as term vector together with their token positions.
|
boolean |
isTermVectorStored()
True iff the term or terms used to index this field are stored as a term
vector, available from
IndexReader.getTermFreqVector(int,String) . |
boolean |
isTokenized()
True iff the value of the field should be tokenized as text prior to
indexing.
|
String |
name()
Returns the name of the field as an interned string.
|
void |
setBoost(float boost)
Sets the boost factor hits on this field.
|
void |
setIndexOptions(FieldInfo.IndexOptions indexOptions)
Expert:
If set, omit term freq, and optionally also positions and payloads from
postings for this field.
|
void |
setOmitNorms(boolean omitNorms)
Expert:
If set, omit normalization factors associated with this indexed field.
|
void |
setOmitTermFreqAndPositions(boolean omitTermFreqAndPositions)
Deprecated.
use
setIndexOptions(FieldInfo.IndexOptions) instead. |
protected void |
setStoreTermVector(Field.TermVector termVector) |
String |
toString()
Prints a Field for human consumption.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
readerValue, stringValue, tokenStreamValue
protected String name
protected boolean storeTermVector
protected boolean storeOffsetWithTermVector
protected boolean storePositionWithTermVector
protected boolean omitNorms
protected boolean isStored
protected boolean isIndexed
protected boolean isTokenized
protected boolean isBinary
protected boolean lazy
protected FieldInfo.IndexOptions indexOptions
protected float boost
protected Object fieldsData
protected TokenStream tokenStream
protected int binaryLength
protected int binaryOffset
protected AbstractField()
protected AbstractField(String name, Field.Store store, Field.Index index, Field.TermVector termVector)
public void setBoost(float boost)
The boost is multiplied by Document.getBoost()
of the document
containing this field. If a document has multiple fields with the same
name, all such values are multiplied together. This product is then
used to compute the norm factor for the field. By
default, in the Similarity.computeNorm(String,
FieldInvertState)
method, the boost value is multiplied
by the Similarity.lengthNorm(String,
int)
and then
rounded by Similarity.encodeNormValue(float)
before it is stored in the
index. One should attempt to ensure that this product does not overflow
the range of that encoding.
setBoost
in interface Fieldable
Document.setBoost(float)
,
Similarity.computeNorm(String, FieldInvertState)
,
Similarity.encodeNormValue(float)
public float getBoost()
The default value is 1.0.
Note: this value is not stored directly with the document in the index.
Documents returned from IndexReader.document(int)
and
Searcher.doc(int)
may thus not have the same value present as when
this field was indexed.
getBoost
in interface Fieldable
setBoost(float)
public String name()
protected void setStoreTermVector(Field.TermVector termVector)
public final boolean isStored()
public final boolean isIndexed()
public final boolean isTokenized()
isTokenized
in interface Fieldable
public final boolean isTermVectorStored()
IndexReader.getTermFreqVector(int,String)
.
These methods do not provide access to the original content of the field,
only to terms used to index it. If the original content must be
preserved, use the stored
attribute instead.isTermVectorStored
in interface Fieldable
IndexReader.getTermFreqVector(int, String)
public boolean isStoreOffsetWithTermVector()
isStoreOffsetWithTermVector
in interface Fieldable
public boolean isStorePositionWithTermVector()
isStorePositionWithTermVector
in interface Fieldable
public final boolean isBinary()
public byte[] getBinaryValue()
getBinaryLength()
and getBinaryOffset()
to know which range of bytes in this
returned array belong to the field.getBinaryValue
in interface Fieldable
public byte[] getBinaryValue(byte[] result)
Fieldable
Fieldable.getBinaryLength()
and Fieldable.getBinaryOffset()
to know which range of bytes in this
returned array belong to the field.
About reuse: if you pass in the result byte[] and it is
used, likely the underlying implementation will hold
onto this byte[] and return it in future calls to
Fieldable.getBinaryValue()
.
So if you subsequently re-use the same byte[] elsewhere
it will alter this Fieldable's value.
getBinaryValue
in interface Fieldable
result
- User defined buffer that will be used if
possible. If this is null or not large enough, a new
buffer is allocatedpublic int getBinaryLength()
getBinaryLength
in interface Fieldable
public int getBinaryOffset()
getBinaryOffset
in interface Fieldable
public boolean getOmitNorms()
getOmitNorms
in interface Fieldable
@Deprecated public boolean getOmitTermFreqAndPositions()
getIndexOptions()
instead.public FieldInfo.IndexOptions getIndexOptions()
getIndexOptions
in interface Fieldable
setIndexOptions(org.apache.lucene.index.FieldInfo.IndexOptions)
public void setOmitNorms(boolean omitNorms)
setOmitNorms
in interface Fieldable
@Deprecated public void setOmitTermFreqAndPositions(boolean omitTermFreqAndPositions)
setIndexOptions(FieldInfo.IndexOptions)
instead.public void setIndexOptions(FieldInfo.IndexOptions indexOptions)
NOTE: While this option reduces storage space
required in the index, it also means any query
requiring positional information, such as PhraseQuery
or SpanQuery
subclasses will
silently fail to find results.
setIndexOptions
in interface Fieldable
public boolean isLazy()
Fieldable
Fieldable.stringValue()
or Fieldable.getBinaryValue()
is only valid as long as the IndexReader
that
retrieved the Document
is still open.