List of usage examples for org.apache.lucene.index IndexWriter deleteDocuments
public long deleteDocuments(Query... queries) throws IOException
From source file:org.ramadda.repository.search.SearchManager.java
License:Apache License
/** * _more_// w w w .j a v a 2s .c o m * * @param ids _more_ */ public synchronized void entriesDeleted(List<String> ids) { if (!isLuceneEnabled()) { return; } try { IndexWriter writer = getLuceneWriter(); for (String id : ids) { writer.deleteDocuments(new Term(FIELD_ENTRYID, id)); } writer.close(); } catch (Exception exc) { logError("Error deleting entries from Lucene index", exc); } }
From source file:org.remus.marketplace.indexing.impl.IndexServiceImpl.java
License:Open Source License
@Override public void addToIndex(Node node) { try {//from ww w. ja v a 2 s.co m Map<Integer, String> listOfCat = new HashMap<Integer, String>(); Set<Category> categories = node.getCategories(); for (Category category : categories) { if (!listOfCat.containsKey(category.getId())) { listOfCat.put(category.getId(), category.getMarket().getId()); } } IndexWriter indexWriter = new IndexWriter(getDirectory(), new SimpleAnalyzer(), MaxFieldLength.UNLIMITED); Set<Integer> keySet = listOfCat.keySet(); indexWriter.deleteDocuments(new Term(Node.ID, String.valueOf(node.getId()))); for (Integer integer : keySet) { final Document document = new Document(); Field unitField = new Field(Node.ID, String.valueOf(node.getId()), Field.Store.YES, Field.Index.NOT_ANALYZED); document.add(unitField); Field titleField = new Field(Node.NAME, node.getName(), Field.Store.YES, Field.Index.ANALYZED); document.add(titleField); titleField.setBoost(2.0f); Field shortDescriptionField = new Field(Node.SHORTDESCRIPTION, node.getShortdescription(), Field.Store.YES, Field.Index.ANALYZED); document.add(shortDescriptionField); shortDescriptionField.setBoost(1.5f); Field bodyField = new Field(Node.BODY, node.getBody(), Field.Store.YES, Field.Index.ANALYZED); bodyField.setBoost(1.0f); document.add(bodyField); Field categoryField = new Field("category", String.valueOf(integer), Field.Store.YES, Field.Index.NOT_ANALYZED); document.add(categoryField); Field marketField = new Field("market", listOfCat.get(integer), Field.Store.YES, Field.Index.NOT_ANALYZED); document.add(marketField); indexWriter.addDocument(document); } indexWriter.commit(); indexWriter.optimize(); indexWriter.close(); } catch (Exception e) { throw new RuntimeException(e); } }
From source file:org.remus.marketplace.indexing.impl.IndexServiceImpl.java
License:Open Source License
@Override public void removeFromIndex(Node node) { final Term term = new Term(Node.ID, String.valueOf(node.getId())); try {/* w ww.j a v a 2 s . c o m*/ IndexWriter indexWriter = new IndexWriter(getDirectory(), new SimpleAnalyzer(), MaxFieldLength.UNLIMITED); indexWriter.deleteDocuments(term); indexWriter.commit(); indexWriter.optimize(); indexWriter.close(); } catch (Exception e) { throw new RuntimeException(e); } }
From source file:org.segrada.search.lucene.LuceneSearchEngine.java
License:Apache License
@Override public synchronized void remove(String id) { try {/*from w w w .j a va 2 s. c o m*/ // init index writer config IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_47, this.analyzer); // create new index writer IndexWriter iWriter = new IndexWriter(directory, indexWriterConfig); PhraseQuery query = new PhraseQuery(); query.add(new Term("id", id)); iWriter.deleteDocuments(query); iWriter.close(); } catch (Exception e) { logger.warn("Error while deleting document " + id, e); } }
From source file:org.silverpeas.core.index.indexing.model.IndexManager.java
License:Open Source License
private void removeIndexEntry(IndexWriter writer, IndexEntryKey indexEntry) { Term term = new Term(KEY, indexEntry.toString()); try {//from ww w. j a v a2 s . co m // removing document according to indexEntryPK writer.deleteDocuments(term); } catch (IOException e) { SilverLogger.getLogger(this).error("Index deletion failure: " + indexEntry.toString(), e); } }
From source file:org.silverpeas.core.index.indexing.model.IndexManager.java
License:Open Source License
private void removeIndexEntries(IndexWriter writer, String scope) { Term term = new Term(SCOPE, scope); try {//from w w w . j av a 2s . c o m // removing documents according to SCOPE term writer.deleteDocuments(term); } catch (IOException e) { SilverLogger.getLogger(this).error("Index deletion failure for scope : " + scope, e); } }
From source file:org.silverpeas.search.indexEngine.model.IndexManager.java
License:Open Source License
private void removeIndexEntry(IndexWriter writer, IndexEntryPK indexEntry) { Term term = new Term(KEY, indexEntry.toString()); try {//from w w w .j a va 2s . c o m // removing document according to indexEntryPK writer.deleteDocuments(term); // closing associated index searcher and removing it from cache IndexReadersCache.removeIndexReader(getIndexDirectoryPath(indexEntry)); } catch (IOException e) { SilverTrace.error("indexEngine", "IndexManager", "indexEngine.MSG_REMOVE_REQUEST_FAILED", indexEntry.toString(), e); } SilverTrace.debug("indexEngine", "IndexManager", "indexEngine.INFO_REMOVE_REQUEST_SUCCEED", indexEntry.toString()); }
From source file:org.sonatype.nexus.index.context.DefaultIndexingContext.java
License:Open Source License
public void merge(Directory directory, DocumentFilter filter) throws IOException { synchronized (indexLock) { closeReaders();/*ww w.j a v a 2 s . com*/ IndexWriter w = getIndexWriter(); IndexSearcher s = getIndexSearcher(); IndexReader r = IndexReader.open(directory); try { int numDocs = r.maxDoc(); for (int i = 0; i < numDocs; i++) { if (r.isDeleted(i)) { continue; } Document d = r.document(i); if (filter != null && !filter.accept(d)) { continue; } String uinfo = d.get(ArtifactInfo.UINFO); if (uinfo != null) { Hits hits = s.search(new TermQuery(new Term(ArtifactInfo.UINFO, uinfo))); if (hits.length() == 0) { w.addDocument(IndexUtils.updateDocument(d, this, false)); } } else { String deleted = d.get(ArtifactInfo.DELETED); if (deleted != null) { // Deleting the document loses history that it was delete, // so incrementals wont work. Therefore, put the delete // document in as well w.deleteDocuments(new Term(ArtifactInfo.UINFO, deleted)); w.addDocument(d); } } } } finally { r.close(); closeReaders(); } rebuildGroups(); Date mergedTimestamp = IndexUtils.getTimestamp(directory); if (getTimestamp() != null && mergedTimestamp != null && mergedTimestamp.after(getTimestamp())) { // we have both, keep the newest updateTimestamp(true, mergedTimestamp); } else { updateTimestamp(true); } optimize(); } }
From source file:org.sonatype.nexus.index.DefaultIndexerEngine.java
License:Open Source License
public void remove(IndexingContext context, ArtifactContext ac) throws IOException { if (ac != null) { String uinfo = ac.getArtifactInfo().getUinfo(); // add artifact deletion marker Document doc = new Document(); doc.add(new Field(ArtifactInfo.DELETED, uinfo, Field.Store.YES, Field.Index.NO)); doc.add(new Field(ArtifactInfo.LAST_MODIFIED, // Long.toString(System.currentTimeMillis()), Field.Store.YES, Field.Index.NO)); IndexWriter w = context.getIndexWriter(); w.addDocument(doc);/*from ww w.j a v a2 s . c o m*/ w.deleteDocuments(new Term(ArtifactInfo.UINFO, uinfo)); w.flush(); context.updateTimestamp(); } }
From source file:org.sonatype.nexus.index.NexusScanningListener.java
License:Open Source License
private IndexOp remove(final ArtifactContext ac) throws IOException { if (ac != null) { final String uinfo = ac.getArtifactInfo().getUinfo(); // add artifact deletion marker final Document doc = new Document(); doc.add(new Field(ArtifactInfo.DELETED, uinfo, Field.Store.YES, Field.Index.NO)); doc.add(new Field(ArtifactInfo.LAST_MODIFIED, // Long.toString(System.currentTimeMillis()), Field.Store.YES, Field.Index.NO)); IndexWriter w = context.getIndexWriter(); w.addDocument(doc);/* w w w .j a v a 2 s . c om*/ w.deleteDocuments(new Term(ArtifactInfo.UINFO, uinfo)); return IndexOp.DELETED; } return IndexOp.NOOP; }