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 FieldInfos : public LuceneObject {
19 public:
20  FieldInfos();
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:
55  virtual LuceneObjectPtr clone(const LuceneObjectPtr& other = LuceneObjectPtr());
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 
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
FieldInfoPtr addInternal(const String &name, bool isIndexed, bool storeTermVector, bool storePositionWithTermVector, bool storeOffsetWithTermVector, bool omitNorms, bool storePayloads, bool omitTermFreqAndPositions)
void write(const DirectoryPtr &d, const String &name)
static const int32_t FORMAT_PRE
Definition: FieldInfos.h:29
void addIndexed(HashSet< String > names, bool storeTermVectors, bool storePositionWithTermVector, bool storeOffsetWithTermVector)
Add fields that are indexed. Whether they have termvectors has to be specified.
boost::shared_ptr< IndexOutput > IndexOutputPtr
Definition: LuceneTypes.h:494
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
static const int32_t CURRENT_FORMAT
Definition: FieldInfos.h:38
Collection< FieldInfoPtr > byNumber
Definition: FieldInfos.h:49
void read(const IndexInputPtr &input, const String &fileName)
static const uint8_t STORE_POSITIONS_WITH_TERMVECTOR
Definition: FieldInfos.h:42
FieldInfoPtr fieldInfo(const String &fieldName)
virtual ~FieldInfos()
static const uint8_t OMIT_NORMS
Definition: FieldInfos.h:44
bool hasProx()
Returns true if any fields do not omitTermFreqAndPositions.
boost::shared_ptr< FieldInfo > FieldInfoPtr
Definition: LuceneTypes.h:126
static const uint8_t OMIT_TERM_FREQ_AND_POSITIONS
Definition: FieldInfos.h:46
String fieldName(int32_t fieldNumber)
Return the fieldName identified by its number.
boost::shared_ptr< Document > DocumentPtr
Definition: LuceneTypes.h:74
MapStringFieldInfo byName
Definition: FieldInfos.h:50
boost::shared_ptr< Directory > DirectoryPtr
Definition: LuceneTypes.h:489
Base class for all Lucene classes.
Definition: LuceneObject.h:31
boost::shared_ptr< IndexInput > IndexInputPtr
Definition: LuceneTypes.h:493
static const uint8_t STORE_OFFSET_WITH_TERMVECTOR
Definition: FieldInfos.h:43
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Definition: AbstractAllTermDocs.h:12
static const int32_t FORMAT_START
Definition: FieldInfos.h:36
static const uint8_t IS_INDEXED
Definition: FieldInfos.h:40
int32_t format
Definition: FieldInfos.h:51
static const uint8_t STORE_TERMVECTOR
Definition: FieldInfos.h:41
static const uint8_t STORE_PAYLOADS
Definition: FieldInfos.h:45
void add(const DocumentPtr &doc)
Adds field info for a Document.
int32_t fieldNumber(const String &fieldName)
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.

clucene.sourceforge.net