Changeset 288
- Timestamp:
- 02/20/08 04:50:22 (9 months ago)
- Location:
- trunk/thrudex/src
- Files:
-
- 2 modified
-
CLuceneIndex.cpp (modified) (7 diffs)
-
CLuceneIndex.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/thrudex/src/CLuceneIndex.cpp
r286 r288 48 48 bool new_index; 49 49 50 random_seed = (size_t)filter_space*rand(); 51 50 52 try { 51 53 … … 72 74 //build up bloom filter 73 75 74 disk_bloom = shared_ptr<bloom_filter>(new bloom_filter(filter_space,1.0/(1.0 * filter_space), ((int) filter_space*rand())));76 disk_bloom = shared_ptr<bloom_filter>(new bloom_filter(filter_space,1.0/(1.0 * filter_space), random_seed)); 75 77 76 78 if(!new_index){ … … 100 102 ram_directory->__cl_addref(); //trick clucene's lame ref counters 101 103 102 ram_bloom = shared_ptr<bloom_filter> (new bloom_filter(filter_space,1.0/(1.0 * filter_space), ((int) filter_space*rand())));104 ram_bloom = shared_ptr<bloom_filter> (new bloom_filter(filter_space,1.0/(1.0 * filter_space), random_seed)); 103 105 ram_searcher = shared_ptr<IndexSearcher>(new IndexSearcher(ram_directory.get())); 104 106 … … 223 225 shared_ptr<set<string> > l_disk_deletes = disk_deletes; 224 226 227 225 228 //Since we don't want to write to disk 226 229 //We'll simply track the docs to remove on next merge 227 230 if( l_disk_bloom->contains( key )){ 231 LOG4CXX_INFO(logger, "Removed "+key); 228 232 l_disk_deletes->insert( key ); 233 last_modified = Util::currentTime(); 229 234 } 230 235 … … 430 435 431 436 //create new handles 432 ram_directory = shared_ptr<CLuceneRAMDirectory>(new CLuceneRAMDirectory());437 ram_directory.reset(new CLuceneRAMDirectory()); 433 438 ram_directory->__cl_addref(); //trick clucene's lame ref counters 434 439 435 ram_bloom = shared_ptr<bloom_filter> (new bloom_filter(filter_space,1.0/(1.0 * filter_space), ((int) filter_space*rand())));436 modifier = shared_ptr<IndexModifier>(new IndexModifier(ram_directory.get(),analyzer.get(),true));440 ram_bloom.reset(new bloom_filter(filter_space,1.0/(1.0 * filter_space), random_seed)); 441 modifier.reset(new IndexModifier(ram_directory.get(),analyzer.get(),true)); 437 442 438 443 ram_prev_prev_directory = ram_prev_directory; 439 444 ram_prev_directory = l_ram_directory; 440 445 441 disk_deletes = shared_ptr<set<string> >(new set<string>());446 disk_deletes.reset(new set<string>()); 442 447 } 443 448 … … 456 461 457 462 disk_reader->deleteDocuments(t); 463 464 LOG4CXX_DEBUG(logger,"Deleted"+(*it)); 458 465 459 466 delete t; … … 476 483 disk_writer->close(); 477 484 485 //Merge in the ram bloom 486 *l_disk_bloom.get() |= *l_ram_bloom.get(); 487 488 478 489 LOG4CXX_DEBUG(logger,"Merged"); 479 490 } 480 //Search new index (big perf hit so get it over now) 491 //Search new index (big perf hit so get it over now) 492 481 493 shared_ptr<IndexSearcher> l_disk_searcher(new IndexSearcher(idx_path.c_str())); 482 494 wstring q = wstring(DOC_KEY)+wstring(L":1234"); -
trunk/thrudex/src/CLuceneIndex.h
r270 r288 92 92 93 93 boost::shared_ptr<bloom_filter> ram_bloom; 94 95 std::size_t random_seed; 94 96 }; 95 97
