List of usage examples for org.apache.lucene.index IndexWriter deleteDocuments
public long deleteDocuments(Query... queries) throws IOException
From source file:org.infoglue.cms.controllers.kernel.impl.simple.LuceneController.java
License:Open Source License
public Map getIndexInformation() { Map info = new HashMap(); try {//w w w . ja v a 2s . c om String index = CmsPropertyHandler.getContextRootPath() + File.separator + "lucene" + File.separator + "index"; boolean indexExists = IndexReader.indexExists(new File(index)); if (!indexExists) { try { File INDEX_DIR = new File(index); IndexWriter writer = new IndexWriter(INDEX_DIR, new StandardAnalyzer()); logger.info("Indexing to directory '" + INDEX_DIR + "'..."); writer.deleteDocuments(new Term("initializer", "true")); logger.info("Optimizing..."); writer.optimize(); writer.close(); } catch (Exception e) { logger.error("Error creating index:" + e.getMessage(), e); } } IndexReader reader = IndexReader.open(index); int maxDoc = reader.maxDoc(); int numDoc = reader.numDocs(); long lastModified = IndexReader.lastModified(index); info.put("maxDoc", new Integer(maxDoc)); info.put("numDoc", new Integer(numDoc)); info.put("lastModified", new Date(lastModified)); reader.close(); } catch (Exception e) { logger.error("Error creating index:" + e.getMessage(), e); } return info; }
From source file:org.infoglue.cms.controllers.kernel.impl.simple.LuceneController.java
License:Open Source License
public void deleteIndex() { String index = CmsPropertyHandler.getContextRootPath() + File.separator + "lucene" + File.separator + "index"; try {/*w ww . ja v a 2 s . c om*/ File INDEX_DIR = new File(index); IndexWriter writer = new IndexWriter(INDEX_DIR, new StandardAnalyzer(), true); logger.info("Indexing to directory '" + INDEX_DIR + "'..."); writer.deleteDocuments(new Term("initializer", "true")); logger.info("Optimizing..."); writer.optimize(); writer.close(); } catch (Exception e) { logger.error("Error creating index:" + e.getMessage(), e); } }
From source file:org.infoglue.cms.controllers.kernel.impl.simple.SearchController.java
License:Open Source License
private void deleteVersionFromIndex(String contentVersionId) { IndexWriter writer = null; try {/* ww w .ja va 2s . c o m*/ String index = CmsPropertyHandler.getContextRootPath() + File.separator + "lucene" + File.separator + "index"; File INDEX_DIR = new File(index); writer = new IndexWriter(INDEX_DIR, new StandardAnalyzer()); logger.info("Indexing to directory '" + INDEX_DIR + "'..."); logger.info("Deleting contentVersionId:" + contentVersionId); writer.deleteDocuments(new Term("contentVersionId", "" + contentVersionId)); logger.info("Optimizing..."); writer.optimize(); writer.close(); } catch (Exception e) { logger.error("Error deleting index:" + e.getMessage(), e); } }
From source file:org.jabylon.index.properties.impl.PropertyIndex.java
License:Open Source License
@Override protected IStatus run(IProgressMonitor monitor) { IndexWriter writer = null; try {//from www.j ava2 s.co m writer = IndexActivator.getDefault().obtainIndexWriter(); while (true) { DocumentTuple documentTuple = writes.poll(20, TimeUnit.SECONDS); if (documentTuple == null) break; List<Document> documents = documentTuple.getDocuments(); switch (documentTuple.getAction()) { case CREATE: for (Document document : documents) { writer.addDocument(document); } break; case DELETE: StringBuilder builder = new StringBuilder(); CDOIDUtil.write(builder, documentTuple.getDescriptor().cdoID()); writer.deleteDocuments(new Term(QueryService.FIELD_CDO_ID, builder.toString())); break; case REPLACE: writer.deleteDocuments(new Term(QueryService.FIELD_FULL_PATH, documentTuple.getDescriptor().fullPath().toString())); for (Document document : documents) { writer.addDocument(document); } break; default: break; } } writer.commit(); } catch (CorruptIndexException e) { logger.error("Exception while indexing", e); } catch (LockObtainFailedException e) { logger.error("Exception while indexing", e); } catch (IOException e) { logger.error("Exception while indexing", e); } catch (InterruptedException e) { logger.warn("Interrupted while waiting for new index events", e); } finally { try { IndexActivator.getDefault().returnIndexWriter(writer); } catch (CorruptIndexException e) { logger.error("Exception while closing index writer", e); } catch (IOException e) { logger.error("Exception while closing index writer", e); } } return Status.OK_STATUS; }
From source file:org.jamwiki.search.LuceneSearchEngine.java
License:LGPL
/** * Remove a topic from the search index. * * @param topic The topic object that is to be removed from the index. *//*from w w w . java 2 s . c o m*/ public synchronized void deleteFromIndex(Topic topic) { String virtualWiki = topic.getVirtualWiki(); String topicName = topic.getName(); IndexWriter writer = null; try { FSDirectory directory = FSDirectory.getDirectory(getSearchIndexPath(virtualWiki)); // delete the current document // FIXME - move synchronization to the writer instance for this directory try { writer = new IndexWriter(directory, new StandardAnalyzer(), false); writer.deleteDocuments(new Term(ITYPE_TOPIC_PLAIN, topicName)); } finally { if (writer != null) { try { writer.close(); } catch (Exception e) { } } } directory.close(); } catch (Exception e) { logger.severe("Exception while adding topic " + topicName, e); } }
From source file:org.janusgraph.diskstorage.lucene.LuceneIndex.java
License:Apache License
private void mutateStores(Map.Entry<String, Map<String, IndexMutation>> stores, KeyInformation.IndexRetriever information) throws IOException, BackendException { IndexReader reader = null;// www . ja va 2s. co m try { final String storeName = stores.getKey(); final IndexWriter writer = getWriter(storeName, information); reader = DirectoryReader.open(writer, true, true); final IndexSearcher searcher = new IndexSearcher(reader); for (final Map.Entry<String, IndexMutation> entry : stores.getValue().entrySet()) { final String documentId = entry.getKey(); final IndexMutation mutation = entry.getValue(); if (mutation.isDeleted()) { if (log.isTraceEnabled()) log.trace("Deleted entire document [{}]", documentId); writer.deleteDocuments(new Term(DOCID, documentId)); continue; } final Pair<Document, Map<String, Shape>> docAndGeo = retrieveOrCreate(documentId, searcher); final Document doc = docAndGeo.getKey(); final Map<String, Shape> geoFields = docAndGeo.getValue(); Preconditions.checkNotNull(doc); for (final IndexEntry del : mutation.getDeletions()) { Preconditions.checkArgument(!del.hasMetaData(), "Lucene index does not support indexing meta data: %s", del); final String key = del.field; if (doc.getField(key) != null) { if (log.isTraceEnabled()) log.trace("Removing field [{}] on document [{}]", key, documentId); doc.removeFields(key); geoFields.remove(key); } } addToDocument(storeName, documentId, doc, mutation.getAdditions(), geoFields, information); //write the old document to the index with the modifications writer.updateDocument(new Term(DOCID, documentId), doc); } writer.commit(); } finally { IOUtils.closeQuietly(reader); } }
From source file:org.janusgraph.diskstorage.lucene.LuceneIndex.java
License:Apache License
@Override public void restore(Map<String, Map<String, List<IndexEntry>>> documents, KeyInformation.IndexRetriever information, BaseTransaction tx) throws BackendException { writerLock.lock();/*from www. ja va2 s . com*/ try { for (final Map.Entry<String, Map<String, List<IndexEntry>>> stores : documents.entrySet()) { final String store = stores.getKey(); final IndexWriter writer = getWriter(store, information); final IndexReader reader = DirectoryReader.open(writer, true, true); final IndexSearcher searcher = new IndexSearcher(reader); for (final Map.Entry<String, List<IndexEntry>> entry : stores.getValue().entrySet()) { final String docID = entry.getKey(); final List<IndexEntry> content = entry.getValue(); if (content == null || content.isEmpty()) { if (log.isTraceEnabled()) log.trace("Deleting document [{}]", docID); writer.deleteDocuments(new Term(DOCID, docID)); continue; } final Pair<Document, Map<String, Shape>> docAndGeo = retrieveOrCreate(docID, searcher); addToDocument(store, docID, docAndGeo.getKey(), content, docAndGeo.getValue(), information); //write the old document to the index with the modifications writer.updateDocument(new Term(DOCID, docID), docAndGeo.getKey()); } writer.commit(); } tx.commit(); } catch (final IOException e) { throw new TemporaryBackendException("Could not update Lucene index", e); } finally { writerLock.unlock(); } }
From source file:org.lexevs.dao.index.lucenesupport.BaseLuceneIndexTemplate.java
License:Open Source License
public void removeDocuments(final Term term) { this.doInIndexWriter(new IndexWriterCallback<Void>() { @Override// w w w . j av a 2 s .c o m public Void doInIndexWriter(IndexWriter indexWriter) throws Exception { indexWriter.deleteDocuments(term); return null; } }); }
From source file:org.lexevs.dao.index.lucenesupport.BaseLuceneIndexTemplate.java
License:Open Source License
public void removeDocuments(final Query query) { this.doInIndexWriter(new IndexWriterCallback<Void>() { @Override/*from w w w. j a v a 2 s .c o m*/ public Void doInIndexWriter(IndexWriter indexWriter) throws Exception { indexWriter.deleteDocuments(query); return null; } }); }
From source file:org.lexevs.dao.index.lucenesupport.MetaDataIndexTemplate.java
License:Open Source License
@Override public void removeDocuments(final Term term) { this.doInIndexWriter(new IndexWriterCallback<Void>() { @Override// w w w . j a v a 2s . c om public Void doInIndexWriter(IndexWriter indexWriter) throws Exception { indexWriter.deleteDocuments(term); return null; } }); }