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

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- File List
- Globals

All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MergePolicy.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2011 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 {
34 public:
35 MergePolicy(IndexWriterPtr writer);
36 virtual ~MergePolicy();
37
38 LUCENE_CLASS(MergePolicy);
39
40 protected:
41 IndexWriterWeakPtr _writer;
42
43 public:
48 virtual MergeSpecificationPtr findMerges(SegmentInfosPtr segmentInfos) = 0;
49
58 virtual MergeSpecificationPtr findMergesForOptimize(SegmentInfosPtr segmentInfos, int32_t maxSegmentCount, SetSegmentInfo segmentsToOptimize) = 0;
59
62 virtual MergeSpecificationPtr findMergesToExpungeDeletes(SegmentInfosPtr segmentInfos) = 0;
63
65 virtual void close() = 0;
66
68 virtual bool useCompoundFile(SegmentInfosPtr segments, SegmentInfoPtr newSegment) = 0;
69
71 virtual bool useCompoundDocStore(SegmentInfosPtr segments) = 0;
72 };
73
77 class LPPAPI OneMerge : public LuceneObject
78 {
79 public:
80 OneMerge(SegmentInfosPtr segments, bool useCompoundFile);
81 virtual ~OneMerge();
82
83 LUCENE_CLASS(OneMerge);
84
85 public:
86 SegmentInfoPtr info; // used by IndexWriter
87 bool mergeDocStores; // used by IndexWriter
88 bool optimize; // used by IndexWriter
89 bool registerDone; // used by IndexWriter
90 int64_t mergeGen; // used by IndexWriter
91 bool isExternal; // used by IndexWriter
92 int32_t maxNumSegmentsOptimize; // used by IndexWriter
93 Collection<SegmentReaderPtr> readers; // used by IndexWriter
94 Collection<SegmentReaderPtr> readersClone; // used by IndexWriter
95
96 SegmentInfosPtr segments;
97 bool useCompoundFile;
98 bool aborted;
99 LuceneException error;
100
101 public:
103 void setException(const LuceneException& error);
104
106 LuceneException getException();
107
109 void abort();
110
112 bool isAborted();
113
114 void checkAborted(DirectoryPtr dir);
115
116 String segString(DirectoryPtr dir);
117 };
118
121 class LPPAPI MergeSpecification : public LuceneObject
122 {
123 public:
124 MergeSpecification();
125 virtual ~MergeSpecification();
126
127 LUCENE_CLASS(MergeSpecification);
128
129 public:
130 Collection<OneMergePtr> merges;
131
132 public:
133 void add(OneMergePtr merge);
134 String segString(DirectoryPtr dir);
135 };
136 }
137
138 #endif

clucene.sourceforge.net