From 46c09456140fca0244ef726bd18a3ca7c5c7d131 Mon Sep 17 00:00:00 2001 From: David Smiley Date: Sat, 8 Feb 2020 22:41:26 -0500 Subject: [PATCH] SOLR-14149: CHANGES.txt Remove off-topic stuff * No Introduction (to Solr) header. Point at solr-upgrade-notes.adoc instead * No Getting Started header * No Versions of Major Components header * No "Upgrade Notes" for subsequent releases. See solr-upgrade-notes.adoc Closes #1202 --- dev-tools/scripts/addVersion.py | 12 +- solr/CHANGES.txt | 143 +----------------- .../src/solr-upgrade-notes.adoc | 110 ++++++++++++++ 3 files changed, 118 insertions(+), 147 deletions(-) diff --git a/dev-tools/scripts/addVersion.py b/dev-tools/scripts/addVersion.py index 0344151c866..9fb918267dc 100755 --- a/dev-tools/scripts/addVersion.py +++ b/dev-tools/scripts/addVersion.py @@ -200,15 +200,7 @@ def get_solr_init_changes(): return dedent(''' Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. - Versions of Major Components - --------------------- - Apache Tika %(org.apache.tika.version)s - Carrot2 %(/org.carrot2/carrot2-mini)s - Velocity %(/org.apache.velocity/velocity-engine-core)s and Velocity Tools %(org.apache.velocity.tools.version)s - Apache ZooKeeper %(/org.apache.zookeeper/zookeeper)s - Jetty %(org.eclipse.jetty.version)s - - ''' % parse_properties_file('lucene/ivy-versions.properties')) + ''') def main(): if not os.path.exists('lucene/version.properties'): @@ -222,7 +214,7 @@ def main(): update_changes('lucene/CHANGES.txt', newconf.version, '\n', ['Bug Fixes'] if is_bugfix else ['API Changes', 'New Features', 'Improvements', 'Optimizations', 'Bug Fixes', 'Other']) update_changes('solr/CHANGES.txt', newconf.version, get_solr_init_changes(), - ['Bug Fixes'] if is_bugfix else ['Upgrade Notes', 'New Features', 'Improvements', 'Optimizations', 'Bug Fixes', 'Other Changes']) + ['Bug Fixes'] if is_bugfix else ['New Features', 'Improvements', 'Optimizations', 'Bug Fixes', 'Other Changes']) latest_or_backcompat = newconf.is_latest_version or current_version.is_back_compat_with(newconf.version) if latest_or_backcompat: diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index bd007b19e49..badf828db9d 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -1,97 +1,19 @@ Apache Solr Release Notes -Introduction ------------- -Apache Solr is an open source enterprise search server based on the Apache Lucene Java -search library, with XML/HTTP and JSON APIs, hit highlighting, faceted search, -caching, replication, and a web administration interface. - -See http://lucene.apache.org/solr for more information. - - -Getting Started ---------------- -You need a Java 11 VM or later installed. -In this release, there is an example Solr server including a bundled -servlet container in the directory named "example". -See the Solr tutorial at https://lucene.apache.org/solr/guide/solr-tutorial.html +This file lists Solr's raw release notes with details of every change to Solr. +Most people will find the solr-upgrade-notes.adoc file more approachable. +https://github.com/apache/lucene-solr/blob/master/solr/solr-ref-guide/src/solr-upgrade-notes.adoc ================== 9.0.0 ================== Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. -Versions of Major Components +New Features --------------------- -Apache Tika 1.23 -Carrot2 3.16.2 -Velocity 2.0 and Velocity Tools 3.0 -Apache ZooKeeper 3.5.5 -Jetty 9.4.24.v20191120 - -Upgrade Notes ----------------------- - -* LUCENE-8738: Move to Java 11 as minimum Java version. - (Adrien Grand, Uwe Schindler) - -* SOLR-12055 introduces async logging by default. There'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 - see comments in the log4j2 configuration files (log4j2.xml by default). - -* 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 - (Gus Heck). - -* 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 (Gus Heck). - -* 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 (Gus Heck) - -* SOLR-7530: TermsComponent'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 - (Munendra S N, Mikhail Khludnev) - -* SOLR-13596: Deprecated GroupingSpecification methods are removed. (Munendra S N) - -* SOLR-13649: Property 'blockUnknown' of BasicAuthPlugin and JWTAuthPlugin now defaults to 'true'. This change is backward - incompatible. To achieve the previous default behavior, explicitly set 'blockUnknown':'false' in security.json - (marcussorealheis, janhoy, shalin) - -* SOLR-11266: default Content-Type override for JSONResponseWriter from _default configSet is removed. Example has been - provided in sample_techproducts_configs to override content-type. (Ishan Chattopadhyaya, Munendra S N, Gus Heck) - -* SOLR-13593 SOLR-13690 SOLR-13691: Allow to look up analyzer components by their SPI names in field type configuration. (Tomoko Uchida) - -* SOLR-13854, SOLR-13858: SolrMetricProducer / SolrInfoBean APIs have changed and third-party components that implement these APIs need to be updated. (ab) - -* 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 java.util.Map implementations based on AbstractMap (Chris Hennick). - -* SOLR-13817: Legacy SolrCache implementations (LRUCache, LFUCache, FastLRUCache) have been removed. - Users have to modify their existing configurations to use CaffeineCache instead. (ab) - -* SOLR-14092: Deprecated BlockJoinFacetComponent and BlockJoinDocSetFacetComponent are removed - Users are encouraged to migrate to uniqueBlock() in JSON Facet API. (Mikhail Khludnev) - -* SOLR-13985: Solr'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. (Jason Gerlowski, David Smiley, Robert Muir) - -* 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=false in the environment or in one of the Solr init scripts. Other features in Solr could also break. (Robert Muir, marcussorealheis) - -* 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 (Robert Muir) +(No changes) Improvements ---------------------- - * LUCENE-8984: MoreLikeThis MLT is biased for uncommon fields (Andy Hind via Anshum Gupta) Other Changes @@ -110,59 +32,6 @@ Other Changes Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. -Versions of Major Components ---------------------- -Apache Tika 1.23 -Carrot2 3.16.0 -Velocity 2.0 and Velocity Tools 3.0 -Apache ZooKeeper 3.5.5 -Jetty 9.4.24.v20191120 - -Upgrade Notes ---------------------- - -* SOLR-14026: Upgrade Jetty to 9.4.24.v20191120 and dropwizard to 4.1.2 (Erick Erickson) - -* SOLR-14092: BlockJoinFacetComponent is marked for deprecation and will be removed in 9.0. - Users are encouraged to migrate to uniqueBlock() in JSON Facet API. (Mikhail Khludnev) - -* SOLR-13983: Process execution is removed from SystemInfoHandler. A best-effort attempt to - execute "uname -a" and "uptime" on non-Windows platforms is no longer made. (rmuir) - -* SOLR-14095 introduces a change in the format used for the elements in the Overseer queues and maps (see the Jira - issue for details on the reasons for 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: - - 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: - 1. pause Collection API operations - 2. cleanup queues (https://lucene.apache.org/solr/guide/8_3/collections-api.html#examples-using-deletestatus) - if you use async operations - 3. upgrade and restart the nodes - - 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: - 1. pause Collection API operations - 2. upgrade and restart all nodes - 3. cleanup queues (https://lucene.apache.org/solr/guide/8_3/collections-api.html#examples-using-deletestatus) - if you use async operations - 4. Resume all normal operations - - If you use Collection API operations and can’t pause them during the upgrade: - 1. Start 8.5 nodes with the system property: `-Dsolr.useUnsafeOverseerResponse=deserialization`. Ensure the - Overseer node is upgraded last - 2. 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 - property: `-Dsolr.useUnsafeOverseerResponse=true`. Keep in mind that this will be removed in future version of Solr. - - * SOLR-13808: add cache=false into underneath BoolQParser's filter clause or {"bool":{"filter":..}} to avoid caching in - filterCache. (Mikhail Khludnev) - New Features --------------------- * SOLR-12490: Introducing json.queries in JSON Request API. Every property of this object holds one or many named @@ -180,7 +49,7 @@ New Features * SOLR-14242: HdfsDirectory now supports indexing geo-points, ranges or shapes. (Adrien Grand) * SOLR-14241: New delete() Stream Decorator (hossman) - + Improvements --------------------- * SOLR-14120: Define JavaScript methods 'includes' and 'startsWith' to ensure AdminUI can be displayed when using diff --git a/solr/solr-ref-guide/src/solr-upgrade-notes.adoc b/solr/solr-ref-guide/src/solr-upgrade-notes.adoc index fa8993610a0..47cfdaef4e1 100644 --- a/solr/solr-ref-guide/src/solr-upgrade-notes.adoc +++ b/solr/solr-ref-guide/src/solr-upgrade-notes.adoc @@ -31,10 +31,120 @@ that may effect your existing implementation. Detailed steps for upgrading a Solr cluster are in the section <>. +== Upgrading to 9.x Releases (NOT RELEASED) + +== Solr 9.0 + +_(raw; not yet edited)_ + +* LUCENE-8738: Move to Java 11 as minimum Java version. + (Adrien Grand, Uwe Schindler) + +* SOLR-12055 introduces async logging by default. There'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 + see comments in the log4j2 configuration files (log4j2.xml by default). + +* 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 + (Gus Heck). + +* 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 (Gus Heck). + +* 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 (Gus Heck) + +* SOLR-7530: TermsComponent'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 + (Munendra S N, Mikhail Khludnev) + +* SOLR-13596: Deprecated GroupingSpecification methods are removed. (Munendra S N) + +* SOLR-13649: Property 'blockUnknown' of BasicAuthPlugin and JWTAuthPlugin now defaults to 'true'. This change is backward + incompatible. To achieve the previous default behavior, explicitly set 'blockUnknown':'false' in security.json + (marcussorealheis, janhoy, shalin) + +* SOLR-11266: default Content-Type override for JSONResponseWriter from _default configSet is removed. Example has been + provided in sample_techproducts_configs to override content-type. (Ishan Chattopadhyaya, Munendra S N, Gus Heck) + +* SOLR-13593 SOLR-13690 SOLR-13691: Allow to look up analyzer components by their SPI names in field type configuration. (Tomoko Uchida) + +* SOLR-13854, SOLR-13858: SolrMetricProducer / SolrInfoBean APIs have changed and third-party components that implement these APIs need to be updated. (ab) + +* 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 java.util.Map implementations based on AbstractMap (Chris Hennick). + +* SOLR-13817: Legacy SolrCache implementations (LRUCache, LFUCache, FastLRUCache) have been removed. + Users have to modify their existing configurations to use CaffeineCache instead. (ab) + +* SOLR-14092: Deprecated BlockJoinFacetComponent and BlockJoinDocSetFacetComponent are removed + Users are encouraged to migrate to uniqueBlock() in JSON Facet API. (Mikhail Khludnev) + +* SOLR-13985: Solr'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. (Jason Gerlowski, David Smiley, Robert Muir) + +* 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=false in the environment or in one of the Solr init scripts. Other features in Solr could also break. (Robert Muir, marcussorealheis) + +* 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 (Robert Muir) + == Upgrading to 8.x Releases If you are upgrading from 7.x, see the section <> below. +=== Solr 8.5 + +_(raw; not yet edited)_ + +* SOLR-14026: Upgrade Jetty to 9.4.24.v20191120 and dropwizard to 4.1.2 (Erick Erickson) + +* SOLR-14092: BlockJoinFacetComponent is marked for deprecation and will be removed in 9.0. +Users are encouraged to migrate to uniqueBlock() in JSON Facet API. (Mikhail Khludnev) + +* SOLR-13983: Process execution is removed from SystemInfoHandler. A best-effort attempt to +execute "uname -a" and "uptime" on non-Windows platforms is no longer made. (rmuir) + +* SOLR-14095 introduces a change in the format used for the elements in the Overseer queues and maps (see the Jira +issue for details on the reasons for 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: +- 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: +1. pause Collection API operations +2. cleanup queues (https://lucene.apache.org/solr/guide/8_3/collections-api.html#examples-using-deletestatus) +if you use async operations +3. upgrade and restart the nodes +- 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: +1. pause Collection API operations +2. upgrade and restart all nodes +3. cleanup queues (https://lucene.apache.org/solr/guide/8_3/collections-api.html#examples-using-deletestatus) +if you use async operations +4. Resume all normal operations +- If you use Collection API operations and can’t pause them during the upgrade: +1. Start 8.5 nodes with the system property: `-Dsolr.useUnsafeOverseerResponse=deserialization`. Ensure the +Overseer node is upgraded last +2. 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 +property: `-Dsolr.useUnsafeOverseerResponse=true`. Keep in mind that this will be removed in future version of Solr. + +* SOLR-13808: add cache=false into underneath BoolQParser's filter clause or {"bool":{"filter":..}} to avoid caching in +filterCache. (Mikhail Khludnev) + === Solr 8.4 See the https://cwiki.apache.org/confluence/display/SOLR/ReleaseNote84[8.4 Release Notes]