diff --git a/defaults/yacy.init b/defaults/yacy.init index d65f3de28..c22a8d353 100644 --- a/defaults/yacy.init +++ b/defaults/yacy.init @@ -1095,6 +1095,7 @@ federated.service.solr.indexing.url = http://127.0.0.1:8983/solr federated.service.solr.indexing.sharding = MODULO_HOST_MD5 # the lazy attribute causes that fields containing "" or 0 are not added and not written federated.service.solr.indexing.lazy = true +federated.service.solr.indexing.timeout = 10000 # temporary definition of backend services to use. # After the migration a rwi+solr combination is used, the solr contains the content of the previously used metadata-db. diff --git a/htroot/IndexFederated_p.java b/htroot/IndexFederated_p.java index 673c54d07..16a2583d9 100644 --- a/htroot/IndexFederated_p.java +++ b/htroot/IndexFederated_p.java @@ -127,9 +127,11 @@ public class IndexFederated_p { if (solrRemoteWasOn) sb.index.fulltext().disconnectRemoteSolr(); // switch on final boolean usesolr = sb.getConfigBool(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_ENABLED, false) & solrurls.length() > 0; + final int solrtimeout = sb.getConfigInt(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_TIMEOUT, 10000); + try { if (usesolr) { - ArrayList instances = RemoteInstance.getShardInstances(solrurls, null, null, 10000); + ArrayList instances = RemoteInstance.getShardInstances(solrurls, null, null, solrtimeout); sb.index.fulltext().connectRemoteSolr(instances); } else { sb.index.fulltext().disconnectRemoteSolr(); diff --git a/source/net/yacy/peers/Protocol.java b/source/net/yacy/peers/Protocol.java index 9d0c1d477..c659a30c8 100644 --- a/source/net/yacy/peers/Protocol.java +++ b/source/net/yacy/peers/Protocol.java @@ -1045,7 +1045,8 @@ public final class Protocol { } else { try { String address = target == event.peers.mySeed() ? "localhost:" + target.getPort() : target.getPublicAddress(); - instance = new RemoteInstance("http://" + address, null, "solr", 3000); // this is a 'patch configuration' which considers 'solr' as default collection + final int solrtimeout = Switchboard.getSwitchboard().getConfigInt(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_TIMEOUT, 10000); + instance = new RemoteInstance("http://" + address, null, "solr", solrtimeout); // this is a 'patch configuration' which considers 'solr' as default collection solrConnector = new RemoteSolrConnector(instance, "solr"); rsp = solrConnector.getResponseByParams(solrQuery); docList = rsp.getResults(); diff --git a/source/net/yacy/search/Switchboard.java b/source/net/yacy/search/Switchboard.java index 87f6b906b..61fd6357f 100644 --- a/source/net/yacy/search/Switchboard.java +++ b/source/net/yacy/search/Switchboard.java @@ -494,10 +494,11 @@ public final class Switchboard extends serverSwitch { // set up the solr interface final String solrurls = getConfig(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_URL, "http://127.0.0.1:8983/solr"); final boolean usesolr = getConfigBool(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_ENABLED, false) & solrurls.length() > 0; + final int solrtimeout = getConfigInt(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_TIMEOUT, 10000); if (usesolr && solrurls != null && solrurls.length() > 0) { try { - ArrayList instances = RemoteInstance.getShardInstances(solrurls, null, null, 10000); + ArrayList instances = RemoteInstance.getShardInstances(solrurls, null, null, solrtimeout); this.index.fulltext().connectRemoteSolr(instances); } catch (final IOException e ) { ConcurrentLog.logException(e); @@ -1326,10 +1327,11 @@ public final class Switchboard extends serverSwitch { // set up the solr interface final String solrurls = getConfig(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_URL, "http://127.0.0.1:8983/solr"); final boolean usesolr = getConfigBool(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_ENABLED, false) & solrurls.length() > 0; + final int solrtimeout = getConfigInt(SwitchboardConstants.FEDERATED_SERVICE_SOLR_INDEXING_TIMEOUT, 10000); if (usesolr && solrurls != null && solrurls.length() > 0) { try { - ArrayList instances = RemoteInstance.getShardInstances(solrurls, null, null, 10000); + ArrayList instances = RemoteInstance.getShardInstances(solrurls, null, null, solrtimeout); this.index.fulltext().connectRemoteSolr(instances); } catch (final IOException e ) { ConcurrentLog.logException(e); diff --git a/source/net/yacy/search/SwitchboardConstants.java b/source/net/yacy/search/SwitchboardConstants.java index 0f2e251a8..436a01cdd 100644 --- a/source/net/yacy/search/SwitchboardConstants.java +++ b/source/net/yacy/search/SwitchboardConstants.java @@ -308,6 +308,7 @@ public final class SwitchboardConstants { public static final String FEDERATED_SERVICE_SOLR_INDEXING_URL = "federated.service.solr.indexing.url"; public static final String FEDERATED_SERVICE_SOLR_INDEXING_SHARDING = "federated.service.solr.indexing.sharding"; public static final String FEDERATED_SERVICE_SOLR_INDEXING_LAZY = "federated.service.solr.indexing.lazy"; + public static final String FEDERATED_SERVICE_SOLR_INDEXING_TIMEOUT = "federated.service.solr.indexing.timeout"; //public static final String CORE_SERVICE_URLDB = "core.service.urldb.tmp"; //public static final String CORE_SERVICE_SOLR = "core.service.solr.tmp";