diff --git a/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/class_methods.rb b/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/class_methods.rb index 54e8edc..4e15252 100644 --- a/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/class_methods.rb +++ b/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/class_methods.rb @@ -273,7 +273,8 @@ module ActsAsSolr #:nodoc: end if items_processed > 0 - solr_optimize + # FIXME: not recommended, reenable with option + #solr_optimize time_elapsed = Time.now - start_time logger.info "Index for #{self.name} has been rebuilt (took #{'%.3f' % time_elapsed}s)" else diff --git a/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/instance_methods.rb b/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/instance_methods.rb index d04855c..e1adeb2 100644 --- a/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/instance_methods.rb +++ b/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/instance_methods.rb @@ -40,7 +40,7 @@ module ActsAsSolr #:nodoc: doc.boost = validate_boost(configuration[:boost]) if configuration[:boost] doc << {:id => solr_id, - solr_configuration[:type_field] => Solr::Util.query_parser_escape(self.class.name), + solr_configuration[:type_field] => self.class.name, solr_configuration[:primary_key_field] => record_id(self).to_s} # iterate through the fields and add them to the document, diff --git a/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/parser_methods.rb b/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/parser_methods.rb index 3514c84..aeac654 100644 --- a/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/parser_methods.rb +++ b/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/parser_methods.rb @@ -127,7 +127,7 @@ module ActsAsSolr #:nodoc: classes = [self] + (self.subclasses || []) + (options[:models] || []) classes.map do |klass| next if klass.name.empty? - "#{solr_configuration[:type_field]}:\"#{Solr::Util.query_parser_escape klass.name}\"" + "#{solr_configuration[:type_field]}:\"#{klass.name}\"" end.compact.join(' OR ') end diff --git a/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/solr/util.rb b/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/solr/util.rb index 0bbeb6b..b4f46d9 100755 --- a/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/solr/util.rb +++ b/plugins/solr/vendor/plugins/acts_as_solr_reloaded/lib/solr/util.rb @@ -27,11 +27,12 @@ class Solr::Util # from http://lucene.apache.org/core/old_versioned_docs/versions/3_0_0/queryparsersyntax.html#Escaping Special Characters ESCAPES = %w[+ - && || ! ( ) { } \[ \] " ~ * ? \\] - + def self.query_parser_escape(string, fields = []) - string = string.split(' ').map do |str| + string = string.split(' ').map do |str| if /(\w+):(.*)/ =~ str # escape : considering fields - (!$2.empty? and fields.include?($1.to_sym)) ? "#{$1}:#{$2}" : "#{$1}\\:#{$2}" + field, value = $1, $2 + if field.present? and fields.include?(field.to_sym) then "#{field}:#{value}" else "#{field}\\:#{value.gsub ':', "\\:"}" end elsif /^\^(.*)/ =~ str # escape ^ "\\^#{$1}" else -- libgit2 0.21.2