/** * Create as new IndexWriter using the passed in IndexWriterConfig as a template, but still applies some late changes: * we need to override the MergeScheduler to handle background errors, and a new instance needs to be created for each * new IndexWriter. * Also each new IndexWriter needs a new MergePolicy. */ private IndexWriter createNewIndexWriter() throws IOException { final IndexWriterConfig indexWriterConfig = createWriterConfig(); //Each writer config can be attached only once to an IndexWriter LogByteSizeMergePolicy newMergePolicy = indexParameters.getNewMergePolicy(); //TODO make it possible to configure a different policy? indexWriterConfig.setMergePolicy( newMergePolicy ); MergeScheduler mergeScheduler = new ConcurrentMergeScheduler( this.errorHandler, this.indexName ); indexWriterConfig.setMergeScheduler( mergeScheduler ); return new IndexWriter( directoryProvider.getDirectory(), indexWriterConfig ); }
/** * Create as new IndexWriter using the passed in IndexWriterConfig as a template, but still applies some late changes: * we need to override the MergeScheduler to handle background errors, and a new instance needs to be created for each * new IndexWriter. * Also each new IndexWriter needs a new MergePolicy. */ private IndexWriter createNewIndexWriter() throws IOException { final IndexWriterConfig indexWriterConfig = createWriterConfig(); //Each writer config can be attached only once to an IndexWriter LogByteSizeMergePolicy newMergePolicy = indexParameters.getNewMergePolicy(); //TODO make it possible to configure a different policy? indexWriterConfig.setMergePolicy( newMergePolicy ); MergeScheduler mergeScheduler = new ConcurrentMergeScheduler( this.errorHandler, this.indexName ); indexWriterConfig.setMergeScheduler( mergeScheduler ); return new IndexWriter( directoryProvider.getDirectory(), indexWriterConfig ); }