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

clucene.sourceforge.net