From af6235af6d4a43103a690f7fc226eb6b72eee969 Mon Sep 17 00:00:00 2001 From: Braulio Bhavamitra Date: Tue, 22 May 2012 17:23:51 +0000 Subject: [PATCH] Update fixes from acts_as_solr_reloaded --- vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/parser_methods.rb | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/parser_methods.rb b/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/parser_methods.rb index b0036a4..0602332 100644 --- a/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/parser_methods.rb +++ b/vendor/plugins/acts_as_solr_reloaded/lib/acts_as_solr/parser_methods.rb @@ -16,14 +16,23 @@ module ActsAsSolr #:nodoc: begin Deprecation.validate_query(options) - if options[:alternate_query] - query = query.blank? ? '*:*' : sanitize_query(query) - query = "#{options[:alternate_query]} #{query}" + query_options[:filter_queries] ||= [] + options[:alternate_query] ||= '' + options[:alternate_query].strip! + query.strip! + + # using *:* disable index boosts, so use the type filter + if query.blank? + query = solr_type_condition(options) else - query = query.blank? ? '*:*' : sanitize_query(query) + query = sanitize_query(query) + query_options[:filter_queries] = [solr_type_condition(options)] + + # put types on filtered fields + query = replace_types([*query], ':').first end - query = replace_types([*query], ':').first # put types on filtered fields + query = "#{options[:alternate_query]} #{query}" unless options[:alternate_query].blank? query = add_relevance query, options[:relevance] query_options[:query] = query @@ -37,7 +46,6 @@ module ActsAsSolr #:nodoc: query_options[:operator] = options[:operator] - query_options[:filter_queries] = [solr_type_condition(options)] query_options[:filter_queries] += replace_types([*options[:filter_queries]], '') if options[:filter_queries] query_options[:boost_functions] = replace_types([*options[:boost_functions]], '').join(' ') if options[:boost_functions] -- libgit2 0.21.2