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


FieldInfos.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 FIELDINFOS_H
8 #define FIELDINFOS_H
9 
10 #include "LuceneObject.h"
11 
12 namespace Lucene {
13 
18 class LPPAPI FieldInfos : public LuceneObject {
19 public:
21 
25  FieldInfos(const DirectoryPtr& d, const String& name);
26 
27  virtual ~FieldInfos();
28 
30 
31 public:
32  // Used internally (ie not written to *.fnm files) for pre-2.9 files
33  static const int32_t FORMAT_PRE;
34 
35  // First used in 2.9; prior to 2.9 there was no format header
36  static const int32_t FORMAT_START;
37 
38  static const int32_t CURRENT_FORMAT;
39 
40  static const uint8_t IS_INDEXED;
41  static const uint8_t STORE_TERMVECTOR;
42  static const uint8_t STORE_POSITIONS_WITH_TERMVECTOR;
43  static const uint8_t STORE_OFFSET_WITH_TERMVECTOR;
44  static const uint8_t OMIT_NORMS;
45  static const uint8_t STORE_PAYLOADS;
46  static const uint8_t OMIT_TERM_FREQ_AND_POSITIONS;
47 
48 protected:
50  MapStringFieldInfo byName;
51  int32_t format;
52 
53 public:
56 
58  void add(const DocumentPtr& doc);
59 
61  bool hasProx();
62 
68  void addIndexed(HashSet<String> names, bool storeTermVectors, bool storePositionWithTermVector, bool storeOffsetWithTermVector);
69 
74  void add(HashSet<String> names, bool isIndexed);
75 
80  void add(const String& name, bool isIndexed);
81 
86  void add(const String& name, bool isIndexed, bool storeTermVector);
87 
96  void add(const String& name, bool isIndexed, bool storeTermVector, bool storePositionWithTermVector, bool storeOffsetWithTermVector);
97 
107  void add(const String& name, bool isIndexed, bool storeTermVector, bool storePositionWithTermVector,
108  bool storeOffsetWithTermVector, bool omitNorms);
109 
121  FieldInfoPtr add(const String& name, bool isIndexed, bool storeTermVector, bool storePositionWithTermVector,
122  bool storeOffsetWithTermVector, bool omitNorms, bool storePayloads, bool omitTermFreqAndPositions);
123 
124  int32_t fieldNumber(const String& fieldName);
125  FieldInfoPtr fieldInfo(const String& fieldName);
126 
129  String fieldName(int32_t fieldNumber);
130 
133  FieldInfoPtr fieldInfo(int32_t fieldNumber);
134 
135  int32_t size();
136 
137  bool hasVectors();
138 
139  void write(const DirectoryPtr& d, const String& name);
140  void write(const IndexOutputPtr& output);
141 
142 protected:
143  FieldInfoPtr addInternal(const String& name, bool isIndexed, bool storeTermVector, bool storePositionWithTermVector,
144  bool storeOffsetWithTermVector, bool omitNorms, bool storePayloads, bool omitTermFreqAndPositions);
145 
146  void read(const IndexInputPtr& input, const String& fileName);
147 };
148 
149 }
150 
151 #endif
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Access to the Fieldable Info file that describes document fields and whether or not they are indexed....
Definition: FieldInfos.h:18
virtual LuceneObjectPtr clone(const LuceneObjectPtr &other=LuceneObjectPtr())
Returns a deep clone of this FieldInfos instance.
static const uint8_t IS_INDEXED
Definition: FieldInfos.h:40
FieldInfoPtr fieldInfo(int32_t fieldNumber)
Return the fieldinfo object referenced by the fieldNumber.
static const uint8_t STORE_OFFSET_WITH_TERMVECTOR
Definition: FieldInfos.h:43
static const uint8_t STORE_PAYLOADS
Definition: FieldInfos.h:45
void addIndexed(HashSet< String > names, bool storeTermVectors, bool storePositionWithTermVector, bool storeOffsetWithTermVector)
Add fields that are indexed. Whether they have termvectors has to be specified.
void add(const DocumentPtr &doc)
Adds field info for a Document.
void add(const String &name, bool isIndexed, bool storeTermVector)
Calls 5 parameter add with false for term vector positions and offsets.
String fieldName(int32_t fieldNumber)
Return the fieldName identified by its number.
FieldInfoPtr addInternal(const String &name, bool isIndexed, bool storeTermVector, bool storePositionWithTermVector, bool storeOffsetWithTermVector, bool omitNorms, bool storePayloads, bool omitTermFreqAndPositions)
static const uint8_t STORE_POSITIONS_WITH_TERMVECTOR
Definition: FieldInfos.h:42
int32_t fieldNumber(const String &fieldName)
static const uint8_t OMIT_TERM_FREQ_AND_POSITIONS
Definition: FieldInfos.h:46
void add(HashSet< String > names, bool isIndexed)
Assumes the fields are not storing term vectors.
FieldInfoPtr add(const String &name, bool isIndexed, bool storeTermVector, bool storePositionWithTermVector, bool storeOffsetWithTermVector, bool omitNorms, bool storePayloads, bool omitTermFreqAndPositions)
If the field is not yet known, adds it. If it is known, checks to make sure that the isIndexed flag i...
FieldInfoPtr fieldInfo(const String &fieldName)
void add(const String &name, bool isIndexed)
Calls 5 parameter add with false for all TermVector parameters.
MapStringFieldInfo byName
Definition: FieldInfos.h:50
static const int32_t FORMAT_START
Definition: FieldInfos.h:36
static const uint8_t OMIT_NORMS
Definition: FieldInfos.h:44
void add(const String &name, bool isIndexed, bool storeTermVector, bool storePositionWithTermVector, bool storeOffsetWithTermVector, bool omitNorms)
If the field is not yet known, adds it. If it is known, checks to make sure that the isIndexed flag i...
bool hasProx()
Returns true if any fields do not omitTermFreqAndPositions.
int32_t format
Definition: FieldInfos.h:51
void write(const IndexOutputPtr &output)
FieldInfos(const DirectoryPtr &d, const String &name)
Construct a FieldInfos object using the directory and the name of the file IndexInput.
virtual ~FieldInfos()
Collection< FieldInfoPtr > byNumber
Definition: FieldInfos.h:49
static const uint8_t STORE_TERMVECTOR
Definition: FieldInfos.h:41
static const int32_t FORMAT_PRE
Definition: FieldInfos.h:29
void add(const String &name, bool isIndexed, bool storeTermVector, bool storePositionWithTermVector, bool storeOffsetWithTermVector)
If the field is not yet known, adds it. If it is known, checks to make sure that the isIndexed flag i...
void write(const DirectoryPtr &d, const String &name)
static const int32_t CURRENT_FORMAT
Definition: FieldInfos.h:38
void read(const IndexInputPtr &input, const String &fileName)
Base class for all Lucene classes.
Definition: LuceneObject.h:31
Definition: AbstractAllTermDocs.h:12
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
boost::shared_ptr< IndexInput > IndexInputPtr
Definition: LuceneTypes.h:493
boost::shared_ptr< Directory > DirectoryPtr
Definition: LuceneTypes.h:489
boost::shared_ptr< IndexOutput > IndexOutputPtr
Definition: LuceneTypes.h:494
boost::shared_ptr< Document > DocumentPtr
Definition: LuceneTypes.h:74
boost::shared_ptr< FieldInfo > FieldInfoPtr
Definition: LuceneTypes.h:126

clucene.sourceforge.net