List of usage examples for org.apache.lucene.index IndexWriterConfig setOpenMode
public IndexWriterConfig setOpenMode(OpenMode openMode)
From source file:org.opengrok.indexer.index.IndexDatabase.java
License:Open Source License
/** * Optimize the index database//from www. j ava2 s .c o m * @throws IOException I/O exception */ public void optimize() throws IOException { synchronized (lock) { if (running) { LOGGER.warning("Optimize terminated... Someone else is updating / optimizing it!"); return; } running = true; } IndexWriter wrt = null; IOException writerException = null; try { Statistics elapsed = new Statistics(); String projectDetail = this.project != null ? " for project " + project.getName() : ""; LOGGER.log(Level.INFO, "Optimizing the index{0}", projectDetail); Analyzer analyzer = new StandardAnalyzer(); IndexWriterConfig conf = new IndexWriterConfig(analyzer); conf.setOpenMode(OpenMode.CREATE_OR_APPEND); wrt = new IndexWriter(indexDirectory, conf); wrt.forceMerge(1); // this is deprecated and not needed anymore elapsed.report(LOGGER, String.format("Done optimizing index%s", projectDetail)); synchronized (lock) { if (dirtyFile.exists() && !dirtyFile.delete()) { LOGGER.log(Level.FINE, "Failed to remove \"dirty-file\": {0}", dirtyFile.getAbsolutePath()); } dirty = false; } } catch (IOException e) { writerException = e; LOGGER.log(Level.SEVERE, "ERROR: optimizing index: {0}", e); } finally { if (wrt != null) { try { wrt.close(); } catch (IOException e) { if (writerException == null) { writerException = e; } LOGGER.log(Level.WARNING, "An error occurred while closing writer", e); } } synchronized (lock) { running = false; } } if (writerException != null) { throw writerException; } }
From source file:org.openmailarchive.index.LuceneMailIndexer.java
License:Open Source License
public LuceneMailIndexer(String indexDir) { StandardAnalyzer analyzer = new StandardAnalyzer(); Directory index;//ww w .j a v a 2s. co m try { index = new NIOFSDirectory(Paths.get(indexDir)); IndexWriterConfig config = new IndexWriterConfig(analyzer); config.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND); w = new IndexWriter(index, config); } catch (IOException e) { e.printStackTrace(); } toWrite = new ArrayList<>(); }
From source file:org.openrdf.sail.lucene.LuceneIndex.java
License:BSD License
/** * Creates a new LuceneIndex./*from w w w . j a va 2s . co m*/ * * @param directory * The Directory in which an index can be found and/or in which index * files are written. * @param analyzer * The Analyzer that will be used for tokenizing strings to index and * queries. * @throws IOException * When the Directory could not be unlocked. */ public LuceneIndex(Directory directory, Analyzer analyzer) throws IOException { this.directory = directory; this.analyzer = analyzer; this.queryAnalyzer = new StandardAnalyzer(Version.LUCENE_35); // get rid of any locks that may have been left by previous (crashed) // sessions if (IndexWriter.isLocked(directory)) { logger.info("unlocking directory {}", directory); IndexWriter.unlock(directory); } // do some initialization for new indices if (!IndexReader.indexExists(directory)) { logger.info("creating new Lucene index in directory {}", directory); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_35, analyzer); indexWriterConfig.setOpenMode(OpenMode.CREATE); IndexWriter writer = new IndexWriter(directory, indexWriterConfig); writer.close(); } }
From source file:org.openrdf.sail.lucene.LuceneIndex.java
License:BSD License
/** * //from ww w . j a v a 2 s .co m */ public synchronized void clear() throws IOException { // clear // the old IndexReaders/Searchers are not outdated invalidateReaders(); if (indexWriter != null) indexWriter.close(); // crate new writer IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_35, analyzer); indexWriterConfig.setOpenMode(OpenMode.CREATE); indexWriter = new IndexWriter(directory, indexWriterConfig); indexWriter.close(); indexWriter = null; }
From source file:org.openrdf.sail.lucene3.LuceneIndex.java
License:BSD License
private void postInit() throws IOException { this.queryAnalyzer = new StandardAnalyzer(Version.LUCENE_35); // get rid of any locks that may have been left by previous (crashed) // sessions/*from w ww . j a va 2 s. c o m*/ if (IndexWriter.isLocked(directory)) { logger.info("unlocking directory {}", directory); IndexWriter.unlock(directory); } // do some initialization for new indices if (!IndexReader.indexExists(directory)) { logger.info("creating new Lucene index in directory {}", directory); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_35, analyzer); indexWriterConfig.setOpenMode(OpenMode.CREATE); IndexWriter writer = new IndexWriter(directory, indexWriterConfig); writer.close(); } }
From source file:org.openrdf.sail.lucene3.LuceneIndex.java
License:BSD License
/** * // www . j a va 2 s .c o m */ @Override public synchronized void clear() throws IOException { // clear // the old IndexReaders/Searchers are not outdated invalidateReaders(); if (indexWriter != null) indexWriter.close(); // crate new writer IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_35, analyzer); indexWriterConfig.setOpenMode(OpenMode.CREATE); indexWriter = new IndexWriter(directory, indexWriterConfig); indexWriter.close(); indexWriter = null; }
From source file:org.openrdf.sail.lucene4.LuceneIndex.java
License:BSD License
private void postInit() throws IOException { this.queryAnalyzer = new StandardAnalyzer(); // do some initialization for new indices if (!DirectoryReader.indexExists(directory)) { logger.info("creating new Lucene index in directory {}", directory); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_4_10_4, analyzer); indexWriterConfig.setOpenMode(OpenMode.CREATE); IndexWriter writer = new IndexWriter(directory, indexWriterConfig); writer.close();/*from w ww . j ava 2s. c om*/ } }
From source file:org.openrdf.sail.lucene4.LuceneIndex.java
License:BSD License
/** * //from w w w .j av a 2s.c o m */ @Override public synchronized void clear() throws IOException { // clear // the old IndexReaders/Searchers are not outdated invalidateReaders(); if (indexWriter != null) indexWriter.close(); // crate new writer IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_4_10_4, analyzer); indexWriterConfig.setOpenMode(OpenMode.CREATE); indexWriter = new IndexWriter(directory, indexWriterConfig); indexWriter.close(); indexWriter = null; }
From source file:org.opensolaris.opengrok.index.IndexDatabase.java
License:Open Source License
/** * Update the content of this index database * * @throws IOException if an error occurs * @throws HistoryException if an error occurs when accessing the history *///from w w w. j a va2s. c o m public void update() throws IOException, HistoryException { synchronized (lock) { if (running) { throw new IOException("Indexer already running!"); } running = true; interrupted = false; } String ctgs = RuntimeEnvironment.getInstance().getCtags(); if (ctgs != null) { ctags = new Ctags(); ctags.setBinary(ctgs); } if (ctags == null) { log.severe("Unable to run ctags! searching definitions will not work!"); } if (ctags != null) { String filename = RuntimeEnvironment.getInstance().getCTagsExtraOptionsFile(); if (filename != null) { ctags.setCTagsExtraOptionsFile(filename); } } try { Analyzer analyzer = AnalyzerGuru.getAnalyzer(); IndexWriterConfig iwc = new IndexWriterConfig(SearchEngine.LUCENE_VERSION, analyzer); iwc.setOpenMode(OpenMode.CREATE_OR_APPEND); iwc.setRAMBufferSizeMB(RuntimeEnvironment.getInstance().getRamBufferSize()); writer = new IndexWriter(indexDirectory, iwc); writer.commit(); // to make sure index exists on the disk if (directories.isEmpty()) { if (project == null) { directories.add(""); } else { directories.add(project.getPath()); } } for (String dir : directories) { File sourceRoot; if ("".equals(dir)) { sourceRoot = RuntimeEnvironment.getInstance().getSourceRootFile(); } else { sourceRoot = new File(RuntimeEnvironment.getInstance().getSourceRootFile(), dir); } HistoryGuru.getInstance().ensureHistoryCacheExists(sourceRoot); String startuid = Util.path2uid(dir, ""); IndexReader reader = DirectoryReader.open(indexDirectory); // open existing index Terms terms = null; int numDocs = reader.numDocs(); if (numDocs > 0) { Fields uFields = MultiFields.getFields(reader);//reader.getTermVectors(0); terms = uFields.terms(QueryBuilder.U); } try { if (numDocs > 0) { uidIter = terms.iterator(uidIter); TermsEnum.SeekStatus stat = uidIter.seekCeil(new BytesRef(startuid)); //init uid if (stat == TermsEnum.SeekStatus.END) { uidIter = null; log.log(Level.WARNING, "Couldn't find a start term for {0}, empty u field?", startuid); } } // The code below traverses the tree to get total count. int file_cnt = 0; if (RuntimeEnvironment.getInstance().isPrintProgress()) { log.log(Level.INFO, "Counting files in {0} ...", dir); file_cnt = indexDown(sourceRoot, dir, true, 0, 0); if (log.isLoggable(Level.INFO)) { log.log(Level.INFO, "Need to process: {0} files for {1}", new Object[] { file_cnt, dir }); } } indexDown(sourceRoot, dir, false, 0, file_cnt); while (uidIter != null && uidIter.term() != null && uidIter.term().utf8ToString().startsWith(startuid)) { removeFile(); BytesRef next = uidIter.next(); if (next == null) { uidIter = null; } } } finally { reader.close(); } } } finally { if (writer != null) { try { writer.prepareCommit(); writer.commit(); writer.close(); } catch (IOException e) { log.log(Level.WARNING, "An error occured while closing writer", e); } } if (ctags != null) { try { ctags.close(); } catch (IOException e) { log.log(Level.WARNING, "An error occured while closing ctags process", e); } } synchronized (lock) { running = false; } } if (!isInterrupted() && isDirty()) { if (RuntimeEnvironment.getInstance().isOptimizeDatabase()) { optimize(); } RuntimeEnvironment env = RuntimeEnvironment.getInstance(); File timestamp = new File(env.getDataRootFile(), "timestamp"); String purpose = "used for timestamping the index database."; if (timestamp.exists()) { if (!timestamp.setLastModified(System.currentTimeMillis())) { log.log(Level.WARNING, "Failed to set last modified time on ''{0}'', {1}", new Object[] { timestamp.getAbsolutePath(), purpose }); } } else { if (!timestamp.createNewFile()) { log.log(Level.WARNING, "Failed to create file ''{0}'', {1}", new Object[] { timestamp.getAbsolutePath(), purpose }); } } } }