Я получил это в зачаточном состоянии с jruby и solrj.Существует множество зависимостей для solr, и у меня не было времени, чтобы выяснить, какие именно jar требуются для всех компонентов solr.Поэтому следующий класс выполняет загрузку по умолчанию для solr и lucene, требуя все jar-файлы ... не очень эффективно.
Скачать Lucene 4.1, Solr 4.1, commons-fileupload-1.2.2.jar и jackson-4.0.6-jar-with-dependencies.jar .Последний предназначен только для класса com.google.common.cache.CacheBuilder.Я не мог найти это в другом месте.
Поместите их в каталог solr-jars.Сохраните следующее в файле .rb и запустите его с jruby.
require 'java'
module Solr
class SolrServer
include_package 'org.apache.solr.core'
include_package 'org.apache.solr.client.solrj'
include_package 'org.apache.solr.client.solrj.embedded'
include_package 'org.apache.lucene'
def initialize(jarpath, solr_home, core)
Dir["#{jarpath}/**/*.jar"].each { |f| puts f; require f;}
java.lang.System.setProperty('solr.solr.home',solr_home)
initializer = CoreContainer::Initializer.new
coreContainer = initializer.initialize__method()
@server = EmbeddedSolrServer.new(coreContainer,core)
end
def query(q)
solr_query = SolrQuery.new
solr_query.setQuery q
puts @server.query(solr_query)
end
end
end
solr = Solr::SolrServer.new('solr-jars','solr-jars/solr-4.1.0/example/solr','collection1')
solr.query("*:*")