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