Project

General

Profile

« Previous | Next » 

Revision 46709

integrated changes from dnet40: added support for create multiple shards for the same collection on the same solr server

View differences:

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