Changeset 281

Show
Ignore:
Timestamp:
04/26/08 09:04:20 (7 months ago)
Author:
eric.dumin..@gmail.com
Message:

rake index:prune checks for missing files, and removes them from indexes.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/History.txt

    r280 r281  
    44  * added cache highlighting à la Google 
    55  * rake index:update implemented as described in Ferret book by David Balmain 
     6  * rake index:prune removes missing files from indexer. 
    67 
    78== 0.1.6  2008-04-25 
  • trunk/lib/picolena/templates/app/models/indexer.rb

    r280 r281  
    7777      @@index = nil 
    7878    end 
     79     
     80     
     81    # Checks for indexed files that are missing from filesytem 
     82    # and removes them from index & dbm file. 
     83    def prune_index 
     84      missing_files=index_time_dbm_file.reject{|filename,itime| File.exists?(filename)} 
     85      missing_files.each{|filename, itime| 
     86        index.writer.delete(:complete_path, filename) 
     87        index_time_dbm_file.delete(filename) 
     88        log :debug => "Removed : #{filename}" 
     89      } 
     90      index.optimize 
     91    end 
    7992 
    8093    # Only one IndexWriter should be instantiated. 
     
    89102    end 
    90103 
    91     def doc_count 
    92       index.writer.doc_count 
     104    # Returns how many files are indexed. 
     105    def size 
     106      index.size 
    93107    end 
    94108 
  • trunk/lib/picolena/templates/lib/tasks/index.rake

    r263 r281  
    1515    Indexer.index_every_directory 
    1616  end 
     17   
     18  desc 'Remove unneeded files from index' 
     19  task :prune => :environment do 
     20    Indexer.prune_index 
     21  end 
    1722 
    1823  desc 'Returns the number of indexed documents' 
    1924  task :size => :environment do 
    20     puts "#{Indexer.doc_count} documents are currently indexed in #{Picolena::IndexSavePath}" 
     25    puts "#{Indexer.size} documents are currently indexed in #{Picolena::IndexSavePath}" 
    2126  end 
    2227