List of usage examples for org.apache.lucene.index IndexWriter commit
@Override public final long commit() throws IOException
Commits all pending changes (added and deleted documents, segment merges, added indexes, etc.) to the index, and syncs all referenced index files, such that a reader will see the changes and the index updates will survive an OS or machine crash or power loss.
From source file:com.dreamerpartner.codereview.lucene.IndexHelper.java
License:Apache License
/** * ?//from ww w . j a v a 2s .com * @param module ? * @param term ? * @throws IOException */ @SuppressWarnings("deprecation") public static void delete(String module, Term... term) throws IOException { long beginTime = System.currentTimeMillis(); IndexWriter writer = null; try { Directory dir = FSDirectory.open(new File(LuceneUtil.getIndexPath(module))); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_4_10_0); IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_4_10_0, analyzer); iwc.setMaxBufferedDocs(100); iwc.setOpenMode(OpenMode.CREATE_OR_APPEND); writer = new IndexWriter(dir, iwc); writer.deleteDocuments(term); writer.commit(); } finally { long endTime = System.currentTimeMillis(); logger.debug(module + " delete " + (endTime - beginTime) + " milliseconds."); if (writer != null) writer.close(); } }
From source file:com.dreamerpartner.codereview.lucene.IndexHelper.java
License:Apache License
/** * ?/* w ww. j a va 2 s .c om*/ * @param module ? * @throws IOException */ @SuppressWarnings("deprecation") public static void deleteAll(String module) throws IOException { long beginTime = System.currentTimeMillis(); IndexWriter writer = null; try { Directory dir = FSDirectory.open(new File(LuceneUtil.getIndexPath(module))); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_4_10_0); IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_4_10_0, analyzer); iwc.setMaxBufferedDocs(100); iwc.setOpenMode(OpenMode.CREATE_OR_APPEND); writer = new IndexWriter(dir, iwc); writer.deleteAll(); writer.commit(); } finally { long endTime = System.currentTimeMillis(); logger.debug(module + " deleteAll " + (endTime - beginTime) + " milliseconds."); if (writer != null) writer.close(); } }
From source file:com.dreamerpartner.codereview.lucene.IndexHelper.java
License:Apache License
/** * ??//from ww w . j av a2 s. co m * @param module ? * @throws IOException */ @SuppressWarnings("deprecation") public static void merge(String module) throws IOException { long beginTime = System.currentTimeMillis(); IndexWriter writer = null; try { Directory dir = FSDirectory.open(new File(LuceneUtil.getIndexPath(module))); Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_4_10_0); IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_4_10_0, analyzer); iwc.setOpenMode(OpenMode.CREATE_OR_APPEND); writer = new IndexWriter(dir, iwc); //?? writer.forceMerge(1); writer.commit(); } finally { long endTime = System.currentTimeMillis(); logger.debug("merge consume " + (endTime - beginTime) + " milliseconds."); if (writer != null) writer.close(); } }
From source file:com.edgenius.wiki.search.lucene.IndexWriterTemplate.java
License:Open Source License
public void deleteDocuments(Term term) { IndexWriter writer = indexFactory.getIndexWriter(); try {/*from ww w . ja v a2s .c o m*/ writer.deleteDocuments(term); writer.commit(); } catch (IOException ex) { log.error("Error during deleting a document", ex); throw new IndexAccessException("Error during deleting a document.", ex); } }
From source file:com.edgenius.wiki.search.lucene.IndexWriterTemplate.java
License:Open Source License
public void addDocument(IndexCallback callback) { IndexWriter writer = indexFactory.getIndexWriter(); try {// ww w. j av a2s .c o m callback.addDocument(writer); writer.commit(); } catch (IOException ex) { log.error("Error during deleting a document", ex); throw new IndexAccessException("Error during deleting a document.", ex); } }
From source file:com.edgenius.wiki.search.lucene.IndexWriterTemplate.java
License:Open Source License
/** * @param documentCreator/* ww w .j a v a 2s . com*/ */ public void addDocument(Document document) { IndexWriter writer = indexFactory.getIndexWriter(); try { writer.addDocument(document); writer.commit(); } catch (IOException ex) { log.error("Error during add a document", ex); throw new IndexAccessException("Error during add a document.", ex); } }
From source file:com.edgenius.wiki.search.lucene.IndexWriterTemplate.java
License:Open Source License
/** * //from ww w . j a va 2 s . com */ public void optimize() { IndexWriter writer = indexFactory.getIndexWriter(); try { writer.optimize(); writer.commit(); } catch (IOException ex) { log.error("Error during optimize documents", ex); throw new IndexAccessException("Error optimize documents.", ex); } }
From source file:com.epimorphics.server.indexers.LuceneIndex.java
License:Apache License
protected void doCommit() { IndexWriter writer = getIndexWriter(); try {/*from w w w .j a v a2 s . c om*/ writer.commit(); } catch (Exception e) { // try to save the data try { writer.close(); } catch (IOException e1) { // Do nothing, we've already taken our best shot log.error("Failed to even close index writer after commit error", e); } throw new EpiException(e); } }
From source file:com.esri.gpt.catalog.lucene.LuceneIndexAdapter.java
License:Apache License
/** * Closes an index writer.//from ww w.j a va 2 s.c o m * @param writer the writer to close. */ protected void closeWriter(IndexWriter writer) { if (this.useSingleWriter) { try { if (writer != null) { getLogger().finer("Committing Lucene IndexWriter..."); writer.commit(); } } catch (CorruptIndexException e) { getLogger().log(Level.SEVERE, "Error on IndexWriter.commit", e); } catch (IOException e) { getLogger().log(Level.SEVERE, "Error on IndexWriter.commit", e); } catch (OutOfMemoryError e) { getLogger().log(Level.SEVERE, "Error on IndexWriter.commit", e); try { writer.close(); } catch (CorruptIndexException e1) { getLogger().log(Level.SEVERE, "Error on IndexWriter.commit", e); } catch (IOException e1) { getLogger().log(Level.SEVERE, "Error on IndexWriter.commit", e); } finally { SINGLE_WRITER = null; } } return; } try { if (writer != null) { getLogger().finer("Closing Lucene IndexWriter..."); writer.close(); } } catch (Throwable t) { getLogger().log(Level.WARNING, "IndexWriter failed to close.", t); // There are times when closing the IndexWriter fails (typically FileNotFound while flushing). // This is a bit of a disaster, if it happens we're unsure if the index is corrupted, it // also leaves the write lock unreleased, which basically is terminal when a // NativeFSLockFactory is active (you need to stop/start the web server) // This is an attempt to forcibly release the lock. if ((writer != null) && this.luceneConfig.getUseNativeFSLockFactory()) { java.lang.reflect.Field wlFld = null; try { wlFld = writer.getClass().getDeclaredField("writeLock"); } catch (Throwable t2) { } if (wlFld != null) { boolean wasReleased = false; try { wlFld.setAccessible(true); Object wlObj = wlFld.get(writer); if ((wlObj != null) && (wlObj instanceof Lock)) { Lock wlLock = (Lock) wlObj; wasReleased = !wlLock.isLocked(); if (!wasReleased) { wlLock.release(); wasReleased = !wlLock.isLocked(); } } } catch (Throwable t2) { getLogger().log(Level.WARNING, "Unable to forcibly release an abandoned write lock.", t2); } finally { String sMsg = "The IndexWriter failed to close, write-lock released: " + wasReleased; getLogger().warning(sMsg); } } } } }
From source file:com.fuerve.villageelder.actions.results.SearchResultItemTest.java
License:Apache License
private void buildDummyIndex(final Directory indexDirectory, final Directory taxonomyDirectory) throws IOException { IndexWriterConfig iwc = new IndexWriterConfig(Lucene.LUCENE_VERSION, Lucene.getPerFieldAnalyzer()); iwc.setOpenMode(OpenMode.CREATE);//from w w w . j a v a 2s.c o m IndexWriter iw = new IndexWriter(indexDirectory, iwc); TaxonomyWriter tw = new DirectoryTaxonomyWriter(taxonomyDirectory, OpenMode.CREATE); List<CategoryPath> categories = new ArrayList<CategoryPath>(); FacetFields facetFields = new FacetFields(tw); Document doc = new Document(); categories.clear(); doc.add(new StringField("Author", "foo", Store.YES)); categories.add(new CategoryPath("Author", "foo")); doc.add(new LongField("RevisionNumber", 50L, Store.YES)); doc.add(new StringField("Revision", "50", Store.YES)); doc.add(new TextField("Message", "stuff", Store.YES)); iw.addDocument(doc); facetFields.addFields(doc, categories); doc = new Document(); facetFields = new FacetFields(tw); categories.clear(); doc.add(new StringField("Author", "bar", Store.YES)); categories.add(new CategoryPath("Author", "bar")); doc.add(new LongField("RevisionNumber", 5000L, Store.YES)); doc.add(new StringField("Revision", "5000", Store.YES)); doc.add(new TextField("Message", "stuff", Store.YES)); iw.addDocument(doc); facetFields.addFields(doc, categories); tw.commit(); tw.close(); iw.commit(); iw.close(); }