Lucene++ - a full-featured, c++ search engine
API Documentation


AbstractField.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2014 Alan Wright. All rights reserved.
3 // Distributable under the terms of either the Apache License (Version 2.0)
4 // or the GNU Lesser General Public License.
6 
7 #ifndef ABSTRACTFIELD_H
8 #define ABSTRACTFIELD_H
9 
10 #include "Fieldable.h"
11 
12 namespace Lucene {
13 
14 class LPPAPI AbstractField : public Fieldable, public LuceneObject {
15 public:
17  enum Store {
22 
24  STORE_NO
25  };
26 
28  enum Index {
32 
36 
40 
49 
53  INDEX_ANALYZED_NO_NORMS
54  };
55 
57  enum TermVector {
60 
64 
68 
72 
77  TERM_VECTOR_WITH_POSITIONS_OFFSETS
78  };
79 
80 public:
81  virtual ~AbstractField();
82 
84 
85 protected:
87  AbstractField(const String& name, Store store, Index index, TermVector termVector);
88 
89  String _name;
93  bool _omitNorms;
94  bool _isStored;
95  bool _isIndexed;
97  bool _isBinary;
98  bool lazy;
100  double boost;
101 
102  // the data object for all different kind of field values
103  FieldsData fieldsData;
104 
105  // pre-analyzed tokenStream for indexed fields
107 
108  // length/offset for all primitive types
109  int32_t binaryLength;
110  int32_t binaryOffset;
111 
112 public:
127  virtual void setBoost(double boost);
128 
136  virtual double getBoost();
137 
139  virtual String name();
140 
143  virtual bool isStored();
144 
146  virtual bool isIndexed();
147 
150  virtual bool isTokenized();
151 
156  virtual bool isTermVectorStored();
157 
161 
164 
166  virtual bool isBinary();
167 
171  virtual ByteArray getBinaryValue();
172 
176  virtual ByteArray getBinaryValue(ByteArray result);
177 
181  virtual int32_t getBinaryLength();
182 
186  virtual int32_t getBinaryOffset();
187 
189  virtual bool getOmitNorms();
190 
193 
196  virtual void setOmitNorms(bool omitNorms);
197 
203  virtual void setOmitTermFreqAndPositions(bool omitTermFreqAndPositions);
204 
210  virtual bool isLazy();
211 
213  virtual String toString();
214 
215 protected:
216  void setStoreTermVector(TermVector termVector);
217 };
218 
219 }
220 
221 #endif
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Definition: AbstractField.h:14
virtual bool isStorePositionWithTermVector()
True if terms are stored as term vector together with their token positions.
bool omitTermFreqAndPositions
Definition: AbstractField.h:99
String _name
Definition: AbstractField.h:89
int32_t binaryLength
Definition: AbstractField.h:109
virtual bool isStoreOffsetWithTermVector()
True if terms are stored as term vector together with their offsets (start and end position in source...
bool storeTermVector
Definition: AbstractField.h:90
virtual bool isStored()
True if the value of the field is to be stored in the index for return with search hits....
virtual int32_t getBinaryLength()
Returns length of byte[] segment that is used as value, if Field is not binary returned value is unde...
virtual bool isLazy()
Indicates whether a Field is Lazy or not. The semantics of Lazy loading are such that if a Field is l...
bool _isTokenized
Definition: AbstractField.h:96
TokenStreamPtr tokenStream
Definition: AbstractField.h:106
virtual bool isTermVectorStored()
True if the term or terms used to index this field are stored as a term vector, available from IndexR...
virtual void setOmitTermFreqAndPositions(bool omitTermFreqAndPositions)
If set, omit term freq, positions and payloads from postings for this field.
virtual bool isTokenized()
True if the value of the field should be tokenized as text prior to indexing. Un-tokenized fields are...
bool _isIndexed
Definition: AbstractField.h:95
virtual bool isIndexed()
True if the value of the field is to be indexed, so that it may be searched on.
FieldsData fieldsData
Definition: AbstractField.h:103
virtual void setBoost(double boost)
Sets the boost factor hits on this field. This value will be multiplied into the score of all hits on...
bool _isStored
Definition: AbstractField.h:94
virtual String toString()
Prints a Field for human consumption.
virtual bool getOmitNorms()
True if norms are omitted for this indexed field.
virtual double getBoost()
Returns the boost factor for hits for this field.
bool _isBinary
Definition: AbstractField.h:97
virtual bool isBinary()
True if the value of the field is stored as binary.
virtual int32_t getBinaryOffset()
Returns offset into byte[] segment that is used as value, if Field is not binary returned value is un...
double boost
Definition: AbstractField.h:100
bool storeOffsetWithTermVector
Definition: AbstractField.h:91
virtual bool getOmitTermFreqAndPositions()
virtual ByteArray getBinaryValue(ByteArray result)
Return the raw byte[] for the binary field. Note that you must also call getBinaryLength and getBinar...
virtual void setOmitNorms(bool omitNorms)
If set, omit normalization factors associated with this indexed field. This effectively disables inde...
virtual ByteArray getBinaryValue()
Return the raw byte[] for the binary field. Note that you must also call getBinaryLength and getBinar...
int32_t binaryOffset
Definition: AbstractField.h:110
bool _omitNorms
Definition: AbstractField.h:93
bool lazy
Definition: AbstractField.h:98
Store
Specifies whether and how a field should be stored.
Definition: AbstractField.h:17
@ STORE_YES
Store the original field value in the index. This is useful for short texts like a document's title w...
Definition: AbstractField.h:21
bool storePositionWithTermVector
Definition: AbstractField.h:92
void setStoreTermVector(TermVector termVector)
Index
Specifies whether and how a field should be indexed.
Definition: AbstractField.h:28
@ INDEX_NOT_ANALYZED
Index the field's value without using an Analyzer, so it can be searched. As no analyzer is used the ...
Definition: AbstractField.h:39
@ INDEX_NO
Do not index the field value. This field can thus not be searched, but one can still access its conte...
Definition: AbstractField.h:31
@ INDEX_ANALYZED
Index the tokens produced by running the field's value through an Analyzer. This is useful for common...
Definition: AbstractField.h:35
@ INDEX_NOT_ANALYZED_NO_NORMS
Index the field's value without an Analyzer, and also disable the storing of norms....
Definition: AbstractField.h:48
virtual String name()
Returns the name of the field as an interned string. For example "date", "title", "body",...
TermVector
Specifies whether and how a field should have term vectors.
Definition: AbstractField.h:57
@ TERM_VECTOR_WITH_POSITIONS
Store the term vector + token position information.
Definition: AbstractField.h:67
@ TERM_VECTOR_YES
Store the term vectors of each document. A term vector is a list of the document's terms and their nu...
Definition: AbstractField.h:63
@ TERM_VECTOR_WITH_OFFSETS
Store the term vector + token offset information.
Definition: AbstractField.h:71
@ TERM_VECTOR_NO
Do not store term vectors.
Definition: AbstractField.h:59
AbstractField(const String &name, Store store, Index index, TermVector termVector)
Synonymous with Field.
Definition: Fieldable.h:20
Base class for all Lucene classes.
Definition: LuceneObject.h:31
Definition: AbstractAllTermDocs.h:12
boost::shared_ptr< TokenStream > TokenStreamPtr
Definition: LuceneTypes.h:63

clucene.sourceforge.net