On Jan 9, 2009, at 8:12 PM, qp19 wrote:
Please bear with me. I am new to Solr. I have searched all the
existing posts
about this and could not find an answer. I wanted to know how do I
go about
creating a
SolrServer using EmbeddedSolrServer. I tried to initialize this
several ways
but was unsuccesful. I do not have multi-core. I am using solrj 1.3. I
attempted to use the
depracated methods as mentioned in the SolrJ documentation the
following way
but it fails as well with unable to locate Core.
SolrCore core = SolrCore.getSolrCore();
This function is deprecated and *really* should no be used --
especially for embedded solr server. (the only chance you would have
for it to work is if you start up solr in a web app before calling this)
SolrServer server = new EmbeddedSolrServer( core );
Core initialization is kind of a mess, but this contains everything
you would need:
CoreContainer container = new CoreContainer(new
SolrResourceLoader(SolrResourceLoader.locateInstanceDir()));
CoreDescriptor dcore = new CoreDescriptor(container, coreName,
solrConfig.getResourceLoader().getInstanceDir());
dcore.setConfigName(solrConfig.getResourceName());
dcore.setSchemaName(indexSchema.getResourceName());
SolrCore core = new SolrCore( null, dataDirectory, solrConfig,
indexSchema, dcore);
container.register(coreName, core, false);
So far my installation is pretty basic with Solr running on Tomcat
as per
instructions in the wiki. My solr home is outside of webapps folder
i.e
"c:/tomcat-solr/solr". I am
able to connect using CommonsHttpSolrServer("http://localhost:8080/solr
")
without a problem. The question in a nutshell is, how do I instantiate
EmbeddedSolrServer using new EmbeddedSolrServer(CoreContainer
coreContainer, String coreName) ? Initializing CoreContainer appears
to be
complicated when compared to SolrCore.getSolrCore() as per the
examples. Is
there a simpler way to Initialize CoreContainer? Is a core(or
CoreName)
necessary eventhough I don't use multi-core? Also, is it possible to
initialize EmbeddedSolrServer using spring? Thanks in advance for
the help.
yes, I use this:
<bean id="multiCore" class="org.apache.solr.core.CoreContainer">
<constructor-arg><value>${dir}</value></constructor-arg>
<constructor-arg><value>${dconfigFile}</value></constructor-arg>
</bean>
<bean id="solrFlat"
class="org.apache.solr.client.solrj.embedded.EmbeddedSolrServer">
<constructor-arg ref="multiCore" />
<constructor-arg value="flat" />
</bean>
<bean id="solrSuggest"
class="org.apache.solr.client.solrj.embedded.EmbeddedSolrServer">
<constructor-arg ref="multiCore" />
<constructor-arg value="suggest" />
</bean>
ryan