Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-3920

CloudSolrServer doesn't allow to index multiple collections with one instance of server

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.0-BETA
    • Fix Version/s: 4.1, 6.0
    • Component/s: SolrCloud
    • Labels:

      Description

      With one instance of CloudSolrServer I can't add documents to multiple collections, for example:

      @Test
      public void shouldSendToSecondCore() throws Exception {
      	//given
      	try {
      		CloudSolrServer server = new CloudSolrServer("localhost:9983");
      		UpdateRequest commit1 = new UpdateRequest();
      		commit1.setAction(ACTION.COMMIT, true, true);
      		commit1.setParam("collection", "collection1");
      		//this commit is bug's cause
      		commit1.process(server);
      		
      		SolrInputDocument doc = new SolrInputDocument();
      		doc.addField("id", "id");
      		doc.addField("name", "name");
      		
      		UpdateRequest update2 = new UpdateRequest();
      		update2.setParam("collection", "collection2");
      		update2.add(doc);
      		update2.process(server);
      		
      		UpdateRequest commit2 = new UpdateRequest();
      		commit2.setAction(ACTION.COMMIT, true, true);
      		commit2.setParam("collection", "collection2");
      		commit2.process(server);
      
      		SolrQuery q1 = new SolrQuery("id:id");
      		q1.set("collection", "collection1");
      		SolrQuery q2 = new SolrQuery("id:id");
      		q2.set("collection", "collection2");
      		
      		//when
      		QueryResponse resp1 = server.query(q1);
      		QueryResponse resp2 = server.query(q2);
      		
      		//then
      		Assert.assertEquals(0L, resp1.getResults().getNumFound());
      		Assert.assertEquals(1L, resp2.getResults().getNumFound());
      	} finally {
      		CloudSolrServer server1 = new CloudSolrServer("localhost:9983");
      		server1.setDefaultCollection("collection1");
      		server1.deleteByQuery("id:id");
      		server1.commit(true, true);
      		
      		CloudSolrServer server2 = new CloudSolrServer("localhost:9983");
      		server2.setDefaultCollection("collection2");
      		server2.deleteByQuery("id:id");
      		server2.commit(true, true);
      	}
      }
      

      Second update goes to first collection.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                markrmiller@gmail.com Mark Miller
                Reporter:
                gsobczyk Grzegorz Sobczyk
              • Votes:
                1 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: