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.

Reply via email to