= The Well-Configured Solr Instance
:page-children: configuring-solrconfig-xml, \
    solr-cores-and-solr-xml, \
    resource-loading, \
    configuration-apis, \
    implicit-requesthandlers, \
    jvm-settings, \
    v2-api

// 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.

This section tells you how to fine-tune your Solr instance for optimum performance.

This section covers the following topics:

<<configuring-solrconfig-xml.adoc#,Configuring solrconfig.xml>>: Describes how to work with the main configuration file for Solr, `solrconfig.xml`, covering the major sections of the file.

<<solr-cores-and-solr-xml.adoc#,Solr Cores and solr.xml>>: Describes how to work with `solr.xml` and `core.properties` to configure your Solr core, or multiple Solr cores within a single instance.

<<resource-loading.adoc#,Resource Loading>>: Describes how word lists, model files, and other related data are resolved by the components that need them.

<<configuration-apis.adoc#,Configuration APIs>>: Describes several APIs used to configure Solr: Blob Store, Config, Request Parameters and Managed Resources.

<<implicit-requesthandlers.adoc#,Implicit RequestHandlers>>: Describes various end-points automatically provided by Solr and how to configure them.

<<jvm-settings.adoc#,JVM Settings>>: Gives some guidance on best practices for working with Java Virtual Machines.

<<v2-api.adoc#,V2 API>>: Describes how to use the new V2 APIs, a redesigned API framework covering most Solr APIs.

[IMPORTANT]
====
The focus of this section is generally on configuring a single Solr instance, but for those interested in scaling a Solr implementation in a cluster environment, see also the section <<solrcloud.adoc#,SolrCloud>>. There are also options to scale through sharding or replication, described in the section <<legacy-scaling-and-distribution.adoc#,Legacy Scaling and Distribution>>.
====
