Modified: sites/solr/guide/solr/9_0/upgrade-notes/major-changes-in-solr-9.html
URL: 
http://svn.apache.org/viewvc/sites/solr/guide/solr/9_0/upgrade-notes/major-changes-in-solr-9.html?rev=1079535&r1=1079534&r2=1079535&view=diff
==============================================================================
--- sites/solr/guide/solr/9_0/upgrade-notes/major-changes-in-solr-9.html 
(original)
+++ sites/solr/guide/solr/9_0/upgrade-notes/major-changes-in-solr-9.html Wed 
May 11 14:05:41 2022
@@ -1056,7 +1056,7 @@
 <p>Solr 9.0 is a major new release of Solr.</p>
 </div>
 <div class="paragraph">
-<p>This page highlights the biggest changes, including new features you may 
want to be aware of, and changes in default behavior and deprecated features 
that have been removed.</p>
+<p>This page highlights the most important changes including new features and 
changes in default behavior as well as previously deprecated features that have 
now been removed.</p>
 </div>
 </div>
 </div>
@@ -1075,19 +1075,19 @@
 <div class="sect2">
 <h3 id="upgrade-prerequisites"><a class="anchor" 
href="#upgrade-prerequisites"></a>Upgrade Prerequisites</h3>
 <div class="paragraph">
-<p><strong>Solr 9 requires Java 11 as minimum Java version, and is also tested 
with Java 17.</strong></p>
+<p><strong>Solr 9 requires Java 11 as minimum Java version and is also tested 
with Java 17.</strong></p>
 </div>
 <div class="paragraph">
-<p>If using Solr&#8217;s Java client (<strong>SolrJ</strong>) with 
<code>CloudSolrClient</code> to connect to your SolrCloud cluster, make sure to 
upgrade SolrJ in all your client applications to version 8.10 or higher (8.x), 
before upgrading your SolrCloud cluster to version 9.0. Otherwise, SolrJ will 
not be able to connect to the cluster once it has upgraded to Solr 9. Once you 
have upgraded all Solr clusters that the client is connecting to, you can 
upgrade the SolrJ client to 9.x.</p>
+<p>If using <code>CloudSolrClient</code> to connect to your SolrCloud cluster, 
SolrJ must be upgraded in all your client applications to version 8.10 or 
higher (8.x), before upgrading your SolrCloud cluster to version 9.0. 
Otherwise, SolrJ will not be able to connect to the cluster once it has 
upgraded to Solr 9.</p>
 </div>
 <div class="paragraph">
-<p>If you have an old collection that was initially created with a Solr 
version prior to 5.0, that collection Solr may keep that collection&#8217;s 
state in the <code>/clusterstate.json</code> file at the root of Zookeeper. 
Solr 9 does no longer support this file. You must upgrade such collections to 
the new per-collection <code>state.json</code> format <strong>before</strong> 
upgrading to Solr 9. This is done by calling the <a 
href="https://solr.apache.org/guide/8_11/cluster-node-management.html#migratestateformat";>Collection
 API MIGRATESTATEFORMAT</a> action while still using Solr 8.x.</p>
+<p>If you have an old collection that was initially created with a Solr 
version prior to 5.0, Solr may keep that collection&#8217;s cluster state in 
the <code>/clusterstate.json</code> file at the root of Zookeeper. Solr 9 no 
longer supports this file. You must upgrade such collections to the new 
per-collection <code>state.json</code> format <strong>before</strong> upgrading 
to Solr 9. This is done by calling the <a 
href="https://solr.apache.org/guide/8_11/cluster-node-management.html#migratestateformat";>Collection
 API MIGRATESTATEFORMAT</a> action while still using Solr 8.x.</p>
 </div>
 <div class="paragraph">
-<p>If you are using Solr in standalone mode with the <a 
href="../query-guide/query-elevation-component.html" class="xref page">Query 
Elevation Component</a> with it&#8217;s elevation file in the data directory, 
you&#8217;ll have to move it to the <a 
href="../configuration-guide/config-sets.html" class="xref page">Configset</a> 
folder instead.</p>
+<p>If you are using Solr in standalone mode with the <a 
href="../query-guide/query-elevation-component.html" class="xref page">Query 
Elevation Component</a> with its elevation file in the data directory, 
you&#8217;ll have to move it to the <a 
href="../configuration-guide/config-sets.html" class="xref page">configset</a> 
folder instead.</p>
 </div>
 <div class="paragraph">
-<p>Some metrics have changed names due to the removal of "master" and "slave" 
terminology in 8.x. If you rely on metrics, alerts and monitors on Solr KPIs 
that mention "master" or "slave", you will need to prepare for those metrics 
now appearing with "leader" and "follower" in their names instead.</p>
+<p>If you rely on metrics, alerts, or monitors on Solr KPIs that use the 
"master" or "slave" terminology, please update your system for those metrics to 
now show up with "leader" and "follower" terminology.</p>
 </div>
 </div>
 <div class="sect2">
@@ -1128,530 +1128,329 @@
 <p>It is always strongly recommended that you fully reindex your documents 
after a major version upgrade. For details, see the <a 
href="../indexing-guide/reindexing.html" class="xref page">Reindexing</a> 
section, which covers several strategies for how to reindex.</p>
 </div>
 <div class="paragraph">
-<p>In Solr 8, it&#8217;s possible to add docValues to a schema without 
re-indexing via <code>UninvertDocValuesMergePolicy</code>, an advanced/expert 
utility.
-Due to changes in Lucene 9, that isn&#8217;t possible anymore; the component 
was removed.</p>
+<p>In Solr 8, it was possible to add docValues to a schema without re-indexing 
via <code>UninvertDocValuesMergePolicy</code>, an advanced/expert utility.
+Due to changes in Lucene 9, that isn&#8217;t possible any more.</p>
 </div>
 </div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="solr-9-0-raw-notes-not-yet-edited"><a class="anchor" 
href="#solr-9-0-raw-notes-not-yet-edited"></a>Solr 9.0 Raw Notes (NOT YET 
EDITED)</h2>
+<h2 id="solr-9-0"><a class="anchor" href="#solr-9-0"></a>Solr 9.0</h2>
 <div class="sectionbody">
-<div class="paragraph">
-<p><em>(raw; not yet edited)</em></p>
-</div>
+<div class="sect2">
+<h3 id="querying-and-indexing"><a class="anchor" 
href="#querying-and-indexing"></a>Querying and Indexing</h3>
 <div class="ulist">
 <ul>
 <li>
-<p>SOLR-13854, SOLR-13858: SolrMetricProducer / SolrInfoBean APIs have changed 
and third-party components that implement these APIs need to be updated.</p>
-</li>
-<li>
-<p>SOLR-14344: Remove Deprecated HttpSolrClient.RemoteSolrException and 
HttpSolrClient.RemoteExcecutionException.
-All the usages are replaced by BaseHttpSolrClient.RemoteSolrException and 
BaseHttpSolrClient.RemoteExcecutionException.</p>
-</li>
-<li>
-<p>SOLR-15409: Zookeeper client libraries upgraded to 3.7.0, which may not be 
compatible with your existing server installations</p>
-</li>
-<li>
-<p>SOLR-15809: Get rid of blacklist/whitelist terminology. JWTAuthPlugin 
parameter <code>algWhitelist</code> is now <code>algAllowlist</code>. The old 
parameter will still
-work in 9.x. Environment variables <code>SOLR_IP_WHITELIST</code> and 
<code>SOLR_IP_BLACKLIST</code> are no longer supported, but replaced with 
<code>SOLR_IP_ALLOWLIST</code> and <code>SOLR_IP_DENYLIST</code>.</p>
-</li>
-<li>
-<p>SOLR-11623: Every request handler in Solr now implements 
PermissionNameProvider. Any custom or 3rd party request handler must also do 
this</p>
+<p><a href="../query-guide/dense-vector-search.html" class="xref page">Dense 
Vector "Neural" Search</a> through <code>DenseVectorField</code> fieldType and 
K-Nearest-Neighbor (KNN) Query Parser.</p>
 </li>
 <li>
-<p>SOLR-14142: Jetty low level request-logging in NCSA format is now enabled 
by default, with a retention of 3 days worth of logs.
-This may require some more disk space for logs than was the case in 8.x. See 
Reference Guide chapter "Configuring Logging" for how to change this.</p>
+<p>Admin UI support for SQL Querying.</p>
 </li>
 <li>
-<p>SOLR-15842: Async responses for backups now correctly aggregate and return 
information.
-In previous versions there was a field returned in async backup status 
responses, <code>Response</code>. This has now been renamed to 
<code>msg</code>, to better fit other collections API responses.
-The <code>response</code> field is now a map, containing information about the 
backup (<code>startTime</code>, <code>indexSizeMB</code>, 
<code>indexFileCount</code>, etc.).</p>
+<p>New snowball stemmers: Hindi, Indonesian, Nepali, Serbian, Tamil, and 
Yiddish.</p>
 </li>
 <li>
-<p>SOLR-15982: For collection&#8217;s snapshot backup request responses 
additional fields <code>indexVersion</code>, <code>indexFileCount</code>, etc. 
were added similar to incremental backup request responses.
-Also, both snapshot and incremental backup request responses will now contain 
<code>starTime</code> and <code>endTime</code>.
-Snapshot backup shard&#8217;s response were updated to add fields 
<code>indexFileCount</code> and <code>endTime</code>, snapshot delete 
shard&#8217;s response were updated to add fields <code>startTime</code> and 
<code>endTime</code>.
-Previous fields <code>fileCount</code>, <code>snapshotCompletedAt</code> and 
<code>snapshotDeletedAt</code> of backup and delete shard&#8217;s responses are 
now deprecated and will be removed in future releases.
-All date/time fields of backup and delete related shard&#8217;s responses have 
been updated to use <code>Instance</code> instead of <code>Date</code>, meaning 
the output will be in the standard ISO 8601 Format.</p>
+<p>New NorwegianNormalizationFilter</p>
 </li>
 <li>
-<p>SOLR-15884: In Backup request responses, the <code>response</code> key now 
uses a map to return information instead of a list.
-This is only applicable for users returning information in JSON format, which 
is the default behavior.</p>
+<p>Implicit <code>/terms</code> handler now returns terms across all shards in 
SolrCloud instead of only the local core.
+Users/apps may be assuming the old behavior. A request can be modified via the 
standard <code>distrib=false</code> param to only use the local core receiving 
the request.</p>
 </li>
 <li>
-<p>SOLR-15944: The Tagger&#8217;s JSON response format now always uses an 
object/map to represent each tag instead of an array.</p>
+<p>SQL support has been moved to the sql module. Existing Solr configurations 
do not need any SQL related changes, however the module needs to be installed - 
see the section <a href="../query-guide/sql-query.html" class="xref page">SQL 
Query Language</a>.</p>
 </li>
 <li>
-<p>SOLR-14660: HDFS storage support has been moved to a module. Existing Solr 
configurations do not need any HDFS-related
-changes, however the module needs to be installed - see the section <a 
href="../deployment-guide/solr-on-hdfs.html" class="xref page">Solr on 
HDFS</a>.</p>
+<p>JSON aggregations uses corrected sample formula to compute standard 
deviation and variance. The computation of stdDev and variance in JSON 
aggregation is same as StatsComponent.</p>
 </li>
 <li>
-<p>SOLR-16040: If you are using the HDFS backup repository, you need to change 
the repository class to 
<code>org.apache.solr.hdfs.backup.repository.HdfsBackupRepository</code> - see 
the <a href="../deployment-guide/backup-restore.html#hdfsbackuprepository" 
class="xref page">HDFS Backup Repository</a> section.</p>
+<p>Facet count in Json Facet module always returns a <code>long</code> value, 
irrespective of number of shards.</p>
 </li>
 <li>
-<p>SOLR-13989: Hadoop authentication support has been moved to the hadoop-auth 
module. Existing Solr configurations do not need any Hadoop authentication 
related
-changes, however the module needs to be installed - see the section <a 
href="../deployment-guide/hadoop-authentication-plugin.html" class="xref 
page">Hadoop Authentication Plugin</a>.</p>
+<p><code>MacroExpander</code> will no longer will expand URL parameters inside 
of the <code>expr</code> parameter (used by streaming expressions).
+Additionally, users are advised to use the <code>InjectionDefense</code> class 
when constructing streaming expressions that include user supplied data to 
avoid risks similar to SQL injection. The legacy behavior of expanding the 
<code>expr</code> parameter can be reinstated with 
<code>-DStreamingExpressionMacros=true</code> passed to the JVM at startup</p>
 </li>
 <li>
-<p>SOLR-15904: SQL support has been moved to the sql module. Existing Solr 
configurations do not need any SQL related
-changes, however the module needs to be installed - see the section <a 
href="../query-guide/sql-query.html" class="xref page">SQL Query 
Language</a>.</p>
+<p>The response format for field values serialized as raw XML (via the 
<code>[xml]</code> raw value DocTransformer
+and <code>wt=xml</code>) has changed. Previously, values were dropped in 
directly as top-level child elements of each <code>&lt;doc&gt;</code>,
+obscuring associated field names and yielding inconsistent 
<code>&lt;doc&gt;</code> structure. As of version 9.0, raw values are
+wrapped in a <code>&lt;raw 
name="field_name"&gt;[&#8230;&#8203;]&lt;/raw&gt;</code> element at the top 
level of each <code>&lt;doc&gt;</code> (or within an enclosing
+<code>&lt;arr 
name="field_name"&gt;&lt;raw&gt;[&#8230;&#8203;]&lt;/raw&gt;&lt;/arr&gt;</code> 
element for multi-valued fields). Existing clients that parse field
+values serialized in this way will need to be updated accordingly.</p>
 </li>
 <li>
-<p>SOLR-15950: The folder $SOLR_HOME/userfiles, used by the "cat" streaming 
expression, is no longer created automatically on startup. The user must create 
this folder.</p>
+<p>Highlighting: <code>hl.method=unified</code> is the new default.  Use 
<code>hl.method=original</code>
+to switch back if needed.</p>
 </li>
 <li>
-<p>SOLR-15097: JWTAuthPlugin has been moved to a module. Users need to add the 
module to classpath. The plugin has also
-changed package name to <code>org.apache.solr.security.jwt</code>, but can 
still be loaded as shortform <code>class="solr.JWTAuthPlugin"</code>.</p>
+<p>solr.xml <code>maxBooleanClauses</code> is now enforced recursively. Users 
who upgrade from prior versions of Solr may find that some requests involving 
complex internal query structures (Example: long query strings using 
<code>edismax</code> with many <code>qf</code> and <code>pf</code> fields that 
include query time synonym expansion) which worked in the past now hit this 
limit and fail. Users in this situation are advised to consider the complexity 
of their queries/configuration, and increase the value of <a 
href="../configuration-guide/configuring-solr-xml.html#global-maxbooleanclauses"
 class="xref page"><code>maxBooleanClauses</code></a> if warranted.</p>
 </li>
 <li>
-<p>SOLR-14401: Metrics: Only SearchHandler and subclasses have "local" metrics 
now.
-It&#8217;s now tracked as if it&#8217;s another handler with a "[shard]" 
suffix, e.g. "/select[shard]".
-There are no longer ".distrib." named metrics; all metrics are assumed to be 
such except
-"[shard]". The default Prometheus exporter config splits that component to a 
new label
-named "internal".  The sample Grafana dashboard now filters to include or 
exclude this.</p>
+<p>Atomic/partial updates to nested documents now <em>require</em> the 
<code>_root_</code> field to clearly show the document isn&#8217;t a root 
document.  Solr 8 would fallback on the <code>_route_</code> param but no 
longer.</p>
 </li>
 </ul>
 </div>
 </div>
-</div>
-<div class="sect1">
-<h2 id="new-features-enhancements"><a class="anchor" 
href="#new-features-enhancements"></a>New Features &amp; Enhancements</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="docker"><a class="anchor" href="#docker"></a>Docker</h3>
-
-</div>
 <div class="sect2">
 <h3 id="security"><a class="anchor" href="#security"></a>Security</h3>
-
-</div>
-<div class="sect2">
-<h3 id="scalability"><a class="anchor" href="#scalability"></a>Scalability</h3>
-
-</div>
-<div class="sect2">
-<h3 id="modules"><a class="anchor" href="#modules"></a>Modules</h3>
-<div class="ulist">
-<ul>
-<li>
-<p>HDFS</p>
-</li>
-<li>
-<p>Hadoop-auth</p>
-</li>
-<li>
-<p>GCS-repository</p>
-</li>
-<li>
-<p>JWT-auth</p>
-</li>
-<li>
-<p>Scripting</p>
-</li>
-<li>
-<p>SQL</p>
-</li>
-</ul>
-</div>
-</div>
-<div class="sect2">
-<h3 id="gradle-build"><a class="anchor" href="#gradle-build"></a>Gradle 
build</h3>
-
-</div>
-<div class="sect2">
-<h3 id="other"><a class="anchor" href="#other"></a>Other</h3>
-<div class="ulist">
-<ul>
-<li>
-<p>SOLR-13671: Allow 'var' keyword in Java sources</p>
-</li>
-</ul>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>Replica placement plugins</p>
-</li>
-<li>
-<p>Rate limiting and task management</p>
-</li>
-<li>
-<p>Certificate Auth Plugin</p>
-</li>
-<li>
-<p>SQL Query interface in UI</p>
-</li>
-</ul>
-</div>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="configuration-and-default-parameter-changes"><a class="anchor" 
href="#configuration-and-default-parameter-changes"></a>Configuration and 
Default Parameter Changes</h2>
-<div class="sectionbody">
-<div class="sect2">
-<h3 id="schema-changes-in-9-0"><a class="anchor" 
href="#schema-changes-in-9-0"></a>Schema Changes in 9.0</h3>
-
-</div>
-<div class="sect2">
-<h3 id="indexing-changes-in-9-0"><a class="anchor" 
href="#indexing-changes-in-9-0"></a>Indexing Changes in 9.0</h3>
-
-</div>
-<div class="sect2">
-<h3 id="query-changes-in-9-0"><a class="anchor" 
href="#query-changes-in-9-0"></a>Query Changes in 9.0</h3>
-
-</div>
-<div class="sect2">
-<h3 id="authentication-security-changes-in-9-0"><a class="anchor" 
href="#authentication-security-changes-in-9-0"></a>Authentication &amp; 
Security Changes in 9.0</h3>
-
-</div>
-<div class="sect2">
-<h3 id="ui-changes-in-9-0"><a class="anchor" href="#ui-changes-in-9-0"></a>UI 
Changes in 9.0</h3>
-
-</div>
-<div class="sect2">
-<h3 id="dependency-updates-in-9-0"><a class="anchor" 
href="#dependency-updates-in-9-0"></a>Dependency Updates in 9.0</h3>
 <div class="ulist">
 <ul>
 <li>
-<p>SOLR-7530: TermsComponent&#8217;s JSON response format was changed so that 
"terms" property carries per field arrays by default regardless of distrib, 
terms.list, terms.ttf parameters.
-This affects JSON based response format but not others</p>
-</li>
-<li>
-<p>SOLR-14036: Implicit /terms handler now returns terms across all shards in 
SolrCloud instead of only the local core.
-Users/apps may be assuming the old behavior.
-A request can be modified via the standard distrib=false param to only use the 
local core receiving the request.</p>
+<p>New <a href="../deployment-guide/cert-authentication-plugin.html" 
class="xref page">Certificate Authentication Plugin</a>, enabling end-to-end 
use of x509 client certificates for Authentication and Authorization.</p>
 </li>
 <li>
-<p>SOLR-13783: In situations where a NamedList must be output as plain text, 
commas between key-value pairs will now be followed by a space (e.g., 
{shape=square, color=yellow} rather than {shape=square,color=yellow}) for 
consistency with other <code>java.util.Map</code> implementations based on 
<code>AbstractMap</code>.</p>
+<p>Improved security when using PKI Authentication plugin.</p>
 </li>
 <li>
-<p>SOLR-11725: JSON aggregations uses corrected sample formula to compute 
standard deviation and variance.
-The computation of stdDev and variance in JSON aggregation is same as 
StatsComponent.</p>
+<p>Upgrade to Zookeeper 3.7, allowing for TLS protected ZK communication.</p>
 </li>
 <li>
-<p>SOLR-14012: unique and hll aggregations always returns long value 
irrespective of standalone or solcloud</p>
+<p>All request handlers support security permissions. Users may have to adapt 
their <code>security.json</code>.</p>
 </li>
 <li>
-<p>SOLR-11775: Return long value for facet count in Json Facet module 
irrespective of number of shards</p>
+<p>Ability to disable admin UI through a system property.</p>
 </li>
 <li>
-<p>SOLR-15276: V2 API call to look up async request status restful style of 
"/cluster/command-status/1000" instead of 
"/cluster/command-status?requestid=1000".</p>
+<p>The property <code>blockUnknown</code> in the <code>BasicAuthPlugin</code> 
and the <code>JWTAuthPlugin</code> now defaults to <code>true</code> instead of 
<code>false</code>. This change is backward incompatible. If you need the 
pre-9.0 default behavior, you need to explicitly set 
<code>blockUnknown:false</code> in <code>security.json</code>.</p>
 </li>
 <li>
-<p>SOLR-14972: The default port of prometheus exporter has changed from 9983 
to 8989, so you may need to adjust your configuration after upgrade.</p>
+<p>Solr now runs with the Java security manager enabled by default. Hadoop 
users may need to disable this.</p>
 </li>
 <li>
-<p>SOLR-15471: The language identification "whitelist" configuration is now an 
"allowlist" to better convey the meaning of the property</p>
+<p>Solr now binds to localhost network interface by default for better out of 
the box security.
+Administrators that need Solr exposed more broadly can change the 
<code>SOLR_JETTY_HOST</code> property in their Solr include 
(<code>solr.in.sh</code>/<code>solr.in.cmd</code>) file.</p>
 </li>
 <li>
-<p>SOLR-12891: MacroExpander will no longer will expand URL parameters inside 
of the 'expr' parameter (used by streaming expressions).
-Additionally, users are advised to use the 'InjectionDefense' class when 
constructing streaming expressions that include user supplied data to avoid 
risks similar to SQL injection.
-The legacy behavior of expanding the 'expr' parameter can be reinstated with 
-DStreamingExpressionMacros=true passed to the JVM at startup</p>
+<p>Solr embedded zookeeper only binds to localhost by default. This embedded 
zookeeper should not be used in production.
+If you rely upon the previous behavior, then you can change the 
<code>clientPortAddress</code> in <code>solr/server/solr/zoo.cfg</code></p>
 </li>
 <li>
-<p>SOLR-13324: URLClassifyProcessor#getCanonicalUrl now throws 
MalformedURLException rather than hiding it.
-Although the present code is unlikely to produce such an exception it may be 
possible in future changes or in subclasses.
-Currently this change should only effect compatibility of custom code 
overriding this method.</p>
+<p>Jetty low level request-logging in NCSA format is now enabled by default, 
with a retention of 3 days worth of logs.
+This may require some more disk space for logs than was the case in version 
8.x. See <a href="../deployment-guide/configuring-logging.html" class="xref 
page">Configuring Logging</a> for how to change this.</p>
 </li>
 <li>
-<p>SOLR-14510: The <code>writeStartDocumentList</code> in 
<code>TextResponseWriter</code> now receives an extra boolean parameter 
representing the "exactness" of the <code>numFound</code> value (exact vs 
approximation).
-Any custom response writer extending <code>TextResponseWriter</code> will need 
to implement this abstract method now (instead previous with the same name but 
without the new boolean parameter).</p>
+<p>Hadoop authentication support has been moved to the new 
<code>hadoop-auth</code> module. Existing Solr configurations do not need any 
Hadoop authentication related changes, however the module needs to be installed 
- see the section <a 
href="../deployment-guide/hadoop-authentication-plugin.html" class="xref 
page">Hadoop Authentication Plugin</a>.</p>
 </li>
 <li>
-<p>SOLR-15259: hl.fragAlignRatio now defaults to 0.33 to be faster and maybe 
looks nicer.</p>
+<p><a href="../deployment-guide/jwt-authentication-plugin.html" class="xref 
page">JWTAuthPlugin</a> has been moved to a module. Users need to add the 
module <code>jwt-auth</code> to classpath. The plugin has also
+changed package name to <code>org.apache.solr.security.jwt</code>, but can 
still be loaded as shortform <code>class="solr.JWTAuthPlugin"</code>.</p>
 </li>
 <li>
-<p>SOLR-9376: The response format for field values serialized as raw XML (via 
the <code>[xml]</code> raw value DocTransformer
-and <code>wt=xml</code>) has changed. Previously, values were dropped in 
directly as top-level child elements of each <code>&lt;doc&gt;</code>,
-obscuring associated field names and yielding inconsistent 
<code>&lt;doc&gt;</code> structure. As of version 9.0, raw values are
-wrapped in a <code>&lt;raw 
name="field_name"&gt;[&#8230;&#8203;]&lt;/raw&gt;</code> element at the top 
level of each <code>&lt;doc&gt;</code> (or within an enclosing
-<code>&lt;arr 
name="field_name"&gt;&lt;raw&gt;[&#8230;&#8203;]&lt;/raw&gt;&lt;/arr&gt;</code> 
element for multi-valued fields). Existing clients that parse field
-values serialized in this way will need to be updated accordingly.</p>
+<p>Dependency updates - A lot of dependency updates removes several security 
issues from dependencies, and thus make Solr more secure.</p>
 </li>
 <li>
-<p>SOLR-9575: Solr no longer requires a <code>solr.xml</code> in 
<code>$SOLR_HOME</code>. If one is not found, Solr will instead use the default 
one from <code>$SOLR_TIP/server/solr/solr.xml</code>. You can revert to the 
pre-9.0 behaviour by setting environment variable 
<code>SOLR_SOLRXML_REQUIRED=true</code> or system property 
<code>-Dsolr.solrxml.required=true</code>. Solr also does not require a 
<code>zoo.cfg</code> in <code>$SOLR_HOME</code> if started with embedded 
zookeeper.</p>
+<p>The allow-list defining allowed URLs for the <code>shards</code> parameter 
is not in the <code>shardHandler</code> configuration anymore. It is defined by 
the <code>allowUrls</code> top-level property of the <code>solr.xml</code> 
file. For more information, see <a 
href="../configuration-guide/configuring-solr-xml.html#allow-urls" class="xref 
page">Format of solr.allowUrls</a> documentation.</p>
 </li>
 <li>
-<p>SOLR-12901: Highlighting: hl.method=unified is the new default.  Use 
hl.method=original
-to switch back if needed.</p>
+<p>To improve security, <code>StatelessScriptUpdateProcessorFactory</code> has 
been renamed as <code>ScriptUpdateProcessorFactory</code> and moved to 
<code>modules/scripting</code> package instead of shipping as part of Solr 
core.</p>
 </li>
 <li>
-<p>SOLR-12055 introduces async logging by default. There&#8217;s a small 
window where log messages may be lost in the event of some hard crash.
-Switch back to synchronous logging if this is unacceptable, see comments in 
the log4j2 configuration files (log4j2.xml by default).</p>
+<p>To improve security, <code>XSLTResponseWriter</code> has been moved to 
<code>modules/scripting</code> package instead of shipping as part of Solr 
core.</p>
 </li>
 </ul>
 </div>
 </div>
 <div class="sect2">
-<h3 id="solr-xml-maxbooleanclauses-now-enforced-recursively"><a class="anchor" 
href="#solr-xml-maxbooleanclauses-now-enforced-recursively"></a>solr.xml 
maxBooleanClauses now enforced recursively</h3>
-<div class="paragraph">
-<p>Lucene 9.0 has additional safety checks over previous versions that impact 
how the <code>solr.xml</code> global <a 
href="../configuration-guide/configuring-solr-xml.html#global-maxbooleanclauses"
 class="xref page"><code>maxBooleanClauses</code></a> option is enforced.</p>
-</div>
-<div class="paragraph">
-<p>In previous versions of Solr, this option was a hard limit on the number of 
clauses in any <code>BooleanQuery</code> object - but it was only enforced for 
the <em>direct</em> clauses.
-Starting with Solr 9, this global limit is now also enforced against the total 
number of clauses in a <em>nested</em> query structure.</p>
-</div>
-<div class="paragraph">
-<p>Users who upgrade from prior versions of Solr may find that some requests 
involving complex internal query structures (Example: long query strings using 
<code>edismax</code> with many <code>qf</code> and <code>pf</code> fields that 
include query time synonym expansion) which worked in the past now hit this 
limit and fail.</p>
-</div>
-<div class="paragraph">
-<p>User&#8217;s in this situation are advised to consider the complexity f 
their queries/configuration, and increase the value of <a 
href="../configuration-guide/configuring-solr-xml.html#global-maxbooleanclauses"
 class="xref page"><code>maxBooleanClauses</code></a> if warranted.</p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="log4j-configuration-solr-mdc-values"><a class="anchor" 
href="#log4j-configuration-solr-mdc-values"></a>Log4J configuration &amp; Solr 
MDC values</h3>
-<div class="paragraph">
-<p><a href="http://www.slf4j.org/apidocs/org/slf4j/MDC.html";>MDC</a> values 
that Solr sets for use by Logging calls (such as the collection name, shard 
name, replica name, etc&#8230;&#8203;) have been modified to now be "bare" 
values, with out the special single character prefixes that were included in 
past version.
-For example: In 8.x Log messages for a collection named "gettingstarted" would 
have an MDC value with a key <code>collection</code> mapped to a value of 
<code>c:gettingstarted</code>, in 9.x the value will simply be 
<code>gettingstarted</code>.</p>
-</div>
-<div class="paragraph">
-<p>Solr&#8217;s default <code>log4j2.xml</code> configuration file has been 
modified to prepend these same prefixes to MDC values when included in Log 
messages as part of the <code>&lt;PatternLayout/&gt;</code>.
-Users who have custom logging configurations that wish to ensure Solr 9.x logs 
are consistently formatted after upgrading will need to make similar changes to 
their logging configuration files.  See  <a 
href="https://issues.apache.org/jira/browse/SOLR-15630";>SOLR-15630</a> for more 
details.</p>
-</div>
-</div>
-<div class="sect2">
-<h3 id="base_url-removed-from-stored-state"><a class="anchor" 
href="#base_url-removed-from-stored-state"></a>base_url removed from stored 
state</h3>
-<div class="paragraph">
-<p>If you&#8217;re able to upgrade SolrJ to 8.8.x for all of your client 
applications, then you can set <code>-Dsolr.storeBaseUrl=false</code> 
(introduced in Solr 8.8.1) to better align the stored state in Zookeeper with 
future versions of Solr; as of Solr 9.x, the <code>base_url</code> will no 
longer be persisted in stored state.
-However, if you are not able to upgrade SolrJ to 8.8.x for all client 
applications, then you should set <code>-Dsolr.storeBaseUrl=true</code> so that 
Solr will continue to store the <code>base_url</code> in Zookeeper.
-For background, see: SOLR-12182 and SOLR-15145.</p>
-</div>
-<div class="paragraph">
-<p>Support for the <code>solr.storeBaseUrl</code> system property will be 
removed in Solr 10.x and <code>base_url</code> will no longer be stored.</p>
-</div>
+<h3 id="stability-and-scalability"><a class="anchor" 
href="#stability-and-scalability"></a>Stability and Scalability</h3>
 <div class="ulist">
 <ul>
 <li>
-<p>Solr&#8217;s distributed tracing no longer incorporates a special 
<code>samplePercentage</code> SolrCloud cluster property.
-Instead, consult the documentation for the tracing system you use on how to 
sample the traces.
-Consequently, if you use a Tracer at all, you will always have traces and thus 
trace IDs in logs.
-What percentage of them get reported to a tracing server is up to you.</p>
+<p><a href="../deployment-guide/rate-limiters.html" class="xref page">Rate 
limiting</a> provides a way to throttle update and search requests based on 
usage metrics.</p>
 </li>
 <li>
-<p>JaegerTracerConfigurator no longer recognizes any configuration in solr.xml.
-It is now completely configured via System properties and/or Environment 
variables as documented by Jaeger.</p>
+<p>A new <a href="../deployment-guide/task-management.html" class="xref 
page">Task management</a> interface allows declaring tasks as cancellable and 
trackable.</p>
 </li>
-</ul>
-</div>
-</div>
-<div class="sect2">
-<h3 id="schema-changes"><a class="anchor" href="#schema-changes"></a>Schema 
Changes</h3>
-<div class="ulist">
-<ul>
 <li>
-<p><code>LegacyBM25SimilarityFactory</code> has been removed.</p>
+<p>Ability to specify <a href="../deployment-guide/node-roles.html" 
class="xref page">node roles</a> in Solr. This release supports 
<code>overseer</code> and <code>data</code> roles out of the box.</p>
+</li>
+<li>
+<p>New API for pluggable <a 
href="../configuration-guide/replica-placement-plugins.html" class="xref 
page">Replica Placement Plugins</a> that replaces the auto-scaling 
framework.</p>
 </li>
 <li>
-<p>SOLR-13593 SOLR-13690 SOLR-13691: Allow to look up analyzer components by 
their SPI names in field type configuration.</p>
+<p>Support for distributed processing of cluster state updates and collection 
API calls, without relying on the Overseer.</p>
 </li>
 </ul>
 </div>
 </div>
 <div class="sect2">
-<h3 id="authentication-security-changes"><a class="anchor" 
href="#authentication-security-changes"></a>Authentication &amp; Security 
Changes</h3>
+<h3 id="build-and-docker"><a class="anchor" href="#build-and-docker"></a>Build 
and Docker</h3>
 <div class="ulist">
 <ul>
 <li>
-<p>The property <code>blockUnknown</code> in the BasicAuthPlugin and the 
JWTAuthPlugin now defaults to <code>true</code>.
-This change is backward incompatible.
-If you need the pre-9.0 default behavior, you need to explicitly set 
<code>blockUnknown:false</code> in <code>security.json</code>.</p>
+<p>Solr is now built and released independently of Lucene (separate Apache 
projects).</p>
 </li>
 <li>
-<p>The allow-list defining allowed URLs for the <code>shards</code> parameter 
is not in the <code>shardHandler</code> configuration anymore. It is defined by 
the <code>allowUrls</code> top-level property of the <code>solr.xml</code> 
file. For more information, see <a 
href="../configuration-guide/configuring-solr-xml.html#allow-urls" class="xref 
page">Format of solr.allowUrls</a> documentation.</p>
+<p>Build system switched to Gradle, no longer uses Ant + Ivy.</p>
 </li>
 <li>
-<p>SOLR-13985: Solr&#8217;s Jetty now binds to localhost network interface by 
default for better out of the box security.
-Administrators that need Solr exposed more broadly can change the 
SOLR_JETTY_HOST property in their Solr include (solr.in.sh/solr.in.cmd) 
file.</p>
+<p>Docker image creation is now a part of the Apache Solr GitHub repo.</p>
 </li>
 <li>
-<p>SOLR-14147: Solr now runs with the java security manager enabled by 
default. Administrators that need to run Solr with Hadoop will need to disable 
this feature by setting SOLR_SECURITY_MANAGER_ENABLED=false in the environment 
or in one of the Solr init scripts. Other features in Solr could also break. 
(Robert Muir, marcussorealheis)</p>
+<p>Docker image documentation is now a part of the reference guide.</p>
 </li>
 <li>
-<p>SOLR-14118: Solr embedded zookeeper only binds to localhost by default.
-This embedded zookeeper should not be used in production.
-If you rely upon the previous behavior, then you can change the 
clientPortAddress in solr/server/solr/zoo.cfg</p>
+<p>Official Docker image upgraded to use JDK17 (by Eclipse Temurin) and 
ability to create functionally identical local image.</p>
 </li>
 </ul>
 </div>
 </div>
 <div class="sect2">
-<h3 id="module-changes"><a class="anchor" href="#module-changes"></a>Module 
Changes</h3>
+<h3 id="logging-and-metrics"><a class="anchor" 
href="#logging-and-metrics"></a>Logging and Metrics</h3>
 <div class="ulist">
 <ul>
 <li>
-<p><strong>SOLR-15917: "Contrib modules" have been renamed to "Modules", and 
have been moved from the <code>contrib/</code> to 
<code>modules/</code>.</strong>
-Use of these modules remains the same, except for the changes listed below.</p>
-</li>
-<li>
-<p>SOLR-15916: <code>dist/</code> is no longer provided in the binary release.
-All module jars are now provided under <code>modules/&lt;name&gt;/lib</code>, 
including the module jar and all dependency jars.
-Please update your <code>&lt;lib&gt;</code> entries in your 
<code>solrconfig.xml</code> to use this new location.
-More information can be found in the <a 
href="../configuration-guide/libs.html#lib-directives-in-solrconfig" 
class="xref page">Libs documentation</a>.</p>
+<p>Metrics handler only depends on SolrJ instead of core and has its own 
<code>log4j2.xml</code> and no longer shares Solr’s logging config.</p>
 </li>
 <li>
-<p>SOLR-14067: <code>StatelessScriptUpdateProcessorFactory</code> moved to 
<code>modules/scripting</code> package instead of shipping as part of Solr, due 
to security concerns.
-Renamed to ScriptUpdateProcessorFactory for simpler name.</p>
+<p>Only <code>SearchHandler</code> and subclasses have "local" metrics now. 
It&#8217;s now tracked with a new <code>internal=true</code> tag, which can be 
filtered in e.g. Prometheus.
+There are no longer ".distrib." named metrics; all metrics are assumed to be 
such except "[shard]". The default Prometheus exporter config splits that 
component to a new label named "internal".  The sample Grafana dashboard now 
filters to include or exclude this.</p>
 </li>
 <li>
-<p>SOLR-15121: <code>XSLTResponseWriter</code> moved to 
<code>modules/scripting</code> package instead
-of shipping as part of Solr, due to security concerns.</p>
+<p>The default port of "Prometheus exporter" has changed from 9983 to 8989, so 
you may need to adjust your configuration after upgrade.</p>
 </li>
 <li>
-<p>SOLR-14926: <code>modules/clustering</code> back and rewritten</p>
+<p>Logging is now asynchronous by default. There&#8217;s a small window where 
log messages may be lost in the event of some hard crash.
+Switch back to synchronous logging if this is unacceptable, see comments in 
the log4j2 configuration files (log4j2.xml by default).</p>
 </li>
 <li>
-<p>SOLR-14912: Cleaned up solr-extraction module to produce solr-extraction-* 
jar (instead of solr-cell-*). (Dawid Weiss)</p>
+<p>Log4J configuration &amp; Solr MDC values - <a 
href="http://www.slf4j.org/apidocs/org/slf4j/MDC.html";>MDC</a> values that Solr 
sets for use by Logging calls (such as the collection name, shard name, replica 
name, etc&#8230;&#8203;) have been modified to now be "bare" values, without 
the special single character prefixes that were included in past version. The 
default <code>log4j2.xml</code> configuration file for Solr has been modified 
to prepend these same prefixes to MDC values when included in Log messages as 
part of the <code>&lt;PatternLayout/&gt;</code>. Users who have custom logging 
configurations that wish to ensure Solr 9.x logs are consistently formatted 
after upgrading will need to make similar changes to their logging 
configuration files.  See  <a 
href="https://issues.apache.org/jira/browse/SOLR-15630";>SOLR-15630</a> for more 
details.</p>
 </li>
 <li>
-<p>SOLR-15924: Extra lucene libraries used in modules are no longer packaged 
in <code>lucene-libs/</code> under module directories in the binary release.
-Instead, these libraries will be included with all other module dependencies 
in <code>lib/</code>.</p>
+<p><a href="../deployment-guide/configuring-logging.html#request-logging" 
class="xref page">Jetty Request log</a> is now enabled by default, i.e. logging 
every request.</p>
 </li>
 <li>
-<p>SOLR-15954: The prometheus-exporter is no longer packaged as a Solr module. 
It can be found under <code>solr/prometheus-exporter/</code>.</p>
+<p>The prometheus-exporter is no longer packaged as a Solr module. It can be 
found under <code>solr/prometheus-exporter/</code>.</p>
 </li>
 <li>
-<p>SOLR-15914: Solr modules (formerly known as contribs) can now easily be 
enabled by an environment variable (e.g. in <code>solr.in.sh</code> or 
<code>solr.in.cmd</code>) or as a system property (e.g. in 
<code>SOLR_OPTS</code>). Example: <code>SOLR_MODULES=extraction,ltr</code>.</p>
+<p>Solr modules (formerly known as contribs) can now easily be enabled by an 
environment variable (e.g. in <code>solr.in.sh</code> or 
<code>solr.in.cmd</code>) or as a system property (e.g. in 
<code>SOLR_OPTS</code>). Example: <code>SOLR_MODULES=extraction,ltr</code>.</p>
 </li>
 </ul>
 </div>
 </div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="deprecations-removed-features"><a class="anchor" 
href="#deprecations-removed-features"></a>Deprecations &amp; Removed 
Features</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>The following list of features have been permanently removed from Solr:</p>
-</div>
-<div class="ulist">
-<ul>
-<li>
-<p>SOLR-14656: Autoscaling framework removed.
-This includes:</p>
+<div class="sect2">
+<h3 id="deprecations-and-removals"><a class="anchor" 
href="#deprecations-and-removals"></a>Deprecations and Removals</h3>
 <div class="ulist">
 <ul>
 <li>
-<p>Autoscaling, policy, triggers etc.</p>
+<p>The Data Import Handler (DIH) is an independent project now; it is no 
longer a part of Solr.</p>
 </li>
 <li>
-<p>withCollection handling (SOLR-14964)</p>
+<p>No more support for <code>clusterstate.json</code> and 
<code>MIGRATESTATE</code> API has been removed. If your collections use 
<code>clusterstate.json</code> you will need to take some steps, described 
elsewhere in this document.</p>
 </li>
 <li>
-<p>UTILIZENODE command</p>
+<p>Auto-scaling framework has been removed. Please refer to <a 
href="../configuration-guide/replica-placement-plugins.html" class="xref 
page">Replica Placement Plugins</a> for alternate options.</p>
 </li>
 <li>
-<p>Sim framework</p>
+<p><code>LegacyBM25SimilarityFactory</code> has been removed.</p>
 </li>
 <li>
-<p>Suggestions tab in UI</p>
+<p>Legacy SolrCache implementations (LRUCache, LFUCache, FastLRUCache) have 
been removed. Users have to modify their existing configurations to use 
CaffeineCache instead.</p>
 </li>
 <li>
-<p>Reference guide pages for autoscaling</p>
+<p><code>VelocityResponseWriter</code> is an independent project now; it is no 
longer a part of Solr. This encompasses all previously included 
<code>/browse</code> and <code>wt=velocity</code> examples.</p>
 </li>
 <li>
-<p>autoAddReplicas feature</p>
+<p>Cross Data Center Replication has been removed.</p>
 </li>
-</ul>
-</div>
+<li>
+<p>SolrJ clients like <code>HttpSolrClient</code> and 
<code>LBHttpSolrClient</code> that lacked HTTP2 support have been deprecated. 
The old CloudSolrClient has been renamed as CloudLegacySolrClient and 
deprecated.</p>
 </li>
 <li>
-<p>SOLR-14783: Data Import Handler (DIH) has been removed from Solr.
-The community package is available at: <a 
href="https://github.com/rohitbemax/dataimporthandler"; 
class="bare">https://github.com/rohitbemax/dataimporthandler</a></p>
+<p>SimpleFSDirectoryFactory is removed in favor of NIOFSDirectoryFactory</p>
 </li>
 <li>
-<p>SOLR-12823: Remove <code>/clusterstate.json</code> support, i.e., support 
for collections created with <code>stateFormat=1</code> as well as support for 
Collection API MIGRATESTATEFORMAT action.
-Also removes support for cluster property <code>legacyCloud</code> (as if 
always false now).</p>
+<p>Removed the deprecated <code>HttpSolrClient.RemoteSolrException</code> and 
<code>HttpSolrClient.RemoteExecutionException</code>. All the usages are 
replaced by <code>BaseHttpSolrClient.RemoteSolrException</code> and 
<code>BaseHttpSolrClient.RemoteExecutionException</code>.</p>
 </li>
 <li>
-<p>SOLR-14792: VelocityResponseWriter has been removed from Solr.
-This encompasses all previous included <code>/browse</code> and 
<code>wt=velocity</code> examples.
-This feature has been migrated to an installable package at <a 
href="https://github.com/erikhatcher/solr-velocity"; 
class="bare">https://github.com/erikhatcher/solr-velocity</a></p>
+<p><code>maxShardsPerNode</code> parameter has been removed because it was 
broken and inconsistent with other replica placement strategies.
+Other relevant placement strategies should be used instead, such as 
autoscaling policy or rules-based placement.</p>
 </li>
 <li>
-<p>SOLR-13817: Legacy SolrCache implementations (LRUCache, LFUCache, 
FastLRUCache) have been removed.
-Users have to modify their existing configurations to use CaffeineCache 
instead. (ab)</p>
+<p>The binary distribution no longer contains test-framework jars.</p>
 </li>
 <li>
-<p>CDCR</p>
+<p>Deprecated BlockJoinFacetComponent and BlockJoinDocSetFacetComponent are 
removed. Users are encouraged to migrate to uniqueBlock() in JSON Facet API.</p>
 </li>
 <li>
-<p>Solr&#8217;s blob store</p>
+<p>Core level admin API endpoints <code>/admin/threads</code>, 
<code>/admin/properties</code>, <code>/admin/logging</code> are now only 
available at the node level.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="other"><a class="anchor" href="#other"></a>Other</h3>
 <div class="ulist">
 <ul>
 <li>
-<p>SOLR-14654: plugins cannot be loaded using "runtimeLib=true" option. Use 
the package manager to use and load plugins</p>
+<p><a href="../configuration-guide/solr-modules.html" class="xref 
page">Contrib modules</a> are now just "modules". You can easily enable 
module(s) through environment variable <code>SOLR_MODULES</code>.</p>
 </li>
-</ul>
-</div>
+<li>
+<p>Features lifted out as separate modules are: HDFS, Hadoop-Auth, SQL, 
Scripting, and JWT-Auth.</p>
+</li>
+<li>
+<p>The "dist" folder in the release has been removed. Please update your 
<code>&lt;lib&gt;</code> entries in your <code>solrconfig.xml</code> to use the 
new location.</p>
+<div class="ulist">
+<ul>
+<li>
+<p>The <code>solr-core</code> and <code>solr-solrj</code> jars can be found 
under <code>server/solr-webapp/webapp/WEB-INF/lib/</code>.</p>
 </li>
 <li>
-<p>Metrics History</p>
+<p>The Solr module jars and their dependencies can be found in 
<code>modules/&lt;module-name&gt;/lib</code>, packaged individually for each 
module.</p>
 </li>
 <li>
-<p>SOLR-15470: The binary distribution no longer contains test-framework 
jars.</p>
+<p>The <code>solrj-deps</code> (SolrJ Dependencies) are no longer separated 
out from the other Server jars.</p>
 </li>
 <li>
-<p>SOLR-15203: Remove the deprecated <code>jwkUrl</code> in favour of 
<code>jwksUrl</code> when configuring JWT authentication.</p>
+<p>Please refer to the SolrJ Maven artifact to see the exact dependencies you 
need to include from <code>server/solr-webapp/webapp/WEB-INF/lib/</code> and 
<code>server/lib/ext/</code> if you are loading in SolrJ manually.
+If you plan on using SolrJ as a JDBC driver, please refer to the <a 
href="../query-guide/sql-query.html#generic-clients" class="xref page">JDBC 
documentation</a></p>
 </li>
 <li>
-<p>SOLR-12847: maxShardsPerNode parameter has been removed because it was 
broken and inconsistent with other replica placement strategies.
-Other relevant placement strategies should be used instead, such as 
autoscaling policy or rules-based placement.</p>
+<p>More information can be found in the <a 
href="../configuration-guide/libs.html#lib-directives-in-solrconfig" 
class="xref page">Libs documentation</a>.</p>
+</li>
+</ul>
+</div>
 </li>
 <li>
-<p>SOLR-14092: Deprecated BlockJoinFacetComponent and 
BlockJoinDocSetFacetComponent are removed.
-Users are encouraged to migrate to uniqueBlock() in JSON Facet API.  (Mikhail 
Khludnev)</p>
+<p>SolrJ class <code>CloudSolrClient</code> now supports HTTP2. It has a new 
Builder. See <code>CloudLegacySolrClient</code> for the 8.x version of this 
class.</p>
 </li>
 <li>
-<p>SOLR-13596: Deprecated GroupingSpecification methods are removed.</p>
+<p>In Backup request responses, the <code>response</code> key now uses a map 
to return information instead of a list. This is only applicable for users 
returning information in JSON format, which is the default behavior.</p>
 </li>
 <li>
-<p>SOLR-11266: default Content-Type override for JSONResponseWriter from 
<code>_default</code> configSet is removed.
-Example has been provided in <code>sample_techproducts_configs</code> to 
override content-type.</p>
+<p><code>SolrMetricProducer</code> / <code>SolrInfoBean</code> APIs have 
changed and third-party components that implement these APIs need to be 
updated.</p>
 </li>
 <li>
-<p><code>min_rf</code> deprecated in 7.x</p>
+<p>Use of blacklist/whitelist terminology has been completely removed. 
JWTAuthPlugin parameter <code>algWhitelist</code> is now 
<code>algAllowlist</code>. The old parameter will still work in 9.x. 
Environment variables <code>SOLR_IP_WHITELIST</code> and 
<code>SOLR_IP_BLACKLIST</code> are no longer supported, but replaced with 
<code>SOLR_IP_ALLOWLIST</code> and <code>SOLR_IP_DENYLIST</code>.</p>
 </li>
 <li>
-<p>hl.method=postings highlighter, deprecated in 7.0</p>
+<p>Solr Backups - Async responses for backups now correctly aggregate and 
return information. For collection&#8217;s snapshot backup request responses 
additional fields <code>indexVersion</code>, <code>indexFileCount</code>, etc. 
were added similar to incremental backup request responses.</p>
 </li>
 <li>
-<p>SOLR-15124: Removed three core level admin API endpoints because they are 
already registered at the node level
-where they really belong: /admin/threads, /admin/properties, /admin/logging</p>
+<p>If you are using the HDFS backup repository, you need to change the 
repository class to 
<code>org.apache.solr.hdfs.backup.repository.HdfsBackupRepository</code> - see 
the <a href="../deployment-guide/backup-restore.html#hdfsbackuprepository" 
class="xref page">HDFS Backup Repository</a> section.</p>
 </li>
 <li>
-<p>SOLR-15949: Docker: the official image now uses Java 17 provided by Eclipse 
Temurin.  Formerly it was Java 11 from OpenJDK.
-(janhoy, David Smiley)</p>
+<p>HDFS storage support has been moved to a module. Existing Solr 
configurations do not need any HDFS-related
+changes, however the module needs to be installed - see the section <a 
href="../deployment-guide/solr-on-hdfs.html" class="xref page">Solr on 
HDFS</a>.</p>
 </li>
 <li>
-<p>Atomic/partial updates to nested documents now <em>require</em> the 
<code>_root_</code> field to clearly show the document isn&#8217;t a root 
document.  Solr 8 would fallback on the <code>_route_</code> param but no 
longer.</p>
+<p>The folder <code>$SOLR_HOME/userfiles</code>, used by the "cat" streaming 
expression, is no longer created automatically on startup. The user must create 
this folder.</p>
 </li>
 <li>
-<p>SolrJ: The project is migrating away from the Apache HttpClient dependency 
in favor of Jetty&#8217;s client (supporting HTTP/2), to occur over the 9x 
releases.  We deprecated HttpSolrClient and friends in favor of Http2SolrClient 
and equivalents.  For SolrCloud, the former CloudSolrClient was renamed 
CloudLegacySolrClient (deprecated), and instead BaseCloudSolrClient was renamed 
to CloudSolrClient and given a Builder for the Jetty based HTTP/2 client.</p>
+<p>Solr no longer requires a <code>solr.xml</code> in <code>$SOLR_HOME</code>. 
If one is not found, Solr will instead use the default one from 
<code>$SOLR_TIP/server/solr/solr.xml</code>. You can revert to the pre-9.0 
behaviour by setting environment variable 
<code>SOLR_SOLRXML_REQUIRED=true</code> or system property 
<code>-Dsolr.solrxml.required=true</code>. Solr also does not require a 
<code>zoo.cfg</code> in <code>$SOLR_HOME</code> if started with embedded 
zookeeper.</p>
 </li>
 <li>
-<p>SOLR-13323: The unused package org.apache.solr.internal.csv.writer and 
associated classes/tests that were easily confused with but not used by 
org.apache.solr.response.CSVWriter (or any other code) have been removed</p>
+<p><code>base_url</code> has been removed from stored cluster state. If 
you&#8217;re able to upgrade SolrJ to 8.8.x for all of your client 
applications, then you can set <code>-Dsolr.storeBaseUrl=false</code> 
(introduced in Solr 8.8.1) to better align the stored state in Zookeeper with 
future versions of Solr; as of Solr 9.x, the <code>base_url</code> will no 
longer be persisted in stored state.
+However, if you are not able to upgrade SolrJ to 8.8.x for all client 
applications, then you should set <code>-Dsolr.storeBaseUrl=true</code> so that 
Solr will continue to store the <code>base_url</code> in Zookeeper. For 
background, see: <a 
href="https://issues.apache.org/jira/browse/SOLR-12182";>SOLR-12182</a> and <a 
href="https://issues.apache.org/jira/browse/SOLR-15145";>SOLR-15145</a>. Support 
for the <code>solr.storeBaseUrl</code> system property will be removed in Solr 
10.x and <code>base_url</code> will no longer be stored.</p>
 </li>
-</ul>
-</div>
-<div class="sect2">
-<h3 id="solr-binary-release-dist-directory"><a class="anchor" 
href="#solr-binary-release-dist-directory"></a>Solr Binary Release 
<code>dist/</code> Directory</h3>
-<div class="paragraph">
-<p>The <code>dist/</code> directory in the Solr binary release has been 
removed as of Solr 9.0.</p>
-</div>
-<div class="ulist">
-<ul>
 <li>
-<p>The <code>solr-core</code> and <code>solr-solrj</code> jars can be found 
under <code>server/solr-webapp/webapp/WEB-INF/lib/</code>.</p>
+<p>Analyzer components can now be looked up by their SPI names based on the 
field type configuration.</p>
 </li>
 <li>
-<p>The Solr module jars can be found in 
<code>modules/&lt;module-name&gt;/lib</code>, packaged individually for each 
module.</p>
+<p>The <code>solr-extraction</code> module has been cleaned up to produce 
<code>solr-extraction-<strong></code> jar instead of 
<code>solr-cell-</strong></code> jars.</p>
 </li>
 <li>
-<p>The <code>solrj-deps</code> (SolrJ Dependencies) are no longer separated 
out from the other Server jars.
-Please refer to the SolrJ Maven artifact to see the exact dependencies you 
need to include from <code>server/solr-webapp/webapp/WEB-INF/lib/</code> and 
<code>server/lib/ext/</code> if you are loading in SolrJ manually.
-If you plan on using SolrJ as a JDBC driver, please refer to the <a 
href="../query-guide/sql-query.html#generic-clients" class="xref page">JDBC 
documentation</a></p>
+<p>Extra lucene libraries used in modules are no longer packaged in 
<code>lucene-libs/</code> under module directories in the binary release.
+Instead, these libraries will be included with all other module dependencies 
in <code>lib/</code>.</p>
 </li>
 </ul>
 </div>
@@ -2053,8 +1852,8 @@ The default Prometheus Exporter configur
 <div class="ulist">
 <ul>
 <li>
-<p>The internal logic for identifying 'Solr Home' 
(<code>solr.solr.home</code>) has been refactored to make testing less error 
prone.
-Plugin developers using <code>SolrPaths.locateSolrHome()</code> or 'new 
`SolrResourceLoader&#8217; should check deprecation warnings as existing some 
existing functionality will be removed in 9.0.
+<p>The internal logic for identifying 'Solr Home' 
(<code>solr.solr.home</code>) has been refactored to make testing less 
error-prone.
+Plugin developers using <code>SolrPaths.locateSolrHome()</code> or <code>new 
SolrResourceLoader</code> should check deprecation warnings as existing some 
existing functionality will be removed in 9.0.
 <a href="https://issues.apache.org/jira/browse/SOLR-14934";>SOLR-14934</a> has 
more technical details about this change for those concerned.</p>
 </li>
 </ul>

Modified: sites/solr/guide/solr/9_0/upgrade-notes/solr-upgrade-notes.html
URL: 
http://svn.apache.org/viewvc/sites/solr/guide/solr/9_0/upgrade-notes/solr-upgrade-notes.html?rev=1079535&r1=1079534&r2=1079535&view=diff
==============================================================================
--- sites/solr/guide/solr/9_0/upgrade-notes/solr-upgrade-notes.html (original)
+++ sites/solr/guide/solr/9_0/upgrade-notes/solr-upgrade-notes.html Wed May 11 
14:05:41 2022
@@ -1055,12 +1055,11 @@
 <p>The following notes describe changes to Solr in recent releases that you 
should be aware of before upgrading.</p>
 </div>
 <div class="paragraph">
-<p>These notes highlight the biggest changes that may impact the largest 
number of
-implementations.
+<p>These notes highlight the important changes that may impact the largest 
number of implementations.
 It is not a comprehensive list of all changes to Solr in any release.</p>
 </div>
 <div class="paragraph">
-<p>When planning your Solr upgrade, consider the customizations you have made 
to
+<p>When planning your Solr upgrade, consider the customizations to
 your system and review the <a 
href="https://solr.apache.org/docs/9_0_0/changes/Changes.html";><code>CHANGES.txt</code></a>
 file found in your Solr package.
 That file includes all the changes and updates
@@ -1077,7 +1076,7 @@ that may affect your existing implementa
 <div class="paragraph">
 <p>The upgrade from 8.x to Solr 9.0 introduces several <strong>major</strong> 
changes that you should be aware of before upgrading.
 These changes are described in the section <a 
href="major-changes-in-solr-9.html" class="xref page">Major Changes in Solr 
9</a>.
-It&#8217;s strongly recommended that you do a thorough review of that section 
before starting your upgrade.</p>
+It&#8217;s strongly recommended that you thoroughly review that section before 
starting your upgrade.</p>
 </div>
 <div class="admonitionblock note">
 <table>
@@ -1086,7 +1085,7 @@ It&#8217;s strongly recommended that you
 <i class="fa icon-note" title="Note"></i>
 </td>
 <td class="content">
-If you run in SolrCloud mode and use SolrJ&#8217;s 
<code>CloudSolrClient</code>, you must first upgrade SolrJ to version 8.10 or 
higher before upgrading the cluster to 9.0.
+If you run in SolrCloud mode and use SolrJ&#8217;s 
<code>CloudSolrClient</code>, you must first upgrade SolrJ to a version 8.10 or 
higher before upgrading the cluster to 9.0.
 </td>
 </tr>
 </table>
@@ -1109,10 +1108,10 @@ Rolling upgrades from Solr 8 to Solr 9 r
 <h2 id="upgrading-from-pre-8-x-versions"><a class="anchor" 
href="#upgrading-from-pre-8-x-versions"></a>Upgrading from Pre-8.x Versions</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>Users upgrading from versions of Solr prior to 8.x are strongly encouraged 
to consult <a 
href="https://solr.apache.org/docs/9_0_0/changes/Changes.html";><code>CHANGES.txt</code></a>
 for the details of <em>all</em> changes since the version they are upgrading 
from.</p>
+<p>Users upgrading from versions prior to 8.x are strongly encouraged to 
consult <a 
href="https://solr.apache.org/docs/9_0_0/changes/Changes.html";><code>CHANGES.txt</code></a>
 for the details of <em>all</em> changes since the version they are upgrading 
from.</p>
 </div>
 <div class="paragraph">
-<p>The upgrade from Solr 7.x to Solr 8.0 introduced several 
<strong>major</strong> changes that you should be aware of before upgrading.
+<p>The upgrade from 7.x to 8.0 introduced several <strong>major</strong> 
changes that you should be aware of before upgrading.
 Please do a thorough review of the section <a 
href="major-changes-in-solr-8.html" class="xref page">Major Changes in Solr 
8</a> before starting your upgrade.</p>
 </div>
 <div class="paragraph">


Reply via email to