Revision 46709
Added by Claudio Atzori about 7 years ago
RemoteSolrAdministrator.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.functionality.index.utils; |
2 | 2 |
|
3 | 3 |
import java.io.IOException; |
4 |
import java.util.HashMap; |
|
5 | 4 |
import java.util.Map; |
6 | 5 |
|
6 |
import com.google.common.collect.Maps; |
|
7 |
import com.google.gson.JsonElement; |
|
8 |
import com.google.gson.JsonObject; |
|
9 |
import com.google.gson.JsonParser; |
|
10 |
import eu.dnetlib.data.provision.index.rmi.IndexServiceException; |
|
11 |
import eu.dnetlib.functionality.index.model.Any.ValueType; |
|
7 | 12 |
import org.apache.commons.logging.Log; |
8 | 13 |
import org.apache.commons.logging.LogFactory; |
9 | 14 |
import org.apache.http.HttpResponse; |
... | ... | |
22 | 27 |
import org.apache.zookeeper.data.Stat; |
23 | 28 |
import org.springframework.beans.factory.annotation.Required; |
24 | 29 |
|
25 |
import com.google.common.collect.Maps; |
|
26 |
import com.google.gson.JsonElement; |
|
27 |
import com.google.gson.JsonObject; |
|
28 |
import com.google.gson.JsonParser; |
|
29 |
|
|
30 |
import eu.dnetlib.data.provision.index.rmi.IndexServiceException; |
|
31 |
import eu.dnetlib.functionality.index.model.Any.ValueType; |
|
32 |
|
|
33 | 30 |
public class RemoteSolrAdministrator { |
34 | 31 |
|
35 | 32 |
/** |
... | ... | |
38 | 35 |
private static final Log log = LogFactory.getLog(RemoteSolrAdministrator.class); |
39 | 36 |
|
40 | 37 |
/** The create url request. */ |
41 |
private static String createURLRequest = "http://%s:%s/solr/admin/collections?action=CREATE&name=%s&numShards=%s&replicationFactor=%s&collection.configName=%s"; |
|
38 |
private static String createURLRequest = "http://%s:%s/solr/admin/collections?action=CREATE&name=%s&numShards=%s&replicationFactor=%s&maxShardsPerNode=%s&collection.configName=%s";
|
|
42 | 39 |
|
43 | 40 |
/** The create url request. */ |
44 | 41 |
private static String reloadURLRequest = "http://%s:%s/solr/admin/collections?action=RELOAD&name=%s"; |
... | ... | |
49 | 46 |
protected Map<String, Map<String, ValueType>> cachedSchema; |
50 | 47 |
|
51 | 48 |
public RemoteSolrAdministrator() { |
52 |
this.cachedSchema = new HashMap<String, Map<String, ValueType>>();
|
|
49 |
this.cachedSchema = Maps.newHashMap();
|
|
53 | 50 |
} |
54 | 51 |
|
55 | 52 |
public boolean createSolrIndex(final String host, |
... | ... | |
57 | 54 |
final String collectionName, |
58 | 55 |
final String numShard, |
59 | 56 |
final String replicationFactor, |
60 |
final String collectionConfigName) throws IndexServiceException { |
|
57 |
final String maxShardsPerNode, |
|
58 |
final String collectionConfigName) throws IndexServiceException { |
|
61 | 59 |
|
62 |
final String uri = generateCreateIndexRequest(host, port, collectionName, numShard, replicationFactor, collectionConfigName); |
|
60 |
final String uri = generateCreateIndexRequest(host, port, collectionName, numShard, replicationFactor, maxShardsPerNode, collectionConfigName);
|
|
63 | 61 |
log.info(uri); |
64 | 62 |
HttpGet request = new HttpGet(uri); |
65 | 63 |
HttpResponse response; |
... | ... | |
156 | 154 |
final String collectionName, |
157 | 155 |
final String numShard, |
158 | 156 |
final String replicationFactor, |
159 |
final String collectionConfigName) { |
|
160 |
return String.format(createURLRequest, host, port, collectionName, numShard, replicationFactor, collectionConfigName); |
|
157 |
final String collectionConfigName, |
|
158 |
final String maxShardsPerNode) { |
|
159 |
return String.format(createURLRequest, host, port, collectionName, numShard, replicationFactor, maxShardsPerNode, collectionConfigName); |
|
161 | 160 |
} |
162 | 161 |
|
163 | 162 |
private String generateUpdateIndexRequest(final String host, final String port, final String collectionName) { |
Also available in: Unified diff
integrated changes from dnet40: added support for create multiple shards for the same collection on the same solr server