private void verifyIndexWriterOptions(NRTIndexManager nrtIM, Integer expectedRAMBuffer, Integer expectedMaxMergeSize, Integer expectedMergeFactor) { LuceneIndexingParameters indexingParameters = nrtIM.getIndexingParameters(); ParameterSet indexParameters = indexingParameters.getIndexParameters(); Assert.assertEquals(indexParameters.getCurrentValueFor(IndexWriterSetting.RAM_BUFFER_SIZE), expectedRAMBuffer); Assert.assertEquals(indexParameters.getCurrentValueFor(IndexWriterSetting.MERGE_MAX_SIZE), expectedMaxMergeSize); Assert.assertEquals(indexParameters.getCurrentValueFor(IndexWriterSetting.MERGE_FACTOR), expectedMergeFactor); }
/** * 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 ); }
public void applyToWriter(IndexWriterConfig writerConfig) { getIndexParameters().applyToWriter( writerConfig ); }
public void applyToWriter(IndexWriterConfig writerConfig) { getIndexParameters().applyToWriter( writerConfig ); }
public LuceneIndexingParameters(Properties sourceProps) { Properties indexingParameters = new MaskedProperty( sourceProps, PROP_GROUP ); indexParameters = new ParameterSet( indexingParameters ); }
/** * 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 ); }
private Integer getParameter(int shard, IndexWriterSetting setting, Class testEntity) { EntityIndexBinding mappingForEntity = getExtendedSearchIntegrator().getIndexBindings().get( testEntity ); DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) getIndexManager( mappingForEntity, shard ); LuceneIndexingParameters luceneIndexingParameters = indexManager.getIndexingParameters(); return luceneIndexingParameters.getIndexParameters().getCurrentValueFor( setting ); }
public LuceneIndexingParameters(Properties sourceProps) { Properties indexingParameters = new MaskedProperty( sourceProps, PROP_GROUP ); indexParameters = new ParameterSet( indexingParameters ); }