나는 jruby와 solrj와 함께 기본적인 작업을하고있다. solr에 대한 의존성의 톤이 있고 모든 solr 구성 요소에 필요한 jar를 정확하게 계산할 시간이 없습니다. 따라서 다음 클래스는 기본 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("*:*")