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:com.appeligo.lucene.DeleteDocumentsAction.java

License:Apache License

public void performAction(IndexWriter writer) throws IOException {
    writer.deleteDocuments(term);
}

From source file:com.appeligo.lucene.DeleteDocumentsMultiTermAction.java

License:Apache License

public void performAction(IndexWriter writer) throws IOException {
    writer.deleteDocuments(terms);
}

From source file:com.aurel.track.lucene.index.associatedFields.AbstractAssociatedFieldIndexer.java

License:Open Source License

/**
 * Deletes a document by key/*from  w  ww  .  j  a  v  a2 s  .  co m*/
 * @param objectID
 */
@Override
public void deleteByKey(Integer objectID) {
    if (!ClusterBL.indexInstantly()) {
        LOGGER.debug("Index instantly is false by deleting the " + getLuceneFieldName() + " with entryID "
                + objectID);
        return;
    }
    if (objectID != null) {
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Deleting the " + getLuceneFieldName() + " document by Term " + getObjectIDFieldName()
                    + "=" + objectID.toString() + " from " + LuceneUtil.getDirectoryString(getIndexWriterID()));
        }
        IndexWriter indexWriter = LuceneIndexer.getIndexWriter(getIndexWriterID());
        if (indexWriter == null) {
            LOGGER.error("IndexWriter null by deleting by key");
            return;
        }
        Term keyTerm = new Term(getObjectIDFieldName(), objectID.toString());
        try {
            indexWriter.deleteDocuments(keyTerm);
        } catch (IOException e) {
            LOGGER.error("Deleting the " + getLuceneFieldName() + " with ID " + objectID + " failed with "
                    + e.getMessage());
            LOGGER.debug(ExceptionUtils.getStackTrace(e));
        }
        try {
            indexWriter.commit();
        } catch (IOException e) {
            LOGGER.error("Flushing the indexWriter after removing a " + getLuceneFieldName() + " with ID "
                    + objectID + "  failed with " + e.getMessage());
            LOGGER.debug(ExceptionUtils.getStackTrace(e));
        }
    }
}

From source file:com.aurel.track.lucene.index.associatedFields.AbstractAssociatedFieldIndexer.java

License:Open Source License

/**
 * Removes the indexes for a list of workItems
 * @param workItemIDs/*from   www .  ja  va2s. com*/
 */
@Override
public void deleteByWorkItems(List<Integer> workItemIDs) {
    IndexWriter indexWriter = null;
    try {
        if (!LuceneUtil.isUseLucene() || workItemIDs == null || workItemIDs.isEmpty()) {
            return;
        }
        indexWriter = LuceneIndexer.getIndexWriter(getIndexWriterID());
        if (indexWriter == null) {
            LOGGER.error("IndexWriter null in deleting by workItems");
            return;
        }
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Deleting " + getLuceneFieldName() + " documents for " + workItemIDs.size()
                    + " issues from " + LuceneUtil.getDirectoryString(getIndexWriterID()));
        }
        for (Integer workItemID : workItemIDs) {
            String workItemFieldName = getWorkItemFieldName();
            Term keyTerm = new Term(workItemFieldName, workItemID.toString());
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Deleting the " + getLuceneFieldName() + " document by Term " + workItemFieldName
                        + "=" + workItemID.toString());
            }
            try {
                indexWriter.deleteDocuments(keyTerm);
            } catch (IOException e) {
                LOGGER.error("Removing by workItemID " + workItemID + " failed with " + e.getMessage());
                LOGGER.debug(ExceptionUtils.getStackTrace(e));
            }
            String additionalWorkitemField = getAdditionalFieldName();
            if (additionalWorkitemField != null) {
                keyTerm = new Term(additionalWorkitemField, workItemID.toString());
                if (LOGGER.isDebugEnabled()) {
                    LOGGER.debug("Deleting the " + getLuceneFieldName() + " document by Term "
                            + additionalWorkitemField + "=" + workItemID.toString());
                }
                try {
                    indexWriter.deleteDocuments(keyTerm);
                } catch (IOException e) {
                    LOGGER.error("Removing by workItemID " + workItemID + " failed with " + e.getMessage());
                    LOGGER.debug(ExceptionUtils.getStackTrace(e));
                }
            }
        }
    } catch (Exception ex) {
        LOGGER.error("deleteListFromIndex failed with " + ex.getMessage());
    }
    try {
        indexWriter.commit();
    } catch (IOException e) {
        LOGGER.error("Flushing the indexWriter after removing a list of workItemBeans  failed with "
                + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
}

From source file:com.aurel.track.lucene.index.associatedFields.AttachmentIndexer.java

License:Open Source License

/**
 * Adds an attachment to the attachment index
 * Used by attaching a new file to the workItem
 * @param attachFile/*from  w  w w. ja  v  a2s.co  m*/
 */
@Override
public void addToIndex(Object object, boolean add) {
    if (!LuceneUtil.isUseLucene() || !LuceneUtil.isIndexAttachments() || object == null) {
        return;
    }
    if (!ClusterBL.indexInstantly()) {
        LOGGER.debug("Index instantly is false");
        return;
    }
    IndexWriter indexWriter = LuceneIndexer.getIndexWriter(getIndexWriterID());
    if (indexWriter == null) {
        LOGGER.error("IndexWriter null by adding an attachment");
        return;
    }
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Save a new " + add + " attachment into attachmentIndex");
    }
    TAttachmentBean attachmentBean = (TAttachmentBean) object;
    if (!add) {
        Integer objectID = attachmentBean.getObjectID();
        if (objectID != null) {
            Term keyTerm = new Term(getObjectIDFieldName(), objectID.toString());
            try {
                indexWriter.deleteDocuments(keyTerm);
                indexWriter.commit();
            } catch (IOException e) {
                LOGGER.error("Removing the attachment " + objectID + " failed with " + e.getMessage());
                LOGGER.debug(ExceptionUtils.getStackTrace(e));
            }
        }
    }
    try {
        Document doc = createDocument(attachmentBean);
        if (doc != null) {
            indexWriter.addDocument(doc);
        }
    } catch (IOException e) {
        LOGGER.error("Adding an attachment to the index failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
    try {
        indexWriter.commit();
    } catch (IOException e) {
        LOGGER.error("Flushing the attachment failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
}

From source file:com.aurel.track.lucene.index.associatedFields.BudgetPlanIndexer.java

License:Open Source License

/**
 * Adds an attachment to the attachment index
 * Used by attaching a new file to the workItem 
 * @param attachFile//  w w  w .ja v a2  s . co  m
 */
@Override
public void addToIndex(Object object, boolean add) {
    if (!LuceneUtil.isUseLucene()) {
        return;
    }
    if (!ClusterBL.indexInstantly()) {
        LOGGER.debug("Index instantly is false");
        return;
    }
    IndexWriter indexWriter = LuceneIndexer.getIndexWriter(getIndexWriterID());
    if (indexWriter == null) {
        LOGGER.error("IndexWriter null by adding a budget/plan");
        return;
    }
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Save a new " + add + " " + getLuceneFieldName());
    }
    TBudgetBean budgetBean = (TBudgetBean) object;
    if (!add) {
        Integer objectID = budgetBean.getObjectID();
        if (objectID != null) {
            Term keyTerm = new Term(getObjectIDFieldName(), objectID.toString());
            try {
                indexWriter.deleteDocuments(keyTerm);
                indexWriter.commit();
            } catch (IOException e) {
                LOGGER.error("Removing the entity " + objectID + " failed with " + e.getMessage());
                LOGGER.debug(ExceptionUtils.getStackTrace(e));
            }
        }
    }
    try {
        Document doc = createDocument(budgetBean);
        if (doc != null) {
            indexWriter.addDocument(doc);
        }
    } catch (IOException e) {
        LOGGER.error("Adding a budget/plan to the index failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
    try {
        indexWriter.commit();
    } catch (IOException e) {
        LOGGER.error("Flushing the budget/plan failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
}

From source file:com.aurel.track.lucene.index.associatedFields.ExpenseIndexer.java

License:Open Source License

/**
 * Adds an attachment to the attachment index
 * Used by attaching a new file to the workItem 
 * @param attachFile//from   w  ww  .j a v a2 s  .c om
 */
@Override
public void addToIndex(Object object, boolean add) {
    if (!LuceneUtil.isUseLucene()) {
        return;
    }
    if (!ClusterBL.indexInstantly()) {
        LOGGER.debug("Index instantly is false");
        return;
    }
    IndexWriter indexWriter = LuceneIndexer.getIndexWriter(getIndexWriterID());
    if (indexWriter == null) {
        LOGGER.error("IndexWriter null by adding an expense");
        return;
    }
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Save a new " + add + " " + getLuceneFieldName());
    }
    TCostBean costBean = (TCostBean) object;
    if (!add) {
        Integer objectID = costBean.getObjectID();
        if (objectID != null) {
            Term keyTerm = new Term(getObjectIDFieldName(), objectID.toString());
            try {
                indexWriter.deleteDocuments(keyTerm);
                indexWriter.commit();
            } catch (IOException e) {
                LOGGER.error("Removing the entity " + objectID + " failed with " + e.getMessage());
                LOGGER.debug(ExceptionUtils.getStackTrace(e));
            }
        }
    }
    try {
        Document doc = createDocument(costBean);
        if (doc != null) {
            indexWriter.addDocument(doc);
        }
    } catch (IOException e) {
        LOGGER.error("Adding an expense to the index failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
    try {
        indexWriter.commit();
    } catch (IOException e) {
        LOGGER.error("Flushing the expense failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
}

From source file:com.aurel.track.lucene.index.associatedFields.LinkIndexer.java

License:Open Source License

/**
 * Adds an attachment to the attachment index
 * Used by attaching a new file to the workItem 
 * @param attachFile/*from ww w  . j a  v  a  2s  .  c om*/
 */
@Override
public void addToIndex(Object object, boolean add) {
    if (!LuceneUtil.isUseLucene()) {
        return;
    }
    if (!ClusterBL.indexInstantly()) {
        LOGGER.debug("Index instantly is false");
        return;
    }
    IndexWriter indexWriter = LuceneIndexer.getIndexWriter(getIndexWriterID());
    if (indexWriter == null) {
        LOGGER.error("IndexWriter null by adding a link");
        return;
    }
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Save a new " + add + " " + getLuceneFieldName());
    }
    TWorkItemLinkBean workItemLinkBean = (TWorkItemLinkBean) object;
    if (!add) {
        Integer objectID = workItemLinkBean.getObjectID();
        if (objectID != null) {
            Term keyTerm = new Term(getObjectIDFieldName(), objectID.toString());
            try {
                indexWriter.deleteDocuments(keyTerm);
                indexWriter.commit();
            } catch (IOException e) {
                LOGGER.error("Removing the entity " + objectID + " failed with " + e.getMessage());
                LOGGER.debug(ExceptionUtils.getStackTrace(e));
            }
        }
    }
    try {
        Document doc = createDocument(workItemLinkBean);
        if (doc != null) {
            indexWriter.addDocument(doc);
        }
    } catch (IOException e) {
        LOGGER.error("Adding an link to the index failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
    try {
        indexWriter.commit();
    } catch (IOException e) {
        LOGGER.error("Flushing the link failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
}

From source file:com.aurel.track.lucene.index.listFields.AbstractListFieldIndexer.java

License:Open Source License

/**
 * Deletes a document by key/* w  ww  . j av a 2 s .co m*/
 * @param objectID
 */
public synchronized void deleteByKeyAndType(Integer objectID, int type) {
    if (!ClusterBL.indexInstantly()) {
        LOGGER.debug("Index instantly is false by deleting the entry " + objectID + " from list " + type);
        return;
    }
    if (objectID != null) {
        IndexWriter indexWriter = LuceneIndexer.getIndexWriter(getIndexWriterID());
        if (indexWriter == null) {
            LOGGER.error("IndexWriter null by deleting a list option by key");
            return;
        }
        String combinedKeyFieldName = getCombinedKeyFieldName();
        String combinedKeyFieldValue = LuceneUtil.getCombinedKeyValue(objectID.toString(),
                String.valueOf(type));
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Deleting the " + getListFieldType() + " document by Term " + combinedKeyFieldName
                    + "=" + combinedKeyFieldValue + " from "
                    + LuceneUtil.getDirectoryString(getIndexWriterID()));
        }
        Term keyTerm = new Term(combinedKeyFieldName, combinedKeyFieldValue);
        try {
            indexWriter.deleteDocuments(keyTerm);
        } catch (IOException e) {
            LOGGER.error("Removing the list option " + objectID + " type " + type + " failed with "
                    + e.getMessage());
            LOGGER.debug(ExceptionUtils.getStackTrace(e));
        }
        try {
            indexWriter.commit();
        } catch (IOException e) {
            LOGGER.error("Flushing list option removal for list option " + objectID + " type " + type
                    + " failed with " + e.getMessage());
            LOGGER.debug(ExceptionUtils.getStackTrace(e));
        }
    }
}

From source file:com.aurel.track.lucene.index.LuceneIndexer.java

License:Open Source License

/**
 * Adds a TWorkItem to the workitem index
 * Used by creating a new and by updating (delete old and create new) of an existing workItem
 * Although workItemBean contains no history bean it is not needed
 * because by creating only an "emtpy" state change history is created.
 * However it contains the custom attribute values.
 * @param workItemBean//from w  w  w  .j  a v  a  2  s  .c  o m
 */
public static synchronized void addToWorkItemIndex(TWorkItemBean workItemBean, boolean deleteExisting) {
    if (!LuceneUtil.isUseLucene()) {
        return;
    }
    if (!ClusterBL.indexInstantly()) {
        LOGGER.debug("Index instantly is false");
        return;
    }
    if (workItemBean == null || workItemBean.getObjectID() == null) {
        LOGGER.error("TWorkItemBean or ObjectID null by adding/updating a workitem");
        return;
    }
    IndexWriter indexWriter = getWorkItemIndexWriter();
    if (indexWriter == null) {
        LOGGER.error("IndexWriter null by adding a workitem");
        return;
    }
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Save a new " + !deleteExisting + " workItem into workItemIndex");
    }
    if (deleteExisting) {
        String workItemID = workItemBean.getObjectID().toString();
        Term term = new Term(LuceneUtil.getFieldName(SystemFields.ISSUENO), workItemID);
        try {
            indexWriter.deleteDocuments(term);
            indexWriter.commit();
        } catch (IOException e) {
            LOGGER.error(
                    "Removing a workItembean " + workItemID + " from the index failed with " + e.getMessage());
            LOGGER.debug(ExceptionUtils.getStackTrace(e));
        }
    }

    List<Integer> workItemIDsList = new ArrayList<Integer>();
    workItemIDsList.add(workItemBean.getObjectID());
    Map<Integer, StringBuffer> workItemsCommentsMap = HistoryLoaderBL.getByWorkItemsLongTextField(
            workItemIDsList, SystemFields.INTEGER_COMMENT, HistoryLoaderBL.LONG_TEXT_TYPE.ISPLAIN);
    String actualComment = workItemBean.getComment();
    String actualCommentPlain = "";
    try {
        actualCommentPlain = Html2Text.getNewInstance().convert(actualComment);
    } catch (Exception e) {
        LOGGER.warn("Transforming the actual comment to plain text failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
        actualCommentPlain = workItemBean.getComment();
    }
    workItemBean
            .setComment(getComments(workItemsCommentsMap.get(workItemBean.getObjectID()), actualCommentPlain));
    Document doc = createWorkItemDocument(workItemBean);
    //set the original comment back because the workItem will be used by other parts (e-mail notification, etc.)
    workItemBean.setComment(actualComment);
    if (doc != null) {
        try {
            indexWriter.addDocument(doc);
        } catch (IOException e) {
            LOGGER.error("Adding a workItemBean " + workItemBean.getObjectID() + " to the index failed with "
                    + e.getMessage());
            LOGGER.debug(ExceptionUtils.getStackTrace(e));
        }
    }
    try {
        indexWriter.commit();
    } catch (IOException e) {
        LOGGER.error("Flushing the workItemBean failed with " + e.getMessage());
        LOGGER.debug(ExceptionUtils.getStackTrace(e));
    }
}