You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by eh...@apache.org on 2007/03/26 16:33:09 UTC

svn commit: r522527 - in /lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare: context.rb controller_extensions.rb

Author: ehatcher
Date: Mon Mar 26 07:33:08 2007
New Revision: 522527

URL: http://svn.apache.org/viewvc?view=rev&rev=522527
Log:
Add support for dismax query

Modified:
    lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/context.rb
    lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/controller_extensions.rb

Modified: lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/context.rb
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/context.rb?view=diff&rev=522527&r1=522526&r2=522527
==============================================================================
--- lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/context.rb (original)
+++ lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/context.rb Mon Mar 26 07:33:08 2007
@@ -25,7 +25,7 @@
     @index_info = @connection.send(Solr::Request::IndexInfo.new)
 
     excluded =  @solr_config[:facets_exclude] ? @solr_config[:facets_exclude].collect {|e| e.to_s} : []
-    @facet_fields =  @index_info.field_names.find_all {|v| v =~ /_facet$/} - excluded
+    @facet_fields =  @index_info.field_names.find_all {|v| v =~ /_facet$/} - excluded  # TODO: is facets_excluded working?  where are the tests?!  :)
 
     @text_fields = @index_info.field_names.find_all {|v| v =~ /_text$/}
     
@@ -63,15 +63,27 @@
 
     qa = applied_facet_queries.collect {|map| q = @facet_queries[map[:name]][:real_query]; map[:negative] ? "-(#{q})" : q}
     qa << build_boolean_query(@queries)
-    request = Solr::Request::Standard.new(:query => qa.join(" AND "),
-                                          :filter_queries => filter_queries(@filters),
-                                          :start => start,
-                                          :rows => max,
-                                          :facets => {
-                                            :fields => @facet_fields, :limit => 20 , :mincount => 1, :sort => :count,
-                                            :queries => facet_queries
-                                          },
-                                          :highlighting => {:field_list => @text_fields})
+    
+    query_type = @solr_config[:solr_query_type] || :dismax
+    query_config = @solr_config["#{query_type.to_s}_query_params".to_sym] || {}
+    solr_params = query_config.merge(:query => qa.join(" AND "),
+                                     :filter_queries => filter_queries(@filters),
+                                     :start => start,
+                                     :rows => max,
+                                     :facets => {
+                                       :fields => @facet_fields, :limit => 20 , :mincount => 1, :sort => :count,
+                                       :queries => facet_queries
+                                     },
+                                     :highlighting => {:field_list => @text_fields})
+    if query_type == :dismax
+      solr_params[:phrase_fields] ||= @text_fields
+      if solr_params[:query] == "*:*"
+        solr_params[:query] = ""
+      end
+      request = Solr::Request::Dismax.new(solr_params)  # TODO rename to DisMax
+    else
+      request = Solr::Request::Standard.new(solr_params)
+    end
 
     #TODO: call response.field_facets(??) - maybe field_facets should be return a higher level? 
 #    logger.info({:query => query, :filter_queries => filters}.inspect)

Modified: lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/controller_extensions.rb
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/controller_extensions.rb?view=diff&rev=522527&r1=522526&r2=522527
==============================================================================
--- lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/controller_extensions.rb (original)
+++ lucene/solr/trunk/client/ruby/flare/vendor/plugins/flare/lib/flare/controller_extensions.rb Mon Mar 26 07:33:08 2007
@@ -109,7 +109,7 @@
       end
 
       def clear
-        @flare.clear
+        session[:flare_context] = nil
         redirect_to :action => 'index'
       end