List of usage examples for org.apache.lucene.index IndexWriter deleteDocuments
public long deleteDocuments(Query... queries) throws IOException
From source file:org.frontcache.cache.impl.LuceneIndexManager.java
License:Apache License
/** * Removes documents by url or tags/*w w w . j a va 2 s .co m*/ * @param urlOrTag */ public void delete(String domain, String urlOrTag) { IndexWriter iWriter = null; try { iWriter = getIndexWriter(); if (iWriter == null) { return; } } catch (Exception e1) { logger.debug("Error during getting indexWriter. " + e1.getMessage()); return; } try { // Query domainQuery = new TermQuery(new Term(DOMAIN_FIELD, domain)); Query urlQuery = new TermQuery(new Term(URL_FIELD, urlOrTag)); Query tagsQuery = new TermQuery(new Term(TAGS_FIELD, urlOrTag)); BooleanQuery.Builder booleanQuery = new BooleanQuery.Builder(); // booleanQuery.add(domainQuery, Occur.MUST); booleanQuery.add(urlQuery, Occur.SHOULD); booleanQuery.add(tagsQuery, Occur.SHOULD); long count = iWriter.deleteDocuments(booleanQuery.build()); logger.debug("Removed {} documents for {}.", count, urlOrTag); } catch (IOException e) { logger.error(e.getMessage(), e); } finally { try { iWriter.commit(); } catch (IOException e) { logger.error(e.getMessage(), e); } } }
From source file:org.frontcache.cache.impl.LuceneIndexManager.java
License:Apache License
public void delete(String urlOrTag) { IndexWriter iWriter = null; try {/*from w w w.j a va2 s . c o m*/ iWriter = getIndexWriter(); if (iWriter == null) { return; } } catch (Exception e1) { logger.debug("Error during getting indexWriter. " + e1.getMessage()); return; } try { Query urlQuery = new TermQuery(new Term(URL_FIELD, urlOrTag)); Query tagsQuery = new TermQuery(new Term(TAGS_FIELD, urlOrTag)); BooleanQuery.Builder booleanQuery = new BooleanQuery.Builder(); booleanQuery.add(urlQuery, Occur.SHOULD); booleanQuery.add(tagsQuery, Occur.SHOULD); long count = iWriter.deleteDocuments(booleanQuery.build()); logger.debug("Removed {} documents for {}.", count, urlOrTag); } catch (IOException e) { logger.error(e.getMessage(), e); } finally { try { iWriter.commit(); } catch (IOException e) { logger.error(e.getMessage(), e); } } }
From source file:org.frontcache.cache.impl.LuceneIndexManager.java
License:Apache License
/** * Removes documents by url or tags/*from w w w . j a va 2 s . c om*/ * @param urlOrTag */ public void deleteAll(String domain) { if (null == domain) { logger.error("Cant delete all with null domain"); return; } IndexWriter iWriter = null; try { iWriter = getIndexWriter(); if (iWriter == null) { return; } } catch (Exception e1) { logger.debug("Error during getting indexWriter. " + e1.getMessage()); return; } try { logger.debug("Removing all documents for {}.", domain); Query domainQuery = new TermQuery(new Term(DOMAIN_FIELD, domain)); long count = iWriter.deleteDocuments(domainQuery); logger.debug("Removed {} documents for {}.", count, domain); } catch (IOException e) { logger.error(e.getMessage(), e); } finally { try { iWriter.commit(); } catch (IOException e) { logger.error(e.getMessage(), e); } } }
From source file:org.geotoolkit.lucene.index.AbstractIndexer.java
License:Open Source License
/** * This method remove index of lucene a document identified by identifier. * * @param identifier//ww w. ja v a 2 s .c o m */ public void removeDocument(final String identifier) { try { final Directory dir = LuceneUtils.getAppropriateDirectory(getFileDirectory()); final Term t = new Term("id", identifier); final TermQuery query = new TermQuery(t); LOGGER.log(logLevel, "Term query:{0}", query); // look for DOC ID for R-Tree removal final NamedEnvelope env = new NamedEnvelope(getTreeCrs(), identifier); final TreeElementMapper<NamedEnvelope> mapper = rTree.getTreeElementMapper(); final int treeID = mapper.getTreeIdentifier(env); if (treeID != -1) { final NamedEnvelope realEnv = mapper.getObjectFromTreeIdentifier(treeID); boolean removed = rTree.remove(realEnv); if (!removed) { LOGGER.log(Level.WARNING, "unable to remove envelope for:{0}", identifier); } else { //remove from mapper mapper.setTreeIdentifier(null, treeID); mapper.flush(); rTree.flush(); } } final IndexWriterConfig config = new IndexWriterConfig(analyzer); final IndexWriter writer = new IndexWriter(dir, config); writer.deleteDocuments(query); LOGGER.log(logLevel, "Metadata: {0} removed from the index", identifier); writer.commit(); writer.close(); } catch (CorruptIndexException ex) { LOGGER.log(Level.WARNING, "CorruptIndexException while indexing document: " + ex.getMessage(), ex); } catch (IOException ex) { LOGGER.log(Level.WARNING, "IOException while indexing document: " + ex.getMessage(), ex); } catch (StoreIndexException ex) { LOGGER.log(Level.WARNING, "StoreIndexException while indexing document: " + ex.getMessage(), ex); } }
From source file:org.getopt.luke.Luke.java
License:Apache License
public void deleteTermDoc(Object fText) { Term t = (Term) getProperty(fText, "term"); if (t == null) return;// w w w .j a va 2s. c om if (ir == null) { showStatus(MSG_NOINDEX); return; } if (readOnly) { showStatus(MSG_READONLY); return; } try { IndexWriter iw = createIndexWriter(); iw.deleteDocuments(t); iw.close(); refreshAfterWrite(); infoMsg("Deleted docs for query '" + t + "'. Term dictionary and statistics will be incorrect until next merge or expunge deletes."); } catch (Exception e) { e.printStackTrace(); errorMsg("Error deleting doc: " + e.toString()); } }
From source file:org.getopt.luke.Luke.java
License:Apache License
public void deleteDocs(Object sTable) { if (ir == null) { showStatus(MSG_NOINDEX);/*from w ww . j a v a 2s .co m*/ return; } if (readOnly) { showStatus(MSG_READONLY); return; } Query q = (Query) getProperty(sTable, "query"); if (q == null) { errorMsg("Empty query."); return; } removeAll(sTable); try { IndexWriter iw = createIndexWriter(); iw.deleteDocuments(q); iw.close(); refreshAfterWrite(); infoMsg("Deleted docs for query '" + q + "'. Term dictionary and statistics will be incorrect until next merge or expunge deletes."); } catch (Throwable e) { e.printStackTrace(); errorMsg("Error deleting documents: " + e.toString()); } }
From source file:org.hibernate.search.backend.impl.lucene.works.ByTermDeleteWorkDelegate.java
License:LGPL
@Override public void performWork(LuceneWork work, IndexWriter writer, IndexingMonitor monitor) { final Class<?> managedType = work.getEntityClass(); DocumentBuilderIndexedEntity builder = workspace.getDocumentBuilder(managedType); Serializable id = work.getId(); log.tracef("Removing %s#%s by id using an IndexWriter.", managedType, id); try {// w w w .ja va 2 s .co m if (isIdNumeric(builder)) { writer.deleteDocuments(NumericFieldUtils.createExactMatchQuery(builder.getIdKeywordName(), id)); } else { Term idTerm = new Term(builder.getIdKeywordName(), work.getIdInString()); writer.deleteDocuments(idTerm); } workspace.notifyWorkApplied(work); } catch (Exception e) { String message = "Unable to remove " + managedType + "#" + id + " from index."; throw new SearchException(message, e); } }
From source file:org.hibernate.search.backend.impl.lucene.works.ByTermUpdateWorkDelegate.java
License:LGPL
@Override public void performWork(LuceneWork work, IndexWriter writer, IndexingMonitor monitor) { final Serializable id = work.getId(); final Class<?> managedType = work.getEntityClass(); DocumentBuilderIndexedEntity builder = workspace.getDocumentBuilder(managedType); try {//from www . j a v a2s . c om if (DeleteWorkDelegate.isIdNumeric(builder)) { log.tracef("Deleting %s#%s by query using an IndexWriter#updateDocument as id is Numeric", managedType, id); writer.deleteDocuments(NumericFieldUtils.createExactMatchQuery(builder.getIdKeywordName(), id)); // no need to log the Add operation as we'll log in the delegate this.addDelegate.performWork(work, writer, monitor); } else { log.tracef("Updating %s#%s by id using an IndexWriter#updateDocument.", managedType, id); Term idTerm = new Term(builder.getIdKeywordName(), work.getIdInString()); Map<String, String> fieldToAnalyzerMap = work.getFieldToAnalyzerMap(); ScopedAnalyzer analyzer = builder.getAnalyzer(); analyzer = AddWorkDelegate.updateAnalyzerMappings(workspace, analyzer, fieldToAnalyzerMap); writer.updateDocument(idTerm, work.getDocument(), analyzer); } workspace.notifyWorkApplied(work); } catch (Exception e) { String message = "Unable to update " + managedType + "#" + id + " in index."; throw new SearchException(message, e); } if (monitor != null) { monitor.documentsAdded(1l); } }
From source file:org.hibernate.search.backend.impl.lucene.works.DeleteByQueryWorkDelegate.java
License:LGPL
@Override public void performWork(LuceneWork work, IndexWriter writer, IndexingMonitor monitor) { DeleteByQueryLuceneWork deleteWork = (DeleteByQueryLuceneWork) work; final Class<?> entityType = work.getEntityClass(); final DeletionQuery query = deleteWork.getDeletionQuery(); if (log.isTraceEnabled()) { log.tracef("Removing all %s matching Query: %s", entityType.toString(), query.toString()); }/* ww w.j a v a2 s . co m*/ BooleanQuery entityDeletionQuery = new BooleanQuery(); { DeleteByQuerySupport.ToLuceneQuery converter = DeleteByQuerySupport .getToLuceneQuery(query.getQueryKey()); ScopedAnalyzer analyzer = this.workspace.getDocumentBuilder(entityType).getAnalyzer(); Query queryToDelete = converter.build(query, analyzer); entityDeletionQuery.add(queryToDelete, BooleanClause.Occur.MUST); } Term classNameQueryTerm = new Term(ProjectionConstants.OBJECT_CLASS, entityType.getName()); TermQuery classNameQuery = new TermQuery(classNameQueryTerm); entityDeletionQuery.add(classNameQuery, BooleanClause.Occur.MUST); try { writer.deleteDocuments(entityDeletionQuery); } catch (IOException e) { SearchException ex = log.unableToDeleteByQuery(entityType, query, e); throw ex; } this.workspace.notifyWorkApplied(work); }
From source file:org.hibernate.search.backend.impl.lucene.works.DeleteExtWorkDelegate.java
License:Open Source License
@Override public void performWork(LuceneWork work, IndexWriter writer) { checkType(work);/*from w w w . jav a 2s . c o m*/ Serializable id = work.getId(); log.tracef("Removing %s#%s by id using an IndexWriter.", managedType, id); try { if (idIsNumeric) { writer.deleteDocuments(NumericFieldUtils.createExactMatchQuery(builder.getIdKeywordName(), id)); } else { Term idTerm = builder.getTerm(id); writer.deleteDocuments(idTerm); } } catch (Exception e) { String message = "Unable to remove " + managedType + "#" + id + " from index."; throw new SearchException(message, e); } }