[hibernate-commits] Hibernate SVN: r15364 - search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Tue Oct 21 12:26:57 EDT 2008
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 );
More information about the hibernate-commits
mailing list