lib/isomorfeus/data/document_accelerator.rb in isomorfeus-data-2.0.22 vs lib/isomorfeus/data/document_accelerator.rb in isomorfeus-data-2.1.0

- old
+ new

@@ -3,29 +3,29 @@ class DocumentAccelerator def self.finalize(fer_acc) proc { fer_acc.close_index } end - attr_reader :doc_class, :doc_class_name, :doc_class_name_u + attr_reader :doc_class, :doc_class_name attr_accessor :index def initialize(doc_class, &block) @doc_class = doc_class @doc_class_name = doc_class.name - @doc_class_name_u = @doc_class_name.underscore if block_given? res = block.call(self) @index = res unless @index else + @index_path = File.expand_path(File.join(Isomorfeus.data_documents_path, @doc_class_name.underscore)) open_index end ObjectSpace.define_finalizer(self, self.class.finalize(self)) end def destroy_index close_index - FileUtils.rm_rf(index_path(doc_class_name)) + FileUtils.rm_rf(@index_path) end def close_index @index.close end @@ -64,17 +64,13 @@ escaped_key = key.gsub(/([\\\&\:\(\)\[\]\{\}\!\"\~\^\|\<\>\=\*\?\+\-\s])/, '\\\\\1') top_docs = @index.search("key:\"#{escaped_key}\"", limit: 1) id = top_docs.hits[0].doc if top_docs.total_hits == 1 end - def index_path - File.expand_path(File.join(Isomorfeus.data_documents_path, @doc_class_name_u)) - end - def open_index FileUtils.mkdir_p(Isomorfeus.data_documents_path) unless Dir.exist?(Isomorfeus.data_documents_path) field_infos = Isomorfeus::Ferret::Index::FieldInfos.new(store: :yes, index: :yes, term_vector: :with_positions_offsets) - @index = Isomorfeus::Ferret::Index::Index.new(path: index_path, key: :key, auto_flush: true, lock_retry_time: 5, field_infos: field_infos) + @index = Isomorfeus::Ferret::Index::Index.new(path: @index_path, key: :key, auto_flush: true, lock_retry_time: 5, field_infos: field_infos) @index.field_infos.add_field(:key, store: :yes, index: :yes, term_vector: :no) unless @index.field_infos[:key] @doc_class.field_options.each do |field, options| @index.field_infos.add_field(field, options) unless @index.field_infos[field] end end