# File lib/sup/ferret_index.rb, line 29
  def load_index dir=File.join(@dir, "ferret")
    if File.exists? dir
      debug "loading index..."
      @index_mutex.synchronize do
        @index = Ferret::Index::Index.new(:path => dir, :analyzer => @analyzer, :id_field => 'message_id')
        debug "loaded index of #{@index.size} messages"
      end
    else
      debug "creating index..."
      @index_mutex.synchronize do
        field_infos = Ferret::Index::FieldInfos.new :store => :yes
        field_infos.add_field :message_id, :index => :untokenized
        field_infos.add_field :source_id
        field_infos.add_field :source_info
        field_infos.add_field :date, :index => :untokenized
        field_infos.add_field :body
        field_infos.add_field :label
        field_infos.add_field :attachments
        field_infos.add_field :subject
        field_infos.add_field :from
        field_infos.add_field :to
        field_infos.add_field :refs
        field_infos.add_field :snippet, :index => :no, :term_vector => :no
        field_infos.create_index dir
        @index = Ferret::Index::Index.new(:path => dir, :analyzer => @analyzer, :id_field => 'message_id')
      end
    end
  end