Example usage for org.apache.lucene.index IndexWriter deleteDocuments

List of usage examples for org.apache.lucene.index IndexWriter deleteDocuments

Introduction

In this page you can find the example usage for org.apache.lucene.index IndexWriter deleteDocuments.

Prototype

public long deleteDocuments(Query... queries) throws IOException 

Source Link

Document

Deletes the document(s) matching any of the provided queries.

Usage

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;
}