<?xml version="1.0" encoding="UTF-8" ?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<solr>

  <str name="shareSchema">${shareSchema:false}</str>
  <str name="configSetBaseDir">${configSetBaseDir:configsets}</str>
  <str name="coreRootDirectory">${coreRootDirectory:.}</str>

  <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
    <str name="urlScheme">${urlScheme:}</str>
    <int name="socketTimeout">${socketTimeout:90000}</int>
    <int name="connTimeout">${connTimeout:15000}</int>
  </shardHandlerFactory>

  <solrcloud>
    <str name="host">127.0.0.1</str>
    <int name="hostPort">${hostPort:8983}</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${solr.zkclienttimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
    <int name="leaderVoteWait">${leaderVoteWait:10000}</int>
    <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:45000}</int>
    <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:340000}</int>
  </solrcloud>

</solr>
