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


MergePolicy.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 MERGEPOLICY_H
8 #define MERGEPOLICY_H
9 
10 #include "SegmentInfos.h"
11 
12 namespace Lucene {
13 
32 class LPPAPI MergePolicy : public LuceneObject {
33 public:
34  MergePolicy(const IndexWriterPtr& writer);
35  virtual ~MergePolicy();
36 
38 
39 protected:
41 
42 public:
47  virtual MergeSpecificationPtr findMerges(const SegmentInfosPtr& segmentInfos) = 0;
48 
57  virtual MergeSpecificationPtr findMergesForOptimize(const SegmentInfosPtr& segmentInfos, int32_t maxSegmentCount, SetSegmentInfo segmentsToOptimize) = 0;
58 
62 
64  virtual void close() = 0;
65 
67  virtual bool useCompoundFile(const SegmentInfosPtr& segments, const SegmentInfoPtr& newSegment) = 0;
68 
70  virtual bool useCompoundDocStore(const SegmentInfosPtr& segments) = 0;
71 };
72 
76 class LPPAPI OneMerge : public LuceneObject {
77 public:
78  OneMerge(const SegmentInfosPtr& segments, bool useCompoundFile);
79  virtual ~OneMerge();
80 
82 
83 public:
84  SegmentInfoPtr info; // used by IndexWriter
85  bool mergeDocStores; // used by IndexWriter
86  bool optimize; // used by IndexWriter
87  bool registerDone; // used by IndexWriter
88  int64_t mergeGen; // used by IndexWriter
89  bool isExternal; // used by IndexWriter
90  int32_t maxNumSegmentsOptimize; // used by IndexWriter
91  Collection<SegmentReaderPtr> readers; // used by IndexWriter
93 
96  bool aborted;
98 
99 public:
101  void setException(const LuceneException& error);
102 
105 
107  void abort();
108 
110  bool isAborted();
111 
112  void checkAborted(const DirectoryPtr& dir);
113 
114  String segString(const DirectoryPtr& dir);
115 };
116 
119 class LPPAPI MergeSpecification : public LuceneObject {
120 public:
123 
125 
126 public:
128 
129 public:
130  void add(const OneMergePtr& merge);
131  String segString(const DirectoryPtr& dir);
132 };
133 
134 }
135 
136 #endif
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Lucene exception container.
Definition: LuceneException.h:15
Base class for all Lucene classes.
Definition: LuceneObject.h:31
A MergePolicy determines the sequence of primitive merge operations to be used for overall merge and ...
Definition: MergePolicy.h:32
virtual bool useCompoundDocStore(const SegmentInfosPtr &segments)=0
Returns true if the doc store files should use the compound file format.
virtual bool useCompoundFile(const SegmentInfosPtr &segments, const SegmentInfoPtr &newSegment)=0
Returns true if a newly flushed (not from merge) segment should use the compound file format.
virtual ~MergePolicy()
virtual MergeSpecificationPtr findMergesToExpungeDeletes(const SegmentInfosPtr &segmentInfos)=0
Determine what set of merge operations is necessary in order to expunge all deletes from the index.
MergePolicy(const IndexWriterPtr &writer)
IndexWriterWeakPtr _writer
Definition: MergePolicy.h:37
virtual void close()=0
Release all resources for the policy.
virtual MergeSpecificationPtr findMerges(const SegmentInfosPtr &segmentInfos)=0
Determine what set of merge operations are now necessary on the index. IndexWriter calls this wheneve...
virtual MergeSpecificationPtr findMergesForOptimize(const SegmentInfosPtr &segmentInfos, int32_t maxSegmentCount, SetSegmentInfo segmentsToOptimize)=0
Determine what set of merge operations is necessary in order to optimize the index....
A MergeSpecification instance provides the information necessary to perform multiple merges....
Definition: MergePolicy.h:119
String segString(const DirectoryPtr &dir)
void add(const OneMergePtr &merge)
Collection< OneMergePtr > merges
Definition: MergePolicy.h:124
OneMerge provides the information necessary to perform an individual primitive merge operation,...
Definition: MergePolicy.h:76
bool isExternal
Definition: MergePolicy.h:89
LuceneException getException()
Retrieve previous exception set by setException.
void setException(const LuceneException &error)
Record that an exception occurred while executing this merge.
Collection< SegmentReaderPtr > readers
Definition: MergePolicy.h:91
LuceneException error
Definition: MergePolicy.h:97
bool optimize
Definition: MergePolicy.h:86
OneMerge(const SegmentInfosPtr &segments, bool useCompoundFile)
bool isAborted()
Returns true if this merge was aborted.
bool useCompoundFile
Definition: MergePolicy.h:95
bool mergeDocStores
Definition: MergePolicy.h:85
int64_t mergeGen
Definition: MergePolicy.h:88
bool aborted
Definition: MergePolicy.h:96
Collection< SegmentReaderPtr > readersClone
Definition: MergePolicy.h:92
void abort()
Mark this merge as aborted. If this is called before the merge is committed then the merge will not b...
virtual ~OneMerge()
int32_t maxNumSegmentsOptimize
Definition: MergePolicy.h:90
SegmentInfoPtr info
Definition: MergePolicy.h:81
SegmentInfosPtr segments
Definition: MergePolicy.h:94
bool registerDone
Definition: MergePolicy.h:87
void checkAborted(const DirectoryPtr &dir)
String segString(const DirectoryPtr &dir)
Definition: AbstractAllTermDocs.h:12
boost::weak_ptr< IndexWriter > IndexWriterWeakPtr
Definition: LuceneTypes.h:160
boost::shared_ptr< OneMerge > OneMergePtr
Definition: LuceneTypes.h:192
boost::shared_ptr< MergeSpecification > MergeSpecificationPtr
Definition: LuceneTypes.h:176
boost::shared_ptr< SegmentInfo > SegmentInfoPtr
Definition: LuceneTypes.h:208
boost::shared_ptr< Directory > DirectoryPtr
Definition: LuceneTypes.h:489
boost::shared_ptr< SegmentInfos > SegmentInfosPtr
Definition: LuceneTypes.h:210
boost::shared_ptr< IndexWriter > IndexWriterPtr
Definition: LuceneTypes.h:160

clucene.sourceforge.net