237 static int32_t MAX_TERM_LENGTH();
246 virtual void initialize();
302 virtual void acquireWrite();
303 virtual void releaseWrite();
304 virtual void acquireRead();
308 virtual void upgradeReadToWrite();
310 virtual void releaseRead();
311 virtual bool isOpen(
bool includePendingClose);
312 virtual void message(
const String& message);
322 virtual bool getUseCompoundFile();
330 virtual void setUseCompoundFile(
bool value);
355 virtual void setTermIndexInterval(int32_t interval);
359 virtual int32_t getTermIndexInterval();
388 virtual void setMaxMergeDocs(int32_t maxMergeDocs);
398 virtual int32_t getMaxMergeDocs();
409 virtual void setMaxFieldLength(int32_t maxFieldLength);
413 virtual int32_t getMaxFieldLength();
418 virtual void setReaderTermsIndexDivisor(int32_t divisor);
421 virtual int32_t getReaderTermsIndexDivisor();
434 virtual void setMaxBufferedDocs(int32_t maxBufferedDocs);
438 virtual int32_t getMaxBufferedDocs();
461 virtual void setRAMBufferSizeMB(
double mb);
464 virtual double getRAMBufferSizeMB();
472 virtual void setMaxBufferedDeleteTerms(int32_t maxBufferedDeleteTerms);
476 virtual int32_t getMaxBufferedDeleteTerms();
487 virtual void setMergeFactor(int32_t mergeFactor);
496 virtual int32_t getMergeFactor();
500 static void setDefaultInfoStream(
const InfoStreamPtr& infoStream);
515 virtual bool verbose();
520 virtual void setWriteLockTimeout(int64_t writeLockTimeout);
524 virtual int64_t getWriteLockTimeout();
528 static void setDefaultWriteLockTimeout(int64_t writeLockTimeout);
532 static int64_t getDefaultWriteLockTimeout();
547 virtual void close();
561 virtual void close(
bool waitForMerges);
572 virtual int32_t maxDoc();
578 virtual int32_t numDocs();
580 virtual bool hasDeletions();
620 virtual void deleteDocuments(
const TermPtr& term);
634 virtual void deleteDocuments(
const QueryPtr& query);
665 virtual int32_t getSegmentCount();
666 virtual int32_t getNumBufferedDocuments();
667 virtual int32_t getDocCount(int32_t i);
668 virtual int32_t getFlushCount();
669 virtual int32_t getFlushDeletesCount();
671 virtual String newSegmentName();
707 virtual void optimize();
715 virtual void optimize(int32_t maxNumSegments);
722 virtual void optimize(
bool doWait);
729 virtual void optimize(int32_t maxNumSegments,
bool doWait);
736 virtual void expungeDeletes(
bool doWait);
749 virtual void expungeDeletes();
759 virtual void maybeMerge();
770 virtual void rollback();
783 virtual void deleteAll();
789 virtual void waitForMerges();
839 virtual void prepareCommit();
857 virtual void prepareCommit(MapStringString commitUserData);
876 virtual void commit();
883 virtual void commit(MapStringString commitUserData);
887 virtual int64_t ramSizeInBytes();
890 virtual int32_t numRamDocs();
896 virtual void mergeSuccess(
const OneMergePtr& merge);
901 virtual bool registerMerge(
const OneMergePtr& merge);
908 virtual void mergeFinish(
const OneMergePtr& merge);
910 virtual void addMergeException(
const OneMergePtr& merge);
913 virtual int32_t getBufferedDeleteTermsSize();
916 virtual int32_t getNumBufferedDeleteTerms();
921 virtual String segString();
951 virtual bool testPoint(
const String& name);
954 virtual bool isClosed();
957 virtual void ensureOpen(
bool includePendingClose);
958 virtual void ensureOpen();
969 virtual void pushMaxBufferedDocs();
971 virtual void messageState();
975 virtual bool shouldClose();
976 virtual void closeInternal(
bool waitForMerges);
980 virtual bool flushDocStores();
983 virtual bool optimizeMergesPending();
985 virtual void maybeMerge(
bool optimize);
986 virtual void maybeMerge(int32_t maxNumSegmentsOptimize,
bool optimize);
987 virtual void updatePendingMerges(int32_t maxNumSegmentsOptimize,
bool optimize);
999 virtual void startTransaction(
bool haveReadLock);
1002 virtual void rollbackTransaction();
1006 virtual void commitTransaction();
1007 virtual void rollbackInternal();
1009 virtual void finishMerges(
bool waitForMerges);
1013 virtual void checkpoint();
1015 virtual void finishAddIndexes();
1016 virtual void blockAddIndexes(
bool includePendingClose);
1017 virtual void resumeAddIndexes();
1018 virtual void resetMergeExceptions();
1021 virtual bool hasExternalSegments();
1027 virtual void resolveExternalSegments();
1031 virtual void doAfterFlush();
1035 virtual void doBeforeFlush();
1037 virtual void commit(int64_t sizeInBytes);
1038 virtual void finishCommit();
1044 virtual void flush(
bool triggerMerge,
bool flushDocStores,
bool flushDeletes);
1045 virtual bool doFlush(
bool flushDocStores,
bool flushDeletes);
1046 virtual bool doFlushInternal(
bool flushDocStores,
bool flushDeletes);
1048 virtual int32_t ensureContiguousMerge(
const OneMergePtr& merge);
1060 virtual void _mergeInit(
const OneMergePtr& merge);
1062 virtual void setDiagnostics(
const SegmentInfoPtr& info,
const String& source);
1063 virtual void setDiagnostics(
const SegmentInfoPtr& info,
const String& source, MapStringString details);
1065 virtual void setMergeDocStoreIsCompoundFile(
const OneMergePtr& merge);
1066 virtual void closeMergeReaders(
const OneMergePtr& merge,
bool suppressExceptions);
1070 virtual int32_t mergeMiddle(
const OneMergePtr& merge);
1073 virtual bool applyDeletes();
1077 virtual bool startSync(
const String& fileName,
HashSet<String> pending);
1078 virtual void finishSync(
const String& fileName,
bool success);
1087 virtual void startCommit(int64_t sizeInBytes, MapStringString commitUserData);
1089 virtual LuceneException handleOOM(
const std::bad_alloc& oom,
const String& location);
1091 friend class ReaderPool;
static const int32_t DEFAULT_MAX_BUFFERED_DOCS
Disabled by default (because IndexWriter flushes by RAM usage by default). Change using setMaxBuffere...
Definition: IndexWriter.h:218
An IndexWriter creates and maintains an index.
Definition: IndexWriter.h:90
static const String WRITE_LOCK_NAME
Definition: IndexWriter.h:211
static int64_t WRITE_LOCK_TIMEOUT
Default value for the write lock timeout (1,000).
Definition: IndexWriter.h:209
static const int32_t MaxFieldLengthLIMITED
Sets the maximum field length to DEFAULT_MAX_FIELD_LENGTH.
Definition: IndexWriter.h:243
int32_t termIndexInterval
Definition: IndexWriter.h:146
static const int32_t MaxFieldLengthUNLIMITED
Sets the maximum field length to INT_MAX.
Definition: IndexWriter.h:240
SetSegmentInfo segmentsToOptimize
Definition: IndexWriter.h:141
SetOneMerge runningMerges
Definition: IndexWriter.h:155
boost::shared_ptr< InfoStream > InfoStreamPtr
Definition: LuceneTypes.h:532
static const int32_t DISABLE_AUTO_FLUSH
Value to denote a flush trigger is disabled.
Definition: IndexWriter.h:214
boost::shared_ptr< Term > TermPtr
Definition: LuceneTypes.h:233
boost::shared_ptr< Analyzer > AnalyzerPtr
Definition: LuceneTypes.h:20
bool closing
Definition: IndexWriter.h:149
boost::shared_ptr< IndexFileDeleter > IndexFileDeleterPtr
Definition: LuceneTypes.h:154
boost::shared_ptr< OneMerge > OneMergePtr
Definition: LuceneTypes.h:192
boost::shared_ptr< MergePolicy > MergePolicyPtr
Definition: LuceneTypes.h:174
bool hitOOM
Definition: IndexWriter.h:115
bool stopMerges
Definition: IndexWriter.h:158
int32_t optimizeMaxNumSegments
Definition: IndexWriter.h:142
Collection< OneMergePtr > mergeExceptions
Definition: IndexWriter.h:156
boost::shared_ptr< IndexReaderWarmer > IndexReaderWarmerPtr
Definition: LuceneTypes.h:158
MapSegmentInfoInt rollbackSegments
Definition: IndexWriter.h:131
IndexReaderWarmerPtr mergedSegmentWarmer
Definition: IndexWriter.h:195
int64_t pendingCommitChangeCount
Definition: IndexWriter.h:202
int64_t changeCount
Definition: IndexWriter.h:127
int32_t maxFieldLength
The maximum number of terms that will be indexed for a single field in a document. This limits the amount of memory required for indexing, so that collections with very large files will not crash the indexing process by running out of memory. Note that this effectively truncates large documents, excluding from the index terms that occur further in the document. If you know your source documents are large, be sure to set this value high enough to accommodate the expected size. If you set it to INT_MAX, then the only limit is your memory, but you should anticipate an std::bad_alloc. By default, no more than 10,000 terms will be indexed for a field.
Definition: IndexWriter.h:187
SetSegmentInfo mergingSegments
Definition: IndexWriter.h:151
int64_t lastCommitChangeCount
Definition: IndexWriter.h:128
int32_t messageID
Definition: IndexWriter.h:114
bool closed
Definition: IndexWriter.h:148
IndexFileDeleterPtr deleter
Definition: IndexWriter.h:139
SynchronizePtr commitLock
Used only by commit; lock order is commitLock -> IW.
Definition: IndexWriter.h:198
DocumentsWriterPtr docWriter
Definition: IndexWriter.h:138
boost::shared_ptr< MergeScheduler > MergeSchedulerPtr
Definition: LuceneTypes.h:175
static const int32_t MERGE_READ_BUFFER_SIZE
The normal read buffer size defaults to 1024, but increasing this during merging seems to yield perfo...
Definition: IndexWriter.h:110
IndexCommitPtr indexCommit
Definition: IndexWriter.h:123
boost::shared_ptr< SegmentInfo > SegmentInfoPtr
Definition: LuceneTypes.h:208
boost::shared_ptr< LogMergePolicy > LogMergePolicyPtr
Definition: LuceneTypes.h:172
int64_t writeLockTimeout
Definition: IndexWriter.h:102
static const double DEFAULT_RAM_BUFFER_SIZE_MB
Default value is 16 MB (which means flush when buffered docs consume 16 MB RAM). Change using setRAMB...
Definition: IndexWriter.h:222
boost::shared_ptr< Lock > LockPtr
Definition: LuceneTypes.h:496
SynchronizePtr messageIDLock
Definition: IndexWriter.h:112
boost::shared_ptr< SegmentInfos > SegmentInfosPtr
Definition: LuceneTypes.h:210
LockPtr writeLock
Definition: IndexWriter.h:144
boost::shared_ptr< DocumentsWriter > DocumentsWriterPtr
Definition: LuceneTypes.h:123
int32_t flushCount
Definition: IndexWriter.h:160
boost::shared_ptr< Document > DocumentPtr
Definition: LuceneTypes.h:74
boost::shared_ptr< IndexDeletionPolicy > IndexDeletionPolicyPtr
Definition: LuceneTypes.h:153
boost::shared_ptr< Query > QueryPtr
Definition: LuceneTypes.h:420
int64_t mergeGen
Definition: IndexWriter.h:157
int32_t localFlushedDocCount
Definition: IndexWriter.h:134
ReaderPoolPtr readerPool
Definition: IndexWriter.h:204
HashSet< String > syncing
Definition: IndexWriter.h:193
If getReader has been called (ie, this writer is in near real-time mode), then after a merge complete...
Definition: IndexWriter.h:1100
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157
boost::shared_ptr< Directory > DirectoryPtr
Definition: LuceneTypes.h:489
Base class for all Lucene classes.
Definition: LuceneObject.h:31
AnalyzerPtr analyzer
Definition: IndexWriter.h:118
HashSet< String > synced
Definition: IndexWriter.h:192
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
int64_t writeThread
Definition: IndexWriter.h:165
Definition: AbstractAllTermDocs.h:12
Lucene exception container.
Definition: LuceneException.h:15
boost::shared_ptr< IndexCommit > IndexCommitPtr
Definition: LuceneTypes.h:152
static int32_t MESSAGE_ID
Definition: IndexWriter.h:113
bool poolReaders
Definition: IndexWriter.h:175
boost::shared_ptr< SegmentReader > SegmentReaderPtr
Definition: LuceneTypes.h:215
static const int32_t DEFAULT_TERM_INDEX_INTERVAL
Default value is 128. Change using setTermIndexInterval(int32_t).
Definition: IndexWriter.h:232
SegmentInfosPtr rollbackSegmentInfos
Definition: IndexWriter.h:130
InfoStreamPtr infoStream
Definition: IndexWriter.h:189
SegmentInfosPtr segmentInfos
Definition: IndexWriter.h:136
int32_t flushDeletesCount
Definition: IndexWriter.h:161
DirectoryPtr directory
Definition: IndexWriter.h:117
Collection< OneMergePtr > pendingMerges
Definition: IndexWriter.h:154
boost::shared_ptr< ReaderPool > ReaderPoolPtr
Definition: LuceneTypes.h:203
bool create
Definition: IndexWriter.h:120
IndexingChainPtr indexingChain
Definition: IndexWriter.h:122
static const int32_t DEFAULT_MAX_BUFFERED_DELETE_TERMS
Disabled by default (because IndexWriter flushes by RAM usage by default). Change using setMaxBuffere...
Definition: IndexWriter.h:226
boost::shared_ptr< IndexingChain > IndexingChainPtr
Definition: LuceneTypes.h:156
boost::shared_ptr< Synchronize > SynchronizePtr
Definition: LuceneTypes.h:552
boost::shared_ptr< Similarity > SimilarityPtr
Definition: LuceneTypes.h:435
SimilarityPtr similarity
Definition: IndexWriter.h:125
MergePolicyPtr mergePolicy
Definition: IndexWriter.h:152
static const int32_t DEFAULT_MAX_FIELD_LENGTH
Default value is 10,000. Change using setMaxFieldLength(int32_t).
Definition: IndexWriter.h:229
int32_t readCount
Used to only allow one addIndexes to proceed at once.
Definition: IndexWriter.h:164
boost::shared_ptr< SegmentMerger > SegmentMergerPtr
Definition: LuceneTypes.h:214
int32_t readerTermsIndexDivisor
Definition: IndexWriter.h:168
int32_t upgradeCount
Definition: IndexWriter.h:166
IndexDeletionPolicyPtr deletionPolicy
Definition: IndexWriter.h:121
static InfoStreamPtr defaultInfoStream
Definition: IndexWriter.h:190
MergeSchedulerPtr mergeScheduler
Definition: IndexWriter.h:153
SegmentInfosPtr localRollbackSegmentInfos
Definition: IndexWriter.h:133