Changeset 561
- Timestamp:
- 02/18/05 10:51:22 (4 years ago)
- Files:
-
- trunk/external-tools/indexer-backends/plucene/Midcom/Indexer/XMLComm.pm (modified) (3 diffs)
- trunk/external-tools/indexer-backends/plucene/Midcom/Plucene/DeleteRequest.pm (modified) (4 diffs)
- trunk/external-tools/indexer-backends/plucene/Midcom/Plucene/RequestProcessor.pm (modified) (1 diff)
- trunk/external-tools/indexer-backends/xml-communication-request.dtd (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/external-tools/indexer-backends/plucene/Midcom/Indexer/XMLComm.pm
r531 r561 94 94 95 95 96 # Parsed dem im ersten Argument übergebenen XML-String und populiert die96 # Parsed dem im ersten Argument ᅵbergebenen XML-String und populiert die 97 97 # Requests Liste. 98 98 # … … 138 138 { 139 139 $self->_ParseDelete($node); 140 } 141 elsif ($node->nodeName eq 'deleteall') 142 { 143 $self->_ParseDeleteAll($node); 140 144 } 141 145 elsif ($node->nodeName eq 'auth') … … 226 230 227 231 232 sub _ParseDeleteAll 233 { 234 my ($self, $node) = @_; 235 236 my $request = Midcom::Plucene::DeleteRequest->new($self); 237 238 $request->id($node->getAttribute('id')); 239 $request->deleteAll(1); 240 241 # $request->dump; 242 $request->execute(); 243 } 244 245 228 246 sub _ParseIndex 229 247 { trunk/external-tools/indexer-backends/plucene/Midcom/Plucene/DeleteRequest.pm
r436 r561 31 31 Unless a critical error occures, on data is appended to the XMLReader. 32 32 33 This class can also delete a complete index (if and only if deleteAll has been 34 set to nonzero), in that case it will just recreate the index in place. 35 33 36 =head1 METHODS 34 37 … … 50 53 $self->type('delete'); 51 54 $self->{_documentID} = undef; 55 $self->{_deleteAll} = 0; 52 56 53 57 bless ($self, $class); … … 65 69 } 66 70 71 sub deleteAll 72 { 73 my $self = shift; 74 if (@_) { $self->{_deleteAll} = shift; } 75 return $self->{_deleteAll}; 76 } 77 67 78 68 79 ################# … … 75 86 my $self = shift; 76 87 77 my $term = Plucene::Index::Term->new( 78 { 79 field => '__RI', 80 text => $self->{_documentID} 81 } 82 ); 83 $self->{_processor}->indexReader->delete_term($term); 84 85 # Tag the Writer object, so that it gets loaded from the request 86 # processor. This is will optimize the database after completing 87 # the current batch thus dropping all unused references to the 88 # deleted documents. I hate it. 89 $self->{_processor}->indexWriter(); 88 if ($self->{_deleteAll} == 1) 89 { 90 # Tell the request processor to drop the existing index. 91 $self->{_processor}->DropIndex(); 92 } 93 else 94 { 95 my $term = Plucene::Index::Term->new( 96 { 97 field => '__RI', 98 text => $self->{_documentID} 99 } 100 ); 101 $self->{_processor}->indexReader->delete_term($term); 102 103 # Tag the Writer object, so that it gets loaded from the request 104 # processor. This is will optimize the database after completing 105 # the current batch thus dropping all unused references to the 106 # deleted documents. I hate it. 107 $self->{_processor}->indexWriter(); 108 } 90 109 } 91 110 trunk/external-tools/indexer-backends/plucene/Midcom/Plucene/RequestProcessor.pm
r437 r561 133 133 } 134 134 135 sub DropIndex 136 { 137 my $self = shift; 138 139 # Close all open handels, then recreate the index. 140 # 141 # Note, that this is not really protected against multiple simultaneous accesses. 142 # You should avoid any indexing operation from other processes while dropping the 143 # Index. 144 145 $self->close(); 146 147 $self->{_indexWriter} = Plucene::Index::Writer->new( 148 $self->{_xmlComm}->indexName(), 149 Plucene::Analysis::SimpleAnalyzer->new(), 150 1 151 ); 152 } 153 135 154 136 155 trunk/external-tools/indexer-backends/xml-communication-request.dtd
r430 r561 35 35 <!ATTLIST delete documentid CDATA #REQUIRED> 36 36 37 <!ELEMENT deleteall EMPTY> 38 <!ATTLIST deleteall id CDATA #REQUIRED> 37 39
