Author: ehatcher
Date: Tue Aug 21 18:05:55 2007
New Revision: 568347

URL: http://svn.apache.org/viewvc?rev=568347&view=rev
Log:
Add highlighter fragment size and more like this support to Standard request

Modified:
    lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/request/standard.rb
    lucene/solr/trunk/client/ruby/solr-ruby/test/unit/standard_request_test.rb

Modified: lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/request/standard.rb
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/request/standard.rb?rev=568347&r1=568346&r2=568347&view=diff
==============================================================================
--- lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/request/standard.rb 
(original)
+++ lucene/solr/trunk/client/ruby/solr-ruby/lib/solr/request/standard.rb Tue 
Aug 21 18:05:55 2007
@@ -13,7 +13,7 @@
 class Solr::Request::Standard < Solr::Request::Select
 
   VALID_PARAMS = [:query, :sort, :default_field, :operator, :start, :rows,
-    :filter_queries, :field_list, :debug_query, :explain_other, :facets, 
:highlighting]
+    :filter_queries, :field_list, :debug_query, :explain_other, :facets, 
:highlighting, :mlt]
   
   def initialize(params)
     super('standard')
@@ -98,8 +98,21 @@
       hash["hl.requireFieldMatch"] = 
@params[:highlighting][:require_field_match]
       hash["hl.simple.pre"] = @params[:highlighting][:prefix]
       hash["hl.simple.post"] = @params[:highlighting][:suffix]
+      hash["hl.fragsize"] = @params[:highlighting][:fragment_size]
     end
     
+    if @params[:mlt]
+      hash[:mlt] = true
+      hash["mlt.count"] = @params[:mlt][:count]
+      hash["mlt.fl"] = @params[:mlt][:field_list]
+      hash["mlt.mintf"] = @params[:mlt][:min_term_freq]
+      hash["mlt.mindf"] = @params[:mlt][:min_doc_freq]
+      hash["mlt.minwl"] = @params[:mlt][:min_word_length]
+      hash["mlt.maxwl"] = @params[:mlt][:max_word_length]
+      hash["mlt.maxqt"] = @params[:mlt][:max_query_terms]
+      hash["mlt.maxntp"] = @params[:mlt][:max_tokens_parsed]
+      hash["mlt.boost"] = @params[:mlt][:boost]
+    end
     
     hash.merge(super.to_hash)
   end

Modified: 
lucene/solr/trunk/client/ruby/solr-ruby/test/unit/standard_request_test.rb
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/client/ruby/solr-ruby/test/unit/standard_request_test.rb?rev=568347&r1=568346&r2=568347&view=diff
==============================================================================
--- lucene/solr/trunk/client/ruby/solr-ruby/test/unit/standard_request_test.rb 
(original)
+++ lucene/solr/trunk/client/ruby/solr-ruby/test/unit/standard_request_test.rb 
Tue Aug 21 18:05:55 2007
@@ -104,7 +104,8 @@
         :max_snippets => 3,
         :require_field_match => true,
         :prefix => "<blink>",
-        :suffix => "</blink>"
+        :suffix => "</blink>",
+        :fragment_size => 300
       }
     )
     
@@ -114,6 +115,31 @@
     assert_equal true, hash["hl.requireFieldMatch"]
     assert_equal "<blink>", hash["hl.simple.pre"]
     assert_equal "</blink>", hash["hl.simple.post"]
+    assert_equal 300, hash["hl.fragsize"]
+  end
+  
+  def test_mlt
+    request = Solr::Request::Standard.new(:query => 'query',
+      :mlt => {
+        :count => 5, :field_list => ['field1', 'field2'],
+        :min_term_freq => 3, :min_doc_freq => 10,
+        :min_word_length => 4, :max_word_length => 17,
+        :max_query_terms => 20, :max_tokens_parsed => 100,
+        :boost => true
+      }
+    )
+    
+    hash = request.to_hash
+    assert_equal true, hash[:mlt]
+    assert_equal 5, hash["mlt.count"]
+    assert_equal ['field1', 'field2'], hash["mlt.fl"]
+    assert_equal 3, hash["mlt.mintf"]
+    assert_equal 10, hash["mlt.mindf"]
+    assert_equal 4, hash["mlt.minwl"]
+    assert_equal 17, hash["mlt.maxwl"]
+    assert_equal 20, hash["mlt.maxqt"]
+    assert_equal 100, hash["mlt.maxntp"]
+    assert_equal true, hash["mlt.boost"]
   end
 
 end


Reply via email to