Thank you guys for the reply.
So what I want to do is to modify Solr a bit - add one servlet so I can
trigger a full index of a folder in the file system.
What I did:
un-jar solr.war;
Create a web app and copy the un-jar the solr files to this app;
Create my servlet;
Repackage the web app to a war and deploy;
by following the suggestions of you guys;
I create a "EmbeddedSolrServer" in my Servlet:
public void init() throws ServletException {
CoreContainer.Initializer initializer = new
CoreContainer.Initializer();
CoreContainer coreContainer = null;
try {
coreContainer = initializer.initialize();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
_solrServer = new EmbeddedSolrServer(coreContainer, "");
}
And I can now trigger the index by call:
http://localhost:8080/testservlet01. The servlet does this:
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField( "id", "id1", 1.0f );
doc1.addField( "name", "doc1", 1.0f );
Collection<SolrInputDocument> docs = new
ArrayList<SolrInputDocument>();
docs.add( doc1 );
try {
_solrServer.add( docs );
_solrServer.commit();
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
However, seems the search didn't return unless I restart my application:
localhost:8080/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on
I guess there are two SolrServer instances(one is EmbeddedSolrServer,
created by myself and the other is come with Solr itself and they are
holding different index?
How can I make them synchronized?
--
View this message in context:
http://lucene.472066.n3.nabble.com/How-to-get-SolrServer-within-my-own-servlet-tp3583304p3583741.html
Sent from the Solr - User mailing list archive at Nabble.com.