You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by an...@apache.org on 2014/12/23 02:39:34 UTC
svn commit: r1647465 - in /lucene/dev/branches/branch_5x: ./ solr/
solr/core/ solr/core/src/test/org/apache/solr/cloud/ solr/solrj/
solr/solrj/src/java/org/apache/solr/client/solrj/request/
Author: anshum
Date: Tue Dec 23 01:39:33 2014
New Revision: 1647465
URL: http://svn.apache.org/r1647465
Log:
SOLR-6881: Add split.key support for SPLITSHARD via SolrJ (merge from trunk)
Added:
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTests.java
- copied unchanged from r1647462, lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CollectionsAPISolrJTests.java
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/solr/ (props changed)
lucene/dev/branches/branch_5x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_5x/solr/core/ (props changed)
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
lucene/dev/branches/branch_5x/solr/solrj/ (props changed)
lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
Modified: lucene/dev/branches/branch_5x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/CHANGES.txt?rev=1647465&r1=1647464&r2=1647465&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/solr/CHANGES.txt Tue Dec 23 01:39:33 2014
@@ -486,6 +486,8 @@ Other Changes
* SOLR-6523: Provide SolrJ support for specifying stateFormat while creating Collections.
(Anshum Gupta)
+* SOLR-6881: Add split.key support for SPLITSHARD via SolrJ (Anshum Gupta)
+
================== 4.10.3 ==================
Bug Fixes
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java?rev=1647465&r1=1647464&r2=1647465&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java Tue Dec 23 01:39:33 2014
@@ -199,7 +199,6 @@ public class CollectionsAPIDistributedZk
@Override
public void doTest() throws Exception {
- testSolrJAPICalls();
testPropertyParamsForCreate();
testNodesUsedByCreate();
testCollectionsAPI();
@@ -299,152 +298,6 @@ public class CollectionsAPIDistributedZk
}
- private void testSolrJAPICalls() throws Exception {
- SolrServer server = createNewSolrServer("", getBaseUrl((HttpSolrServer) clients.get(0)));
- CollectionAdminResponse response;
- Map<String, NamedList<Integer>> coresStatus;
- Map<String, NamedList<Integer>> nodesStatus;
-
- CollectionAdminRequest.Create createCollectionRequest = new CollectionAdminRequest.Create();
- createCollectionRequest.setCollectionName("solrj_collection");
- createCollectionRequest.setNumShards(2);
- createCollectionRequest.setReplicationFactor(2);
- createCollectionRequest.setConfigName("conf1");
- createCollectionRequest.setRouterField("myOwnField");
- response = createCollectionRequest.process(server);
-
- assertEquals(0, response.getStatus());
- assertTrue(response.isSuccess());
- coresStatus = response.getCollectionCoresStatus();
- assertEquals(4, coresStatus.size());
- for (int i=0; i<4; i++) {
- NamedList<Integer> status = coresStatus.get("solrj_collection_shard" + (i/2+1) + "_replica" + (i%2+1));
- assertEquals(0, (int)status.get("status"));
- assertTrue(status.get("QTime") > 0);
- }
-
- // TODO: This test tries to validates defaulting to implicit router.
- createCollectionRequest = new CollectionAdminRequest.Create();
- createCollectionRequest.setCollectionName("solrj_implicit");
- createCollectionRequest.setShards("shardA,shardB");
- createCollectionRequest.setConfigName("conf1");
- createCollectionRequest.setRouterName("implicit");
- response = createCollectionRequest.process(server);
-
- assertEquals(0, response.getStatus());
- assertTrue(response.isSuccess());
- coresStatus = response.getCollectionCoresStatus();
- assertEquals(2, coresStatus.size());
-
- // Test Creating a collection with new stateformat.
- String collectionName = "solrj_newstateformat";
- createCollectionRequest = new CollectionAdminRequest.Create();
- createCollectionRequest.setCollectionName(collectionName);
- createCollectionRequest.setNumShards(2);
- createCollectionRequest.setConfigName("conf1");
- createCollectionRequest.setStateFormat(2);
-
- response = createCollectionRequest.process(server);
- assertEquals(0, response.getStatus());
- assertTrue(response.isSuccess());
-
- waitForRecoveriesToFinish(collectionName, false);
- assertTrue("Collection state does not exist",
- cloudClient.getZkStateReader().getZkClient()
- .exists(ZkStateReader.getCollectionPath(collectionName), true));
-
- CollectionAdminRequest.CreateShard createShardRequest = new CollectionAdminRequest
- .CreateShard();
- createShardRequest.setCollectionName("solrj_implicit");
- createShardRequest.setShardName("shardC");
- response = createShardRequest.process(server);
-
- assertEquals(0, response.getStatus());
- assertTrue(response.isSuccess());
- coresStatus = response.getCollectionCoresStatus();
- assertEquals(1, coresStatus.size());
- assertEquals(0, (int) coresStatus.get("solrj_implicit_shardC_replica1").get("status"));
-
- CollectionAdminRequest.DeleteShard deleteShardRequest = new CollectionAdminRequest
- .DeleteShard();
- deleteShardRequest.setCollectionName("solrj_implicit");
- deleteShardRequest.setShardName("shardC");
- response = deleteShardRequest.process(server);
-
- assertEquals(0, response.getStatus());
- assertTrue(response.isSuccess());
- nodesStatus = response.getCollectionNodesStatus();
- assertEquals(1, nodesStatus.size());
-
- CollectionAdminRequest.Delete deleteCollectionRequest = new CollectionAdminRequest.Delete();
- deleteCollectionRequest.setCollectionName("solrj_implicit");
- response = deleteCollectionRequest.process(server);
-
- assertEquals(0, response.getStatus());
- assertTrue(response.isSuccess());
- nodesStatus = response.getCollectionNodesStatus();
- assertEquals(2, nodesStatus.size());
-
- createCollectionRequest = new CollectionAdminRequest.Create();
- createCollectionRequest.setCollectionName("conf1");
- createCollectionRequest.setNumShards(4);
- createCollectionRequest.setConfigName("conf1");
- response = createCollectionRequest.process(server);
-
- assertEquals(0, response.getStatus());
- assertTrue(response.isSuccess());
-
- CollectionAdminRequest.Reload reloadCollectionRequest = new CollectionAdminRequest.Reload();
- reloadCollectionRequest.setCollectionName("conf1");
- response = reloadCollectionRequest.process(server);
-
- assertEquals(0, response.getStatus());
-
- CollectionAdminRequest.CreateAlias createAliasRequest = new CollectionAdminRequest
- .CreateAlias();
- createAliasRequest.setCollectionName("solrj_alias");
- createAliasRequest.setAliasedCollections("conf1,solrj_collection");
- response = createAliasRequest.process(server);
-
- assertEquals(0, response.getStatus());
-
- CollectionAdminRequest.DeleteAlias deleteAliasRequest = new CollectionAdminRequest.DeleteAlias();
- deleteAliasRequest.setCollectionName("solrj_alias");
- deleteAliasRequest.process(server);
-
- assertEquals(0, response.getStatus());
-
- CollectionAdminRequest.SplitShard splitShardRequest = new CollectionAdminRequest.SplitShard();
- splitShardRequest.setCollectionName("conf1");
- splitShardRequest.setShardName("shard1");
- response = splitShardRequest.process(server);
-
- assertEquals(0, response.getStatus());
- assertTrue(response.isSuccess());
- coresStatus = response.getCollectionCoresStatus();
- assertEquals(0, (int) coresStatus.get("conf1_shard1_0_replica1").get("status"));
- assertEquals(0, (int) coresStatus.get("conf1_shard1_1_replica1").get("status"));
-
- deleteCollectionRequest = new CollectionAdminRequest.Delete();
- deleteCollectionRequest.setCollectionName("conf1");
- response = deleteCollectionRequest.process(server);
-
- assertEquals(0, response.getStatus());
- nodesStatus = response.getCollectionNodesStatus();
- assertTrue(response.isSuccess());
- assertEquals(4, nodesStatus.size());
-
- deleteCollectionRequest = new CollectionAdminRequest.Delete();
- deleteCollectionRequest.setCollectionName("solrj_collection");
- deleteCollectionRequest.process(server);
-
- assertEquals(0, response.getStatus());
- nodesStatus = response.getCollectionNodesStatus();
- assertTrue(response.isSuccess());
- assertEquals(4, nodesStatus.size());
- }
-
-
private void deletePartiallyCreatedCollection() throws Exception {
final String baseUrl = getBaseUrl((HttpSolrServer) clients.get(0));
String collectionName = "halfdeletedcollection";
Modified: lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java?rev=1647465&r1=1647464&r2=1647465&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java Tue Dec 23 01:39:33 2014
@@ -229,12 +229,21 @@ public class CollectionAdminRequest exte
//a split shard collection request
public static class SplitShard extends CollectionShardAdminRequest {
protected String ranges;
+ protected String splitKey;
private Properties properties;
public void setRanges(String ranges) { this.ranges = ranges; }
public String getRanges() { return ranges; }
+ public void setSplitKey(String splitKey) {
+ this.splitKey = splitKey;
+ }
+
+ public String getSplitKey() {
+ return this.splitKey;
+ }
+
public Properties getProperties() {
return properties;
}
@@ -252,6 +261,9 @@ public class CollectionAdminRequest exte
ModifiableSolrParams params = getCommonParams();
params.set( "ranges", ranges);
+ if(splitKey != null)
+ params.set("split.key", this.splitKey);
+
if(properties != null) {
addProperties(params, properties);
}