Skip to content

Latest commit

 

History

History
51 lines (38 loc) · 1.92 KB

README.rdoc

File metadata and controls

51 lines (38 loc) · 1.92 KB

rsolr-direct

rsolr-direct enhances the RSolr core library by adding the ability to connect to Solr directly, using JRuby, sans http. Hotdog!

How

Check out the specs to see the various connection methods.

Solr Java libs/jars

You’ll need to make sure you have the proper jars loaded. Use RSolr::Direct #load_java_libs for this if you’d like:

require 'rsolr-direct'
RSolr::Direct.load_java_libs "path/to/solr/distribution"
# create connection etc..

The path/to/solr/distribution should be a directory containing “lib” and “dist” – a typical solr download will do.

:solr_home

require 'rsolr-direct'
connection = RSolr.direct_connect(
  :solr_home => '/absolute/path/to/solr/home',
  :data_dir => "/optional/path/to/data/dir")

Java::OrgApacheSolrCore::SolrCore

require 'rsolr-direct'
core = org.apache.solr.core.SolrCore.new(nil, solr_data_path, solr_config, index_schema, dcore)
connection = RSolr.direct_connect core

Java::OrgApacheSolrServlet::DirectSolrConnection

require 'rsolr-direct'
dc = org.apache.solr.servlet.DirectSolrConnection.new(solr_home_path, solr_data_path, solr_log_path)
connection = RSolr.direct_connect dc

Why

Using a direct connection to Solr can speed up indexing. How much faster? This document says ~ 50% => wiki.apache.org/solr/SolrPerformanceFactors#Embedded_vs_HTTP_Post

Testing

Clone it, cd into the project dir and run:

jruby -S rake spec
  • note, rspec 1.3 is required.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2010 Matt Mitchell. See LICENSE for details.