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.