You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Zaytsev Sergey (JIRA)" <ji...@apache.org> on 2014/08/12 16:31:12 UTC
[jira] [Commented] (SOLR-3920) CloudSolrServer doesn't allow to
index multiple collections with one instance of server
[ https://issues.apache.org/jira/browse/SOLR-3920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14094096#comment-14094096 ]
Zaytsev Sergey commented on SOLR-3920:
--------------------------------------
Is there a way to do the same with REST method call running SolrCloud? In other words, to pass a collection_name into a URL for update, in a way like this:
http://localhost:8983/solr/MyCollectionName/update? bla-bla-bla.....
Thank you very much!
> CloudSolrServer doesn't allow to index multiple collections with one instance of server
> ---------------------------------------------------------------------------------------
>
> Key: SOLR-3920
> URL: https://issues.apache.org/jira/browse/SOLR-3920
> Project: Solr
> Issue Type: Bug
> Components: SolrCloud
> Affects Versions: 4.0-BETA
> Reporter: Grzegorz Sobczyk
> Assignee: Mark Miller
> Labels: 4.0.1_Candidate
> Fix For: 4.1, 5.0
>
> Attachments: SOLR-3920.patch
>
>
> With one instance of CloudSolrServer I can't add documents to multiple collections, for example:
> {code}
> @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);
> }
> }
> {code}
> Second update goes to first collection.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org