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:
86  AbstractField();
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 
160  virtual bool isStoreOffsetWithTermVector();
161 
163  virtual bool isStorePositionWithTermVector();
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 
192  virtual bool getOmitTermFreqAndPositions();
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
bool _isBinary
Definition: AbstractField.h:97
FieldsData fieldsData
Definition: AbstractField.h:103
bool _isTokenized
Definition: AbstractField.h:96
bool _omitNorms
Definition: AbstractField.h:93
double boost
Definition: AbstractField.h:100
String _name
Definition: AbstractField.h:89
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 _isIndexed
Definition: AbstractField.h:95
Synonymous with Field.
Definition: Fieldable.h:20
Store the term vector + token offset information.
Definition: AbstractField.h:71
Index the tokens produced by running the field's value through an Analyzer. This is useful for common...
Definition: AbstractField.h:35
int32_t binaryLength
Definition: AbstractField.h:109
Base class for all Lucene classes.
Definition: LuceneObject.h:31
Index the field's value without using an Analyzer, so it can be searched. As no analyzer is used the ...
Definition: AbstractField.h:39
bool storeOffsetWithTermVector
Definition: AbstractField.h:91
Definition: AbstractField.h:14
Index
Specifies whether and how a field should be indexed.
Definition: AbstractField.h:28
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Do not index the field value. This field can thus not be searched, but one can still access its conte...
Definition: AbstractField.h:31
Definition: AbstractAllTermDocs.h:12
bool _isStored
Definition: AbstractField.h:94
bool lazy
Definition: AbstractField.h:98
bool omitTermFreqAndPositions
Definition: AbstractField.h:99
TokenStreamPtr tokenStream
Definition: AbstractField.h:106
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
TermVector
Specifies whether and how a field should have term vectors.
Definition: AbstractField.h:57
boost::shared_ptr< TokenStream > TokenStreamPtr
Definition: LuceneTypes.h:63
Store the term vector + token position information.
Definition: AbstractField.h:67
bool storePositionWithTermVector
Definition: AbstractField.h:92
Do not store term vectors.
Definition: AbstractField.h:59
Store
Specifies whether and how a field should be stored.
Definition: AbstractField.h:17
bool storeTermVector
Definition: AbstractField.h:90
Index the field's value without an Analyzer, and also disable the storing of norms. Note that you can also separately enable/disable norms by calling Field#setOmitNorms. No norms means that index-time field and document boosting and field length normalization are disabled. The benefit is less memory usage as norms take up one byte of RAM per indexed field for every document in the index, during searching. Note that once you index a given field with norms enabled, disabling norms will have no effect. In other words, for this to have the above described effect on a field, all instances of that field must be indexed with NOT_ANALYZED_NO_NORMS from the beginning.
Definition: AbstractField.h:48
int32_t binaryOffset
Definition: AbstractField.h:110

clucene.sourceforge.net