This is an automated email from the ASF dual-hosted git repository.

janhoy pushed a commit to branch branch_10_0
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/branch_10_0 by this push:
     new f7d49e9a7b0 Solr10 Major Changes page proposed edits (#4187)
f7d49e9a7b0 is described below

commit f7d49e9a7b0c8cbb0a4ade628bd1327d061f5a21
Author: Jan Høydahl <[email protected]>
AuthorDate: Thu Mar 5 23:03:31 2026 +0100

    Solr10 Major Changes page proposed edits (#4187)
    
    (cherry picked from commit 3e34d08c8043920f0c58354dc1ce34c3c1a9e256)
---
 .../pages/major-changes-in-solr-10.adoc            | 61 ++++++++++++----------
 1 file changed, 33 insertions(+), 28 deletions(-)

diff --git 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
index 0a8f55f0361..86420c2815a 100644
--- 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
+++ 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
@@ -28,7 +28,7 @@ For example, if you are currently using Solr 9.1, you should 
review changes made
 Users planning their upgrade process should be aware of a change introduced in 
Solr 9.10 which is especially relevant to Solr 10 and beyond.
 By default, starting in 9.10 SolrCloud nodes will now fail to start if their 
major.minor version (e.g. 9.10) is *lower* than the highest version found 
elsewhere in the SolrCloud cluster.
 The intention of this change is to allow Solr to support rolling _upgrades_ 
but not rolling _downgrades_ spanning a major version.
-This compatibility safeguard can be disabled via the environment variable 
"SOLR_CLOUD_DOWNGRADE_ENABLED".
+This compatibility safeguard can be disabled via the environment variable 
`SOLR_CLOUD_DOWNGRADE_ENABLED`.
 
 == System Requirements
 
@@ -40,13 +40,13 @@ Solr 10.0 requires at least Java 21, while SolrJ 10.0 
requires at least Java 17.
 
 The previous `SOLR_JETTY_HOST` environment variable and `-Dsolr.jetty.host` 
System Property are deprecated and will be removed in a future release. Please 
update your configuration to use `SOLR_HOST_BIND` and `-Dsolr.host.bind` 
instead.
 
-The previous `SOLR_HOST` and 'host' are deprecated and now use 
`SOLR_HOST_ADVERTISE` and `solr.host.advertise`.
+The previous `SOLR_HOST` and `host` are deprecated and now use 
`SOLR_HOST_ADVERTISE` and `solr.host.advertise`.
 
 The previous `jetty.port` is deprecated and now use `solr.port.listen`.
 
 === Solr CLI and Scripts
 
-The Solr CLI has gone through some significant renovations to reduce technical 
debt, and now functions more consistently and predictably. Most notably, 
"long-options" now use double-dashes per Unix style conventions., e.g. `--help` 
instead of `-help`.
+The Solr CLI has gone through some significant renovations to reduce technical 
debt, and now functions more consistently and predictably. Most notably, 
"long-options" now use double-dashes per Unix style conventions, e.g. `--help` 
instead of `-help`.
 Users are urged to review all use of the `bin/solr` command in their 
automation, scripts, and documentation to ensure that the correct options are 
being used.
 
 Some key changes that users may encounter are:
@@ -55,10 +55,11 @@ Some key changes that users may encounter are:
  * `-z`/`--zk-host` is now supported across all `bin/solr` tools as an 
alternative to `-s`/`--solr-url`.
  * `bin/solr` now allows users to specific basic auth credentials via the 
`-u`/`--credentials` option, supplementing the previous 
`SOLR_AUTHENTICATION_OPTS`-based support.
  * Some short and single-letter options have been removed to avoid conflicts 
or in favor to other options.
+ * `bin/solr start` now defaults to starting Solr in SolrCloud mode. Use the 
`--user-managed` switch to start in standalone (user-managed) mode instead.
 
 To learn about the updated options in each CLI tool, use the `--help` option 
or look up the tool in the documentation.
 
-Additionally, the `bin/solr delete` command no longer deletes a configset when 
you delete a collection.  Previously if you deleted a collection, it would also 
delete it's associated configset if it was the only user of it.
+Additionally, the `bin/solr delete` command no longer deletes a configset when 
you delete a collection.  Previously if you deleted a collection, it would also 
delete its associated configset if it was the only user of it.
 Now you have to explicitly provide a  `--delete-config` option to delete the 
configsets.  This decouples the lifecycle of a configset from that of a 
collection.
 
 Several scripts formerly provided with Solr have been removed, including 
`bin/post`, `bin/postlogs`, and `zkcli.sh`.
@@ -72,7 +73,7 @@ Users should instead rely on `bin/solr post` and `bin/solr 
zk` as appropriate.
 The following classes were renamed with some refactorings: `Http2SolrClient` 
to `HttpJettySolrClient`, `ConcurrentUpdateHttp2SolrClient` to 
`ConcurrentUpdateJettySolrClient`, `LBHttp2SolrClient` to `LBJettySolrClient`.
 `CloudHttp2SolrClient.Builder` has moved to `CloudSolrClient`; users should 
generally have no need to refer to `CloudHttp2SolrClient` or any class/member 
with "http2" in it.
 The builder will check if Jetty `HttpClient` is available and use that, 
otherwise fallback on a JDK based `HttpClient`.
-`CloudJettySolrClient` is new, proving an explicit option.
+`CloudJettySolrClient` is new, providing an explicit option.
 The system property `solr.solrj.http.jetty.customizer` (formerly 
`solr.httpclient.builder.factory`) can configure a `HttpJettySolrClient`.
 The only built-in implementation is 
`org.apache.solr.client.solrj.jetty.PreemptiveBasicAuthClientCustomizer`, 
renamed from `PreemptiveBasicAuthClientCustomizer`.
 
@@ -88,8 +89,10 @@ This makes it clear that they pertain specifically to 
“JavaBin” rather than
 
 * The deprecated SolrClient implementations based on Apache HttpClient are 
removed from SolrJ,  thus the related dependencies are no longer present.
 
-* A number of classes moved to different packages to be better organized, 
including:
-ShardTerms, DelegatingClusterStateProvider, JavaBinRequestWriter, 
RoutedAliasTypes, SolrQuery, XMLRequestWriter, JacksonContentWriter, 
FastStreamingDocsCallback, InputStreamResponse, InputStreamResponseParser, 
JavaBinResponseParser, ResponseParser, StreamingJavaBinResponseParser, 
StreamingResponseCallback, XMLResponseParser, JacksonDataBindResponseParser, 
JsonMapResponseParser, SocketProxy
+* The `SolrQuery` class has moved from 
`org.apache.solr.client.solrj.SolrQuery` to 
`org.apache.solr.client.solrj.request.SolrQuery`. Update your imports 
accordingly.
+
+* A number of other classes moved to different packages to be better 
organized, including:
+ShardTerms, DelegatingClusterStateProvider, JavaBinRequestWriter, 
RoutedAliasTypes, XMLRequestWriter, JacksonContentWriter, 
FastStreamingDocsCallback, InputStreamResponse, InputStreamResponseParser, 
JavaBinResponseParser, ResponseParser, StreamingJavaBinResponseParser, 
StreamingResponseCallback, XMLResponseParser, JacksonDataBindResponseParser, 
JsonMapResponseParser, SocketProxy
 
 === SolrCloud Overseer
 
@@ -109,7 +112,7 @@ If you are using any 
xref:configuration-guide:cluster-singleton-plugins.adoc[clu
 
 In general, most users won't notice a difference.
 Commands should execute faster without the Overseer.
-Debugging some SolrCloud problems with the Overseer is more challenging than 
without since the Overseer is complex (a principal reason for it's disablement).
+Debugging some SolrCloud problems with the Overseer is more challenging than 
without, since the Overseer is complex (a principal reason for its disablement).
 But the Overseer centralized some processing that results in efficiencies for 
large clusters in some scenarios.
 If you have a collection that has many replicas (hundreds), and many are 
co-located on the same node, then node stops and starts will internally 
interact with ZooKeeper more.
 Using 
xref:configuration-guide:configuring-solr-xml.adoc[minStateByteLenForCompression]
 will help.
@@ -128,14 +131,24 @@ If only one node is exposed to a client, and if the 
client uses the bin/solr exp
 
 === Modern NLP Models from Apache OpenNLP with Solr
 
-Solr now lets you access models encoded in ONNX format, commonly sourced from 
HuggingFace.
-The DocumentCategorizerUpdateProcessorFactorythat lets you perform sentiment 
and other classification tasks on fields.
+Solr now lets you access models encoded in ONNX format, commonly sourced from 
Hugging Face.
+The `DocumentCategorizerUpdateProcessorFactory` lets you perform sentiment and 
other classification tasks on fields.
 It is available as part of the `analysis-extras` module.
 
+=== New Experimental Admin UI
+
+A new experimental Admin UI is available alongside the existing Admin UI 
(SOLR-14414).
+It can be accessed at the URL path `/solr/ui/`.
+This UI is still in active development and provided as a preview; the existing 
Admin UI remains the default.
+
 === Vector Search Enhancements
 
 * The `efSearchScaleFactor` parameter is now available for the KNN query 
parser (SOLR-17928). This parameter controls how many candidate vectors are 
explored during HNSW graph traversal, allowing users to independently tune 
search accuracy versus the number of results returned. Previously, improving 
accuracy required increasing `topK` (which returns more results), but 
`efSearchScaleFactor` enables exploring more candidates while still receiving 
exactly `topK` results. The `efSearch` valu [...]
 
+* Scalar and binary quantized dense vectors are now supported for 
`DenseVectorField` (SOLR-17780, SOLR-17812). Quantization reduces memory 
consumption and can improve search performance at some cost to accuracy. See 
the reference guide for configuration details.
+
+* GPU-accelerated approximate nearest neighbor search is now available via the 
cuVS-Lucene pluggable codec (SOLR-17892). This allows NVIDIA GPU hardware to be 
used for vector search workloads.
+
 === Deprecation Code Removals
 
 * Several deprecated modules have been removed.
@@ -143,21 +156,19 @@ It is available as part of the `analysis-extras` module.
 ** `analytics` has been removed
 ** `hadoop-auth` (including the `solr.KerberosPlugin` class) has been removed
 
-* `OpenTracing` libraries were removed and replaced with `OpenTelemetry` 
libraries. Any Java agents providing `OpenTracing` tracers will no longer work. 
Telemetry tags `http.status_code` and `http.method` have been deprecated, newer 
version of the tags have been added to the span data: 
`http.response.status_code`, `http.request.method`.
+* `OpenTracing` libraries were removed and replaced with `OpenTelemetry` 
libraries. Any Java agents providing `OpenTracing` tracers will no longer work. 
Telemetry tags `http.status_code` and `http.method` have been deprecated, newer 
versions of the tags have been added to the span data: 
`http.response.status_code`, `http.request.method`.
 
 * The sysProp `-Dsolr.redaction.system.pattern`, which allows users to provide 
a pattern to match sysProps that should be redacted for sensitive information,
 has been removed. Please use `-Dsolr.hiddenSysProps` or the envVar 
`SOLR_HIDDEN_SYS_PROPS` instead.
 
 * The `<hiddenSysProps>` solr.xml element under `<metrics>` has been removed. 
Instead use the `<hiddenSysProps>` tag under `<solr>`, which accepts a 
comma-separated string.
-Please see `-Dsolr.redaction.system.pattern`, which allows users to provide a 
pattern to match sysProps that should be redacted for sensitive information,
-has been removed. Please use `-Dsolr.hiddenSysProps` or the envVar 
`SOLR_HIDDEN_SYS_PROPS` instead.
 
 * The node configuration file `/solr.xml` can no longer be loaded from 
Zookeeper. Solr startup will fail if it is present.
 
 * The legacy Circuit Breaker named `CircuitBreakerManager` is removed. Please 
use individual Circuit Breaker plugins instead.
 
-* BlobRepository and BlobHandler have both been removed in favour of the 
`FileStore` API implementation (per node stored file).
-To share resource intensive objects across multiple cores in components you 
should now use the `CoreContainer.getObjectCache` approach
+* `BlobRepository`, `BlobHandler`, and the `.system` collection have all been 
removed in favour of the `FileStore` API implementation (SOLR-17851).
+To share resource-intensive objects across multiple cores in components you 
should now use the `CoreContainer.getObjectCache` approach.
 
 * The language specific Response Writers, which were deprecated in 9.8 in 
favour of more widely used formats like JSON have been removed.
 The removed writer types (invoked as part of the `wt` parameter) include 
`python`, `ruby`, `php`, and `phps`.
@@ -168,7 +179,7 @@ The removed writer types (invoked as part of the `wt` 
parameter) include `python
 
 * Support for the `<lib/>` directive, which historically could be used in 
solrconfig.xml to add JARs on a core-by-core basis, was deprecated in 9.8 and 
has now been removed.
 Users that need to vary JAR accessibility on a per-core basis can use Solr's 
xref:configuration-guide:package-manager.adoc[Package Manager].
-Users who that don't need to vary JAR access on a per-core basis have several 
options, including the 
xref:configuration-guide:configuring-solr-xml.adoc[`<sharedLib/>` tag supported 
by solr.xml] or manipulation of Solr's classpath prior to JVM startup.
+Users who don't need to vary JAR access on a per-core basis have several 
options, including the 
xref:configuration-guide:configuring-solr-xml.adoc[`<sharedLib/>` tag supported 
by solr.xml] or manipulation of Solr's classpath prior to JVM startup.
 
 * Storing indexes and snapshots in HDFS has been removed.  This results in 
changes to solrconfig.xml and related configuration files and removal of the 
`hdfs` module.
 
@@ -187,17 +198,13 @@ Nowadays, the HTTP request is available via internal 
APIs: `SolrQueryRequest.get
 
 * The TieredMergePolicy's segmentsPerTier default changed to `8` but `10` may 
be configured to retain prior behaviour. (SOLR-17917).
 
-* BlobHandler and the `.system` collection have been removed in favour of 
FileStore API.  (SOLR-17851).
-
 * The deprecated transient Solr cores capability has been removed.  
(SOLR-17932)
 
-* TikaLanguageIdentifierUpdateProcessor, which was deprecated in 9.10, has 
been removed. Users should use LangDetectLanguageIdentifierUpdateProcessor or 
OpenNLPLangDetectUpdateProcessor instead for language detection. (SOLR-17960)
+* `TikaLanguageIdentifierUpdateProcessor`, which was deprecated in 9.10, has 
been removed. Users should use `LangDetectLanguageIdentifierUpdateProcessor` or 
`OpenNLPLangDetectUpdateProcessor` instead for language detection. (SOLR-17960)
 
-* LocalTikaExtractionBackend, which was deprecated in 9.10, has been removed. 
The 'tikaserver' extraction backend is now the only supported backend for the 
ExtractingRequestHandler, and the default. Users must configure a Tika Server 
URL via the `tikaserver.url` parameter. (SOLR-17961)
+* `LocalTikaExtractionBackend`, which was deprecated in 9.10, has been 
removed. The `tikaserver` extraction backend is now the only supported backend 
for the ExtractingRequestHandler, and the default. Users must configure a Tika 
Server URL via the `tikaserver.url` parameter. (SOLR-17961). Also, the ability 
to configure Tika parse context with `parseContext.config` is no longer 
supported. Tika parser-specific properties must now be configured directly on 
the Tika Server itself, rather tha [...]
 
-+NOTE: The previous parse-context-based configuration (`parseContext.config`) 
is no longer supported. Tika parser-specific properties must now be configured 
directly on the Tika Server itself, rather than through Solr configuration. 
Please refer to the Tika Server documentation for details on how to set these 
properties.
-
-* The Prometheus exporter, JMX, SLF4J and Graphite metric reporters have been 
removed. Users should migrate to using OTLP or the `/admin/metrics` endpoint 
with external tools to get metrics to their preferred backend such as the 
link:https://opentelemetry.io/docs/collector/[OTEL Collector].
+* The Prometheus exporter, JMX, SLF4J and Graphite metric reporters have been 
removed. Prometheus metrics (node-scoped) are now available natively via the 
`/admin/metrics` endpoint on each solr node (see <<OpenTelemetry>> section 
below). Users can also push metrics via OTLP to any OTLP-supported backend such 
as the link:https://opentelemetry.io/docs/collector/[OTEL Collector].
 
 * The deprecated `JaspellLookupFactory` suggester implementation has been 
removed. The default suggester lookup implementation is now `FSTLookupFactory`, 
which provides better memory efficiency.
 
@@ -207,13 +214,13 @@ Nowadays, the HTTP request is available via internal 
APIs: `SolrQueryRequest.get
 
 * The deprecated `LowerCaseTokenizer` and `LowerCaseTokenizerFactory` have 
been removed. These classes were deprecated in Solr 8 and can be replaced by 
combining `LetterTokenizerFactory` with `LowerCaseFilterFactory`.
 
-* The deprecated 'solrcore.properties` configuration method has been removed.  
The ability to configure a core via a custom properties file using the 
`core.proprties` "property" setting remains.
+* The deprecated `solrcore.properties` configuration method has been removed.  
The ability to configure a core via a custom properties file using the 
`core.properties` "property" setting remains.
 
 === Security
 
 * There is no longer a distinction between trusted and untrusted configSets; 
all configSets are now considered trusted. To ensure security, Solr should be 
properly protected using authentication and authorization mechanisms, allowing 
only authorized users with administrative privileges to publish them.
 
-* `stream.file`, `stream.url`, and `stream.body` params are no longer 
supported..
+* `stream.file`, `stream.url`, and `stream.body` params are no longer 
supported.
 
 === Upgrade to Jetty 12.x and Jakarta namespace
 
@@ -240,7 +247,7 @@ The OS version of the official Docker image and provided 
Dockerfile has been upg
 
 === Miscellaneous
 
-Solr logs no longer include webapp=/solr and there's no longer a "webapp" 
key-value pair in the internal context.
+Solr logs no longer include `webapp=/solr` and there's no longer a `webapp` 
key-value pair in the internal context.
 
 === Analysis and Tokenizers
 
@@ -248,8 +255,6 @@ Solr logs no longer include webapp=/solr and there's no 
longer a "webapp" key-va
 
 Due to Lucene 10 changes (https://github.com/apache/lucene/pull/12875), 
`PathHierarchyTokenizer` now produces sequential tokens (position increment = 
1) instead of overlapping tokens (position increment = 0). This affects 
ancestor queries that relied on overlapping token matching. Users should test 
existing queries and update configurations if needed.
 
-* In Lucene 10, the `OrdinalIterator` class has been moved from the main 
`lucene-facet` module to the `lucene-sandbox` module. This requires Solr core 
to now include a dependency on `lucene-sandbox` to support faceting operations 
that use this class.
-
 *Example configuration change:*
 [source,xml]
 ----

Reply via email to