List of usage examples for org.apache.lucene.index LogMergePolicy setMaxMergeDocs
public void setMaxMergeDocs(int maxMergeDocs)
Determines the largest segment (measured by document count) that may be merged with other segments.
From source file:com.edgenius.wiki.search.lucene.SimpleIndexFactory.java
License:Open Source License
private IndexWriterConfig getIndexWriterConfig() { IndexWriterConfig conf = new IndexWriterConfig(LuceneConfig.VERSION, analyzerProvider.getIndexAnalyzer()); conf.setMaxBufferedDocs(maxBufferedDocs); conf.setTermIndexInterval(termIndexInterval); conf.setWriteLockTimeout(writeLockTimeout); LogMergePolicy mergePolicy = new LogDocMergePolicy(); mergePolicy.setUseCompoundFile(useCompoundFile); mergePolicy.setMaxMergeDocs(maxMergeDocs); mergePolicy.setMergeFactor(mergeFactor); conf.setMergePolicy(mergePolicy);/*from w ww. j ava2 s .c o m*/ return conf; }
From source file:net.ion.craken.node.problem.distribute.LuceneSettings.java
License:Open Source License
public static IndexWriter openWriter(Directory directory, int maxMergeDocs, boolean useSerialMerger) throws CorruptIndexException, LockObtainFailedException, IOException { IndexWriterConfig indexWriterConfig = new IndexWriterConfig(LUCENE_VERSION, analyzer); if (useSerialMerger) { indexWriterConfig.setMergeScheduler(mergeScheduler); }//from w ww.ja va2 s. c o m LogMergePolicy mergePolicy = new LogByteSizeMergePolicy(); mergePolicy.setMaxMergeDocs(maxMergeDocs); indexWriterConfig.setMergePolicy(mergePolicy); return new IndexWriter(directory, indexWriterConfig); }
From source file:org.apache.solr.update.SolrIndexConfig.java
License:Apache License
/** * Builds a MergePolicy, may also modify the value returned by * getUseCompoundFile() for use by the IndexWriterConfig if * "useCompoundFile" is specified as an init arg for * an out of the box MergePolicy that no longer supports it * * @see #fixUseCFMergePolicyInitArg//from www .j a va2s.c om * @see #getUseCompoundFile */ private MergePolicy buildMergePolicy(IndexSchema schema) { String mpClassName = mergePolicyInfo == null ? defaultMergePolicyClassName : mergePolicyInfo.className; MergePolicy policy = schema.getResourceLoader().newInstance(mpClassName, MergePolicy.class); if (policy instanceof LogMergePolicy) { LogMergePolicy logMergePolicy = (LogMergePolicy) policy; fixUseCFMergePolicyInitArg(LogMergePolicy.class); if (maxMergeDocs != -1) logMergePolicy.setMaxMergeDocs(maxMergeDocs); logMergePolicy.setNoCFSRatio(getUseCompoundFile() ? 1.0 : 0.0); if (mergeFactor != -1) logMergePolicy.setMergeFactor(mergeFactor); } else if (policy instanceof TieredMergePolicy) { TieredMergePolicy tieredMergePolicy = (TieredMergePolicy) policy; fixUseCFMergePolicyInitArg(TieredMergePolicy.class); tieredMergePolicy.setNoCFSRatio(getUseCompoundFile() ? 1.0 : 0.0); if (mergeFactor != -1) { tieredMergePolicy.setMaxMergeAtOnce(mergeFactor); tieredMergePolicy.setSegmentsPerTier(mergeFactor); } } else if (mergeFactor != -1) { log.warn( "Use of <mergeFactor> cannot be configured if merge policy is not an instance of LogMergePolicy or TieredMergePolicy. The configured policy's defaults will be used."); } if (mergePolicyInfo != null) SolrPluginUtils.invokeSetters(policy, mergePolicyInfo.initArgs); return policy; }
From source file:org.opencms.search.CmsSearchIndex.java
License:Open Source License
/** * Creates a new index writer.<p>/*from w w w . j av a 2 s. c o m*/ * * @param create if <code>true</code> a whole new index is created, if <code>false</code> an existing index is updated * * @return the created new index writer * * @throws CmsIndexException in case the writer could not be created * * @see #getIndexWriter(I_CmsReport, boolean) */ protected I_CmsIndexWriter indexWriterCreate(boolean create) throws CmsIndexException { IndexWriter indexWriter; try { // check if the target directory already exists File f = new File(m_path); if (!f.exists()) { // index does not exist yet f = f.getParentFile(); if ((f != null) && !f.exists()) { // create the parent folders if required f.mkdirs(); } // create must be true if the directory does not exist create = true; } // open file directory for Lucene FSDirectory dir = FSDirectory.open(new File(m_path)); // create Lucene merge policy LogMergePolicy mergePolicy = new LogByteSizeMergePolicy(); if (m_luceneMaxMergeDocs != null) { mergePolicy.setMaxMergeDocs(m_luceneMaxMergeDocs.intValue()); } if (m_luceneMergeFactor != null) { mergePolicy.setMergeFactor(m_luceneMergeFactor.intValue()); } if (m_luceneUseCompoundFile != null) { mergePolicy.setUseCompoundFile(m_luceneUseCompoundFile.booleanValue()); } // create a new Lucene index configuration IndexWriterConfig indexConfig = new IndexWriterConfig(LUCENE_VERSION, getAnalyzer()); // set the index configuration parameters if required if (m_luceneRAMBufferSizeMB != null) { indexConfig.setRAMBufferSizeMB(m_luceneRAMBufferSizeMB.doubleValue()); } if (create) { indexConfig.setOpenMode(OpenMode.CREATE); } else { indexConfig.setOpenMode(OpenMode.CREATE_OR_APPEND); } // create the index indexWriter = new IndexWriter(dir, indexConfig); } catch (Exception e) { throw new CmsIndexException( Messages.get().container(Messages.ERR_IO_INDEX_WRITER_OPEN_2, m_path, m_name), e); } return new CmsLuceneIndexWriter(indexWriter, this); }
From source file:psidev.psi.mi.search.index.PsimiIndexWriter.java
License:Apache License
public void index(Directory directory, InputStream is, boolean createIndex, boolean hasHeaderLine) throws IOException, ConverterException, MitabLineException { IndexWriterConfig writerConfig = new IndexWriterConfig(Version.LUCENE_30, new StandardAnalyzer(Version.LUCENE_30)); LogMergePolicy policy = new LogDocMergePolicy(); policy.setMergeFactor(MERGE_FACTOR); policy.setMaxMergeDocs(Integer.MAX_VALUE); writerConfig.setMergePolicy(policy); IndexWriter indexWriter = new IndexWriter(directory, writerConfig); if (createIndex) { indexWriter.commit();/*from w w w. j av a 2 s . c o m*/ indexWriter.deleteAll(); indexWriter.commit(); } index(indexWriter, is, hasHeaderLine); indexWriter.close(); }