Author: sannegrinovero
Date: 2008-10-21 12:26:57 -0400 (Tue, 21 Oct 2008)
New Revision: 15364
Modified:
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java
Log:
improvements to DeleteWorkDelegate and PurgeAllWorkDelegate
Modified:
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java
===================================================================
---
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java 2008-10-21
16:22:47 UTC (rev 15363)
+++
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java 2008-10-21
16:26:57 UTC (rev 15364)
@@ -38,24 +38,24 @@
}
public IndexInteractionType getIndexInteractionType() {
- return IndexInteractionType.NEEDS_INDEXWRITER;
+ return IndexInteractionType.PREFER_INDEXWRITER;
}
public void performWork(LuceneWork work, IndexWriter writer) {
log.trace( "Removing {}#{} by query.", work.getEntityClass(), work.getId()
);
DocumentBuilder builder = workspace.getDocumentBuilder( work.getEntityClass() );
- BooleanQuery entityDeltionQuery = new BooleanQuery();
+ BooleanQuery entityDeletionQuery = new BooleanQuery();
TermQuery idQueryTerm = new TermQuery( builder.getTerm( work.getId() ) );
- entityDeltionQuery.add(idQueryTerm, BooleanClause.Occur.MUST);
+ entityDeletionQuery.add( idQueryTerm, BooleanClause.Occur.MUST );
- Term classNameQueryTerm = new Term(DocumentBuilder.CLASS_FIELDNAME,
work.getEntityClass().getName());
- TermQuery classNameQuery = new TermQuery( classNameQueryTerm);
- entityDeltionQuery.add(classNameQuery, BooleanClause.Occur.MUST);
+ Term classNameQueryTerm = new Term( DocumentBuilder.CLASS_FIELDNAME,
work.getEntityClass().getName() );
+ TermQuery classNameQuery = new TermQuery( classNameQueryTerm );
+ entityDeletionQuery.add( classNameQuery, BooleanClause.Occur.MUST );
try {
- writer.deleteDocuments( entityDeltionQuery );
+ writer.deleteDocuments( entityDeletionQuery );
}
catch ( Exception e ) {
String message = "Unable to remove " + work.getEntityClass() + "#"
+ work.getId() + " from index.";
Modified:
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java
===================================================================
---
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java 2008-10-21
16:22:47 UTC (rev 15363)
+++
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java 2008-10-21
16:26:57 UTC (rev 15364)
@@ -28,15 +28,22 @@
}
public IndexInteractionType getIndexInteractionType() {
- return IndexInteractionType.NEEDS_INDEXREADER;
+ return IndexInteractionType.PREFER_INDEXREADER;
}
public void performWork(LuceneWork work, IndexWriter writer) {
- throw new UnsupportedOperationException();
+ log.trace( "purgeAll Lucene index using IndexWriter for type: {}",
work.getEntityClass() );
+ try {
+ Term term = new Term( DocumentBuilder.CLASS_FIELDNAME, work.getEntityClass().getName()
);
+ writer.deleteDocuments( term );
+ }
+ catch (Exception e) {
+ throw new SearchException( "Unable to purge all from Lucene index: " +
work.getEntityClass(), e );
+ }
}
public void performWork(LuceneWork work, IndexReader reader) {
- log.trace( "purgeAll Lucene index using IndexReader: {}",
work.getEntityClass() );
+ log.trace( "purgeAll Lucene index using IndexReader for type: {}",
work.getEntityClass() );
try {
Term term = new Term( DocumentBuilder.CLASS_FIELDNAME, work.getEntityClass().getName()
);
reader.deleteDocuments( term );
Show replies by date