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 {
21 STORE_YES,
22
24 STORE_NO
25 };
26
28 enum Index {
31 INDEX_NO,
32
35 INDEX_ANALYZED,
36
39 INDEX_NOT_ANALYZED,
40
48 INDEX_NOT_ANALYZED_NO_NORMS,
49
53 INDEX_ANALYZED_NO_NORMS
54 };
55
57 enum TermVector {
59 TERM_VECTOR_NO,
60
63 TERM_VECTOR_YES,
64
67 TERM_VECTOR_WITH_POSITIONS,
68
71 TERM_VECTOR_WITH_OFFSETS,
72
77 TERM_VECTOR_WITH_POSITIONS_OFFSETS
78 };
79
80 public:
81 virtual ~AbstractField();
82
83 LUCENE_CLASS(AbstractField);
84
85 protected:
86 AbstractField();
87 AbstractField(const String& name, Store store, Index index, TermVector termVector);
88
89 String _name;
90 bool storeTermVector;
91 bool storeOffsetWithTermVector;
92 bool storePositionWithTermVector;
93 bool _omitNorms;
94 bool _isStored;
95 bool _isIndexed;
96 bool _isTokenized;
97 bool _isBinary;
98 bool lazy;
99 bool omitTermFreqAndPositions;
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
106 TokenStreamPtr tokenStream;
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
Lucene::AbstractField::_isBinary
bool _isBinary
Definition: AbstractField.h:97
Lucene::AbstractField::fieldsData
FieldsData fieldsData
Definition: AbstractField.h:103
Lucene::AbstractField::_isTokenized
bool _isTokenized
Definition: AbstractField.h:96
Fieldable.h
Lucene::AbstractField::_omitNorms
bool _omitNorms
Definition: AbstractField.h:93
Lucene::AbstractField::boost
double boost
Definition: AbstractField.h:100
Lucene::AbstractField::_name
String _name
Definition: AbstractField.h:89
Lucene::AbstractField::STORE_YES
Store the original field value in the index. This is useful for short texts like a document&#39;s title w...
Definition: AbstractField.h:21
Lucene::AbstractField::_isIndexed
bool _isIndexed
Definition: AbstractField.h:95
Lucene::Fieldable
Synonymous with Field.
Definition: Fieldable.h:20
Lucene::AbstractField::TERM_VECTOR_WITH_OFFSETS
Store the term vector + token offset information.
Definition: AbstractField.h:71
Lucene::AbstractField::INDEX_ANALYZED
Index the tokens produced by running the field&#39;s value through an Analyzer. This is useful for common...
Definition: AbstractField.h:35
Lucene::AbstractField::binaryLength
int32_t binaryLength
Definition: AbstractField.h:109
Lucene::LuceneObject
Base class for all Lucene classes.
Definition: LuceneObject.h:31
Lucene::AbstractField::INDEX_NOT_ANALYZED
Index the field&#39;s value without using an Analyzer, so it can be searched. As no analyzer is used the ...
Definition: AbstractField.h:39
Lucene::AbstractField::storeOffsetWithTermVector
bool storeOffsetWithTermVector
Definition: AbstractField.h:91
Lucene::AbstractField
Definition: AbstractField.h:14
Lucene::AbstractField::Index
Index
Specifies whether and how a field should be indexed.
Definition: AbstractField.h:28
LUCENE_CLASS
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Lucene::AbstractField::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
Lucene
Definition: AbstractAllTermDocs.h:12
Lucene::AbstractField::_isStored
bool _isStored
Definition: AbstractField.h:94
Lucene::AbstractField::lazy
bool lazy
Definition: AbstractField.h:98
Lucene::AbstractField::omitTermFreqAndPositions
bool omitTermFreqAndPositions
Definition: AbstractField.h:99
Lucene::AbstractField::tokenStream
TokenStreamPtr tokenStream
Definition: AbstractField.h:106
Lucene::AbstractField::TERM_VECTOR_YES
Store the term vectors of each document. A term vector is a list of the document&#39;s terms and their nu...
Definition: AbstractField.h:63
Lucene::AbstractField::TermVector
TermVector
Specifies whether and how a field should have term vectors.
Definition: AbstractField.h:57
Lucene::TokenStreamPtr
boost::shared_ptr< TokenStream > TokenStreamPtr
Definition: LuceneTypes.h:63
Lucene::AbstractField::TERM_VECTOR_WITH_POSITIONS
Store the term vector + token position information.
Definition: AbstractField.h:67
Lucene::AbstractField::storePositionWithTermVector
bool storePositionWithTermVector
Definition: AbstractField.h:92
Lucene::AbstractField::TERM_VECTOR_NO
Do not store term vectors.
Definition: AbstractField.h:59
Lucene::AbstractField::Store
Store
Specifies whether and how a field should be stored.
Definition: AbstractField.h:17
Lucene::AbstractField::storeTermVector
bool storeTermVector
Definition: AbstractField.h:90
Lucene::AbstractField::INDEX_NOT_ANALYZED_NO_NORMS
Index the field&#39;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
Lucene::AbstractField::binaryOffset
int32_t binaryOffset
Definition: AbstractField.h:110

clucene.sourceforge.net