Solr Upgrade Notes
The following notes describe changes to Solr in recent releases that you should be aware of before upgrading.
These notes highlight the biggest changes that may impact the largest number of implementations. It is not a comprehensive list of all changes to Solr in any release.
When planning your Solr upgrade, consider the customizations you have made to
your system and review the CHANGES.txt
file found in your Solr package. That file includes all the changes and updates
that may effect your existing implementation.
Detailed steps for upgrading a Solr cluster are in the section Upgrading a Solr Cluster.
Upgrading to 8.x Releases
If you are upgrading from 7.x, see the section Upgrading from 7.x Releases below.
Solr 8.8
See the 8.8 Release Notes for an overview of the main new features of Solr 8.8.
When upgrading to 8.8.x users should be aware of the following major changes from 8.7.
Nested Documents
When doing atomic/partial updates to a child document:
Supply the
_root_field (the ID of the root document) so that Solr understands you are manipulating a child document and not a root document. In its absence, Solr looks at the_route_parameter but this may change in the future because it’s not an ideal substitute. If neither are present, Solr assumes you are updating a root document. If this assumption is false, Solr will do a cheap check that usually detects the problem and will throw an exception to alert you of the need to specify the Root ID. This backwards incompatible change was done to increase performance and robustness.This feature no longer requires
stored=trueordocValues=trueon the_root_field. You might have it for other purposes though (e.g., foruniqueBlock(…)).This feature no longer requires the
_nest_path_field, although you probably ought to continue to define it as it’s useful for other things.
Removed Contribs
The search results clustering contrib (Carrot2) has been removed from 8.x Solr due to lack of Java 1.8 compatibility in the dependency that provides online clustering of search results. The contrib will be re-introduced in Solr 9.0.
Learning to Rank
Interleaving support has been added to Learning to Rank (LTR). Currently only the Team Draft Interleaving algorithm is supported. For examples using this feature, see the section Running a Rerank Query Interleaving Two Models.
Metrics
Two metrics have been added for SolrCloud’s Overseer:
solr_metrics_overseer_stateUpdateQueueSizesolr_metrics_overseer_collectionWorkQueueSize
Prometheus Exporter
The
./binscripts included with the Prometheus Exporter contrib now allow use of custom java options with environment variables. See the section Environment Variable Options for more details.The default Grafana dashboards now include panels for query performance monitoring. The default Prometheus Exporter configuration includes metrics like queries-per-second (QPS) and 95th percentiles (P95) to populate the new panels.
The default Prometheus Exporter configuration also includes the two new metrics mentioned in the Metrics above.
Solr Home
The internal logic for identifying 'Solr Home' (
solr.solr.home) has been refactored to make testing less error prone. Plugin developers usingSolrPaths.locateSolrHome()or 'new `SolrResourceLoader’ should check deprecation warnings as existing some existing functionality will be removed in 9.0. SOLR-14934 has more technical details about this change for those concerned.
Removing base_url from Stored State
If you’re able to upgrade SolrJ to 8.8.x for all of your client applications, then you can set -Dsolr.storeBaseUrl=false to
better align the stored state in Zookeeper with future versions of Solr; as of Solr 9.x, the base_url 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
leave solr.storeBaseUrl=true (the default) so that Solr will continue to store the base_url in Zookeeper.
Solr 8.7
See the 8.7 Release Notes for an overview of the main new features of Solr 8.7.
When upgrading to 8.7.x users should be aware of the following major changes from 8.6.
Autoscaling
If upgrading from 8.6.0, please see the 8.6.1 Upgrade notes below for information on performance degradations introduced in 8.6.0 that require some intervention to resolve. If you are already on 8.6.1 or higher, you can ignore these instructions.
Deprecations
The autoscaling framework is now formally deprecated and will be removed in Solr 9.0. The Solr community is working on pluggable API to replace this functionality, with the goal for it to be ready by the time 9.0 is released. Deprecations include: autoscaling policy, triggers,
withCollectionsupport, simulation framework, autoscaling suggestions tab in the UI,autoAddReplicasandUTILIZENODEcommand.Similarly, rule-based replica placement strategy has been deprecated and will be replaced in Solr 9.0 by APIs for replica placement and cluster events, with plugin-based implementations.
Support for detecting spinning disks will be removed in Lucene 9.0 (LUCENE-9576). Corresponding
spinsmetrics in Solr are deprecated and will be removed in Solr 9.0.
Legacy Scaling (non-SolrCloud) Terminology Updated
Solr has replaced the terms "master" and "slave" in the codebase and all documentation with "leader" and "follower".
This impacts the functionality described in the section Legacy Scaling and Distribution. This functionality has only changed in terms of parameter names changed, and we do not expect any back-compatibility issues on upgrade to 8.7 or even 9.0 later.
However, users should update their
solrconfig.xmlfiles after completing the upgrade on all nodes of a cluster. Comparing your configuration to the updated configuration examples in Index Replication will show examples of what needs to change, but here are the main changes:- On the replication leader, in the definition of the
/replicationrequest handler:- Replace "master" with "leader".
- Replace "slave" with "follower" if the former term is used in the name of any follower
solrconfig.xmlfile definitions. This file can be named anything, so you can change it to whatever you’d like to call it if you’d like. - Replace "slave" with "follower" if the former term is used in a replication repeater configuration.
- On the replication follower, in the definition of the
/replicationrequest handler:- Replace "masterUrl" with "leaderUrl".
- Replace "slave" with "follower" if the former term is used in a repeater configuration.
- On the replication leader, in the definition of the
JSON Facets
Performance enhancements for the
relatedness()statistics function are included with 8.7. These yield the highest benefits with high-cardinality fields and can be disabled if working with lower cardinality fields with a newsweep_collectionparameter. See the section relatedness() Options for details.
solr.in.sh / solr.in.cmd
Solr has relied on the
SOLR_STOP_WAITparameter defined insolr.in.shorsolr.in.cmdto determine how long to wait on startup. A new parameterSOLR_START_WAITallows defining how long Solr should wait for start up to complete.If the time set by this parameter is exceeded, Solr will exit the startup process and return the last few lines of the
solr.logfile to the terminal.By default, this parameter is set to the same value as
SOLR_STOP_WAIT.The default ZooKeeper client timeout (
ZK_CLIENT_TIMEOUT) is now 30 seconds (30000milliseconds) instead of 15.
Configsets
It’s now possible to overwrite an existing configset when uploading changes by supplying the
overwrite=trueparameter to the Configset API.A related parameter is
cleanup=true, which allows deleting any files from the old configset that are left behind after the overwrite.The default for both of these parameters is
false.When deleting a collection that has an automatically created configset (i.e., the configset was copied from the
_defaultcollection when the collection was created), the configset will also be deleted if it is not in use by any other collection.
Logging
A request ID (
rid) is now logged for all distributed search requests (in SolrCloud) which can be used to correlate query events across the system. A parameterdisableRequestId=truecan be added to disable this if desired.
Solr 8.6.1
See the 8.6.1 Release Notes for an overview of the fixes included in Solr 8.6.1.
When upgrading to 8.6.1 users should be aware of the following major changes from 8.6.0.
Autoscaling
As mentioned in the 8.6 upgrade notes, a default autoscaling policy was provided starting in 8.6.0. This default autoscaling policy resulted in increasingly slow collection creation calls in large clusters (50+ collections).
In 8.6.1 the default autoscaling policy has been removed, and clusters will not use autoscaling unless a policy has explicitly been created. If your cluster is running 8.6.0 and not using an explicit autoscaling policy, upgrade to 8.6.1 and remove the default cluster policy and preferences via the following command.
Replace
localhost:8983with your Solr endpoint.curl -X POST -H 'Content-type:application/json' -d '{set-cluster-policy : [], set-cluster-preferences : []}' http://localhost:8983/api/cluster/autoscalingFor more details on autoscaling policies, see the section Cluster Policy.
This information is only relevant for users upgrading from 8.6.0. If upgrading from an earlier version to 8.6.1+, this warning can be ignored.
Solr 8.6
See the 8.6 Release Notes for an overview of the main new features of Solr 8.6.
When upgrading to 8.6.x users should be aware of the following major changes from 8.5.
Support for Block-Max WAND
Lucene added support for Block-Max WAND in 8.0, and 8.6 makes this available for Solr also.
This can provide significant performance enhancements by not calculating the score for results which are not likely to appear in the top set of results.
It is enabled when using a new query parameter minExactCount.
This parameter tells Solr to accurately count the number of hits accurately until at least this value.
Once this value is reached, Solr can skip over documents that don’t have a score high enough to be in the top set of documents, which has the potential for greatly speeding up searches.
It’s important to note that when using this parameter, the hit count of searches may not be accurate.
It is guaranteed that the hit count is accurate up to the value of minExactCount, but any returned hit count higher than that may be an approximation.
A new boolean attribute numFoundExact is included in all responses to indicate if the hit count in the response is expected to be exact or not.
More information about this new feature is available in the section minExactCount Parameter.
Autoscaling
NOTE: The default autoscaling policy has been removed as of 8.6.1
Solr now includes a default autoscaling policy. This policy can be overridden with your custom rules or by specifying an empty policy to replace the default.
For details of the default policy, see the section Cluster Policy.
The ComputePlan action now supports a collection selector to identify collections based on collection properties to determine which collections should be operated on.
Security
Prior to Solr 8.6 Solr APIs which take a file system location, such as core creation, backup, restore, and others, did not validate the path and Solr would allow any absolute or relative path. Starting in 8.6 only paths that are relative to
SOLR_HOME,SOLR_DATA_HOMEandcoreRootDirare allowed by default.If you need to create a core or store a backup outside the default paths, you will need to tell Solr which paths to allow. A new element in
solr.xmlcalledallowPathstakes a comma-separated list of allowed paths.When using the
solr.xmlfile that ships with 8.6, you can configure the list of paths to allow through the system propertysolr.allowPaths. Please seebin/solr.in.shorbin\solr.in.cmdfor example usage. Using the value*will allow any path as in earlier versions.For more on this, see the section Solr.xml Parameters.
Windows SMB shares on the UNC format, such as
\\myhost\myshare\mypathare now always disallowed. Please use drive letter mounts instead, i.e.,S:\mypath.A new authorization plugin
ExternalRoleRuleBasedAuthorizationPluginis now available. This plugin allows an authentication plugin (such as JWT) to supply a user’s roles instead of maintaining a user-to-role mapping inside Solr.When authentication is enabled, the Admin UI Dashboard (main screen) now includes a panel that shows the authentication and authorization plugins in use, the logged in username, and the roles assigned to this user. A new link will also appear in the left-hand navigation to allow a user to log out.
Streaming Expressions
The
/exporthandler now supports streaming expressions to allow limiting the output of the export to only matching documents.For more information about how to use this, see the section Specifying the Local Streaming Expression.
The
stats,facet, andtimeseriesexpressions now support percentiles and standard deviation aggregations.
Highlighting
For the Unified Highlighter: The setting hl.fragsizeIsMinimum now defaults to false because true was found to be a significant performance regression when highlighting lots of text.
This will yield longer highlights on average compared to Solr 8.5 but relatively unchanged compared to previous releases.
Furthermore, if your application highlights lots of text, you may want to experiment with lowering hl.fragAlignRatio to trade ideal fragment alignment for better performance.
Deprecations
A primary focus of the community is improving Solr’s stability and supportability. With the addition of the package manager system in 8.4, we now have the ability to move some features into plugins maintained by third-parties with the expertise to properly develop and support them. Our goal is to make running Solr easier and less prone to outages and other headaches. In this spirit, the following features have been deprecated and are slated to be removed in Solr 9.0.
Cross Data Center Replication (CDCR), in its current form, is deprecated and is scheduled to be removed in 9.0. This feature is unlikely to be replaced by an identical plugin. However, the community is working on figuring out a replacement feature for disaster recovery and failover.
The Data Import Handler (DIH) is deprecated and is scheduled to be removed in 9.0. Work to replace DIH with a community-supported plugin is underway and may be available soon.
Support to store indexes and backups in HDFS is deprecated and is scheduled to be removed in 9.0. A community-supported version of this may be available as a plugin in the future. For more details, please see SOLR-14021.
Users interested in maintaining a feature as a plugin are encouraged to join the developer mailing list to find out more about how to help.
Solr 8.5
See the 8.5 Release Notes for an overview of the main new features of Solr 8.5.
When upgrading to 8.5.x users should be aware of the following major changes from 8.4.
Note: an index incompatibility warning was retroactively added below to 8.4 for users choosing a non-default postings format (e.g., "FST50").
Considerations for a SolrCloud Upgrade
Solr 8.5 introduces a change in the format used for the elements in the Overseer queues and maps (see SOLR-14095 for technical discussion of the change). This queue is used internally by the Overseer to reliably handle operations, to communicate operation results between the Overseer and the coordinator node, and by the REQUESTSTATUS API for displaying information about async Collection operations.
This change won’t require you to change any client-side code you should see no differences on the client side. However, it does require some care when upgrading an existing SolrCloud cluster depending on your upgrade strategy.
If you are upgrading Solr with an atomic restart strategy:
If you don’t use async or REQUESTSTATUS operations, you should be able to restart and not see any issues.
If you do use Collection API operations:
- Pause Collection API operations.
- Cleanup queues (See the section DELETESTATUS for examples) if you use async operations.
- Upgrade and restart the nodes.
- Resume all normal operations.
If you are upgrading Solr with a rolling restart strategy:
If you don’t use Collection API operations, you should be able to do a rolling restart and not see any issues.
If you do use Collection API operations, but you can pause their use during the restart the easiest way is to:
- Pause Collection API operations.
- Upgrade and restart all nodes.
- Cleanup queues (See the section DELETESTATUS for examples) if you use async operations.
- Resume all normal operations.
If you use Collection API operations and can’t pause them during the upgrade:
- Start 8.5 nodes with the system property:
-Dsolr.useUnsafeOverseerResponse=deserialization. Ensure the Overseer node is upgraded last. - Once all nodes are in 8.5 and once you don’t need to read old status anymore, restart again removing the system property.
If you prefer to keep the old (but insecure) serialization strategy, you can start your nodes using the system
property: -Dsolr.useUnsafeOverseerResponse=true. Keep in mind that this will be removed in future version of Solr.
Security Manager
Solr now has the ability to run with a Java security manager enabled. To enable this, set the property SOLR_SECURITY_MANAGER_ENABLED=true in solr.in.sh or solr.in.cmd. Note that if you are using HDFS to store indexes, you cannot enable the security manager.
In Solr 9.0, this will be the default.
See also the section Enable Security Manager.
Block/Allow Specific IPs
Solr has two new parameters to allow you to restrict access to Solr using IP addresses. Use SOLR_IP_WHITELIST to configure a whitelist, and SOLR_IP_BLACKLIST to configure a blacklist. These properties are defined in solr.in.sh or solr.in.cmd.
See also the section Enable IP Access Control.
BlockJoin Facet Deprecation
The BlockJoinFacetComponent is marked for deprecation and will be removed in 9.0.
Users are encouraged to migrate to uniqueBlock() in JSON Facet API.
More information about this is available in the section Block Join Domain Changes.
Caching with the Boolean Query Parser
By default, the Boolean Query Parser caches queries in Solr’s filterCache. It’s now possible to disable this with the local param cache=false.
Indexing Log Files
Solr now includes a command line tool, bin/postlogs which will index Solr’s log files into a collection.
This provides an easy way to use Solr or visualization tools (such as Zeppelin) to troubleshoot problems with the system.
This tool is not yet officially documented in the Reference Guide, but draft documentation is available in a branch and can be accessed via GitHub.
Highlighting
Solr’s Unified Highlighter now has two parameters to help control passage sizing, hl.fragAlignRatio and hl.fragsizeIsMinimum.
See the section The Unified Highlighter for details about these new parameters.
Regardless of the settings, the passages may be sized differently than before.
Warning: These default settings were found to be a significant performance regression for apps that highlight lots of text with the default sentence break iterator.
See the 8.6 upgrade notes for advise you can apply in 8.5.
Shared Library System Parameter
Solr’s solr.xml file has long had support for a sharedLib parameter, which allows you to define a common location for .jar files that may need to be in the path for all cores.
This property can now be defined in solr.in.sh or solr.in.cmd as a system property (-Dsolr.sharedLib=/path/to/lib) added to SOLR_OPTS (see solr.in.sh or solr.in.cmd for details).
Solr 8.4
See the 8.4 Release Notes for an overview of the main new features of Solr 8.4.
When upgrading to 8.4.x users should be aware of the following major changes from 8.3.
Reminder: If you set the postingsFormat or docValuesFormat in the schema in order to use a non-default option, you risk preventing yourself from upgrading your Lucene/Solr software at future versions.
Multiple non-default postings formats changed in 8.4, thus rendering the index data from a previous index.
This includes "FST50" which was recommended by the Solr TaggerHandler for performance reasons.
There is now improved documentation to navigate this trade-off choice.
Package Management System
Version 8.4 introduces a package management system to Solr. The goals of the system are to allow hot (live) deployment of plugins, provide packaging guidelines for plugins, and standardize Solr’s approach by following familiar concepts used in other package management systems.
The system is designed to eventually replace use of the <lib ../> directive,
the Blob Store, and other methods of deploying plugins and custom components
to Solr.
The system is currently considered experimental, so use with caution. It must be enabled with a system parameter passed at start up before it can be used. For details, please see the section Package Management.
With this feature Solr’s Blob Store functionality is now deprecated and will likely be removed in 9.0.
Security
The follow mix of changes were all made with the intention of making Solr more secure out of the box.
The
solrconfig.xmlfile in Solr’s_defaultconfigset has been trimmed of the following previously pre-configured items:All
<lib …/>directives. This means that Solr Cell (aka Tika), Learning to Rank, Clustering (with Carrot2), language identification, and Velocity (for the/browsesample search interface) are no longer enabled out of the box.The
/browse,/tvrh, and/update/extractrequest handlers.The Term Vector Component.
The XSLT and Velocity response writers.
All of these items can be added to your Solr implementation by manually editing
solrconfig.xmlto add them back in, or use the Config API.The
sample_techproducts_configsand the examples found in./exampleare unchanged.
Configsets that have been uploaded with an unsecured Configset API (i.e., when authentication is not enabled) are considered "Untrusted Configsets".
In order to bolster Solr’s out-of-the-box security, these untrusted configsets are no longer allowed to use the
<lib …/>directive to implement contribs or custom Jars.When upgrading to 8.4, if you are using untrusted configsets that contain
<lib ../>directives, their corresponding collections will not load (they will cease to work). You have a few options in this case:You can secure your Solr instance with authentication and re-upload the configset (using the
bin/solr zk upconfig …Solr CLI command);You can put your custom Jars in Solr’s classpath instead of
libdirectories;You can try the new package management system to manage your custom Jars.
See the section Upload a Configset for more details about trusted vs. untrusted configsets.
Our default Jetty configuration has been updated to now set a Content-Security-Policy (CSP) by default. See
./server/etc/jetty.xmlfor details about how it is configured.As a result of this change, any custom HTML served by Solr’s HTTP server that contains inline Javascript will no longer execute in modern browsers. The options for you are:
Change your JavaScript code to not run inline any longer;
Edit
jetty.xmlto remove CSP (creating weaker security protection);Remove/alter the headers with a reverse proxy.
Solr’s Blob Store and runtime libs functionality are now deprecated and are planned to be removed from Solr in version 9.0. It has been replaced with the new package management system.
The Velocity response writer is also now deprecated and is planned to be removed from Solr in version 9.0.
Using Collapse with Group Disallowed
Using the CollapsingQueryParser with Result Grouping has never been supported as it causes inconsistent behavior and NullPointerException errors. We have now explicitly disallowed this combination to prevent these errors. If you are using these together, you will need to modify your queries.
SolrJ
SolrJ now supports the
shards.preferenceparameter for single-shard scenarios to ensure multi-shard and single-shard request routing works in the same way.See Cloud Request Routing and shards.preference Parameter for details.
QueryResponse.getExplainMap()type has changed fromMap<String, String>toMap<String, Object>in order to support structured explanations.This change is expected to be mostly back-compatible. Compiled third-party components will work the same due to type erasure, but source code changes may be required.
Replica routing code has been moved to SolrJ, making those classes available to clients if necessary.
Streaming Expressions
A new DBSCAN clustering streaming evaluator has been added.
The
precisionstream evaluator can now operate on matrices.The
randomstreaming expression can now create the x-axis.
JSON Facets
Two new aggregations have been added:
missingandcountvals.Several aggregations now support multi-valued fields:
min,max,avg,sum,sumsq,stddev,variance, andpercentile.
Caches
After the addition of
CaffeineCachein 8.3, legacy SolrCache implementations are deprecated and likely to be removed in 9.0.Users are encouraged to transition their cache configurations to use
org.apache.solr.search.CaffeineCacheas soon as feasible.
Solr 8.3
See the 8.3 Release Notes for an overview of the main new features of Solr 8.3.
When upgrading to 8.3.x users should be aware of the following major changes from 8.2.
JWT Authentication
JWT Authentication now supports multiple identity providers.
To allow this, the parameter jwkUrl has been deprecated and replaced with jwksUrl.
Implementations using jwkUrl will continue to work as normal, but users
should plan to transition their configurations to use jwksUrl instead as
soon as feasible.
Caches
Solr has a new cache implementation,
CaffeineCache, which is now recommended over other caches. This cache is expected to generally provide most users lower memory footprint, higher hit ratio, and better multi-threaded performance.Since caching has a direct impact on the performance of your Solr implementation, before switching to any new cache implementation in production, take care to test for your environment and traffic patterns so you fully understand the ramifications of the change.
A new parameter,
maxIdleTime, allows automatic eviction of cache items that have not been used in the defined amount of time. This allows the cache to release some memory and should aid those who want or need to fine-tune their caches.
See the section Query Settings in SolrConfig for more details about these and other cache options and parameters.
Solr 8.2
See the 8.2 Release Notes for an overview of the main new features of Solr 8.2.
When upgrading to 8.2.x, users should be aware of the following major changes from v8.1.
ZooKeeper 3.5.5
Solr 8.2 updates the version of ZooKeeper included with Solr to v3.5.5.
It is recommended that external ensembles set up to work with Solr also be updated to ZooKeeper 3.5.5.
This ZooKeeper release includes many new security features.
In order for Solr’s Admin UI to work with 3.5.5, the zoo.cfg file must allow access to ZooKeeper’s "four-letter commands".
At a minimum, ruok, conf, and mntr must be enabled, but other commands can optionally be enabled if you choose.
See the section Configuration for a ZooKeeper Ensemble for details.
| Until 8.3, SOLR-13672 causes the ZK Status screen in the Admin UI to not be able to report status. This only impacts the UI, ZooKeeper still operates correctly. |
Routed Aliases
Routed aliases now use collection properties to identify collections that belong to the alias; prior to 8.2, these aliases used core properties.
This is backward-compatible and aliases created with prior versions will continue to work. However, new collections will no longer add the
routedAliasNameproperty to thecore.propertiesfile so any external code depending on this location will need to be updated.
Time-routed aliases now include a
TRAinfix in the collection name, in the pattern<alias>_TRA_<timestamp>.
Collections created with older versions will continue to work.
Distributed Tracing Support
This release adds support for tracing requests in Solr. Please review the section Distributed Solr Tracing for details on how to configure this feature.
Solr 8.1
See the 8.1 Release Notes for an overview of the main new features of Solr 8.1.
When upgrading to 8.1.x, users should be aware of the following major changes from v8.0.
Global maxBooleanClauses Parameter
The behavior of the
maxBooleanClausesparameter has changed to reduce the risk of exponential query expansion when dealing with pathological query strings.A default upper limit of 1024 clauses is now enforced at the node level. This was the default prior to 7.0, and it can be overridden with a new global parameter in
solr.xml. This limit will be enforced for all queries whether explicitly defined by the user (or client), or created by Solr and Lucene internals.An identical parameter is available in
solrconfig.xmlfor limiting the size of queries explicitly defined by the user (or client), but this per-collection limit will still be restricted by the global limit set insolr.xml.If your use case demands that you a lot of OR or AND clauses in your queries, upon upgrade to 8.1 you may need to adjust the global
maxBooleanClausesparameter since between 7.0 and 8.1 the limit was effectively unbounded.For more information about the new parameter, see the section Format of solr.xml: maxBooleanClauses.
Security
JSON Web Tokens (JWT) are now supported for authentication. These allow Solr to assert a user is already authenticated via an external identity provider, such as an OpenID Connect-enabled IdP. For more information, see the section JWT Authentication Plugin.
A new security plugin for audit logging has been added. A default class
SolrLogAuditLoggerPluginis available and configurable insecurity.json. The base class is also extendable for adding custom audit plugins if needed. See the section Audit Logging for more information.
Collections API
The output of the REQUESTSTATUS command in the Collections API will now include internal asynchronous requests (if any) in the "success" or "failed" keys.
The CREATE command will now return the appropriate status code (4xx, 5xx, etc.) when the command has failed. Previously, it always returned
0, even in failure.The MODIFYCOLLECTION command now accepts an attribute to set a collection as read-only. This can be used to block a collection from receiving any updates while still allowing queries to be served. See the section MODIFYCOLLECTION for details on how to use it.
A new command RENAME allows renaming a collection by setting up a one-to-one alias using the new name. For more information, see the section RENAME.
A new command REINDEXCOLLECTION allows indexing existing stored fields from a source collection into a new collection. For more information, please see the section REINDEXCOLLECTION.
Logging
The default Log4j2 logging mode has been changed from synchronous to asynchronous. This will improve logging throughput and reduce system contention at the cost of a slight chance that some logging messages may be missed in the event of abnormal Solr termination.
If even this slight risk is unacceptable, the Log4j configuration file found in
server/resources/log4j2.xmlhas the synchronous logging configuration in a commented section and can be edited to re-enable synchronous logging.
Metrics
The SolrGangliaReporter has been removed from Solr. The metrics library used by Solr, Dropwizard Metrics, was updated to version 4, and Ganglia support was removed from it due to a dependency on the LGPL license.
Browse UI (Velocity)
Velocity and Velocity Tools were both upgraded as part of this release. Velocity upgraded from 1.7 to 2.0. Please see https://velocity.apache.org/engine/2.0/upgrading.html about upgrading. Velocity Tools upgraded from 2.0 to 3.0. For more details, please see https://velocity.apache.org/tools/3.0/upgrading.html for details about the upgrade.
Default Garbage Collector (GC)
Solr’s default GC has been changed from CMS to G1. If you prefer to use CMS or any other GC method, you can modify the
GC_TUNEsection ofsolr.in.sh(*nix) orsolr.in.cmd(Windows).
Upgrading from 7.x Releases
The upgrade from 7.x to Solr 8.0 introduces several major changes that you should be aware of before upgrading. These changes are described in the section Major Changes in Solr 8. It’s strongly recommended that you do a thorough review of that section before starting your upgrade.
| If you run in SolrCloud mode, you must be on Solr version 7.3 or higher in order to upgrade to 8.x. |
Upgrading from Pre-7.x Versions
Users upgrading from versions of Solr prior to 7.x are strongly encouraged to consult CHANGES.txt for the details of all changes since the version they are upgrading from.
The upgrade from Solr 6.x to Solr 7.0 introduced several major changes that you should be aware of before upgrading. Please do a thorough review of the section Major Changes in Solr 7 before starting your upgrade.
A summary of the significant changes between Solr 5.x and Solr 6.0 is in the section Major Changes from Solr 5 to Solr 6.