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 Apache Wiki <wi...@apache.org> on 2006/07/14 21:22:07 UTC

[Solr Wiki] Update of "SolRuby" by BrianLucas

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Solr Wiki" for change notification.

The following page has been changed by BrianLucas:
http://wiki.apache.org/solr/SolRuby

------------------------------------------------------------------------------
  
  Bindings for integration into Rails: (not finished)
  
+ 
+ Erik Hatcher posted the following message on the Solr mailing list for ideas.
+ 
+ 
+ My current code has not been distilled into a clean API, but it's usable.  It all boils down to this:
+ 
+    def post_to_solr(body, mode = :search)
+      post = Net::HTTP::Post.new(mode == :search ? "/solr/select" : "/
+ solr/update")
+      post.body = body
+      post.content_type = 'application/x-www-form-urlencoded'
+      response = Net::HTTP.start(@url.host, @url.port) do |http|
+        http.request(post)
+      end
+      response_dom = Document.new(response.body)
+    end
+ 
+ though using REXML's Document is likely to be pulled out to something more optimal for Ruby ingesting, such as YAML.
+ 
+ This sits in a Solr class and has utility methods like this:
+ 
+    def optimize
+      post_to_solr('<optimize waitFlush="false" waitSearcher="false"/  >', :update)
+    end
+ 
+ So I can use IRB (via Rails slick script/console) and do this:
+ 
+ 	solr = Solr.new
+ 	results = solr.search([{:field => "year", :value => "1865"}], 0, 20)
+ 
+ I'm tinkering around with various custom request handlers, custom parameters, and faceted results so nothing has settled down into a stable way to do things just yet, so I haven't felt the generalization falling into place yet.  I sincerely hope someone Solr/ Lucene/Java and Ruby savvier than I will eventually step up and build a super slick Solr Ruby DSL :)  But it needs to be more flexible than just the standard request handler to be of use to me, so it's more complex than meets the eye.
+ 
+ 	Erik
+