Professional Documents
Culture Documents
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/solr/blob/main/solr/solr-ref-guide/modules/upgrade-
notes/pages/solr-upgrade-notes.adoc
New Features
---------------------
* SOLR-16532: New OpenTelemetry (OTEL) module with OTLP/gRPC trace exporter. See
ref.guide. (janhoy, David Smiley)
* SOLR-16596: Learning To Rank - Added support for null feature values in multiple
additive trees models (Anna Ruggero via Alessandro Benedetti)
* SOLR-16646: New function query operator isnan to verify if value is NaN (Gabriel
Magno via Kevin Risden)
Improvements
---------------------
* SOLR-8803: Java will now crash the Solr process on OOME and create a crash file
that logs the
cause. This capability is now also present on Windows. Before, with bin/solr
but not
bin/solr.cmd, Solr would execute a script that killed the Solr pid, leaving a
very small time
window where Solr would continue to execute in an unpredictable state. (Shawn
Heisey, Kevin Risden)
* SOLR-13626: Document the SystemInfoHandler in the Ref Guide. (Tony Cook via Eric
Pugh)
* SOLR-16565: posting the same file to the package store should not throw an error
(noble)
* SOLR-8975: Introduce Builder setters for setters that exist on SolrClients for
responseParser, requestWriter.
Deprecated these SolrClient setters useMultiPartPost, and followRedirects. (Eric
Pugh, David Smiley, Kevin Risden)
* SOLR-16618: Admin UI Analysis page should include dynamic fields (Alex Deparvu
via Eric Pugh)
* SOLR-16665: The base docker image has been upgraded from Ubuntu 20 (Focal) to
Ubuntu 22 (Jammy). (Houston Putman)
* SOLR-16488: The paths of the v2 "ZooKeeper read" APIs have been tweaked slightly
to be more intuitive. "get node data" is now available
at `GET /api/cluster/zookeeper/data/<path>`, and "list node children" is now
available at `GET /api/cluster/zookeeper/children/<path>`
(Jason Gerlowski, Joshua Ouma)
* SOLR-16393: The path of the v2 "list alias" API has been tweaked slightly to be
more intuitive, and is now available at
`GET /api/aliases`. It is also now possible to request information about a
specific alias at `GET /api/aliases/<aliasName>`.
(Alex Deparvu via Jason Gerlowski)
Optimizations
---------------------
Bug Fixes
---------------------
* SOLR-16160: UpdateXmlMessages duplicate data when data is removed and then added
in the same message (Alex Deparvu via Kevin Risden)
* SOLR-16293: Luke request fails for document with a binary field (Kevin Risden)
* SOLR-16477: Collection RENAME api creates broken alias (Alex Deparvu via Kevin
Risden)
* SOLR-16274: HEAD request for managed resource returns 500 Server Error (Kevin
Risden)
* SOLR-16420: Default for cloud mode was fixed to `{!mlt mindf=5}` to comply with
Reference Guide (Mikhail Khludnev)
* SOLR-16473: Fix race condition in shard split when a sub-shard is put in recovery
state. (Andy Vuong via Bruno Roustant)
* SOLR-16613: CryptoKeys should handle RSA padding for OpenJ9 (Kevin Risden)
* SOLR-16621: Admin UI fails to grant user permissions that have wildcard role
(janhoy)
* SOLR-16628: Ensure that InputStreams are closed after Xml parsing (Michael
Gibney, David Smiley, Kevin Risden)
* SOLR-9698: Fix start/stop wait time and RMI_PORT on Windows (Colvin Cowie)
* SOLR-16668: Use default to Java SSL for Http2SolrClient when none is provided
(Houston Putman)
* SOLR-16686: Using bin/solr to copy a file from ZK to local fails if the local
filename does not have a path.
(Shawn Heisey)
Build
---------------------
* SOLR-16476: Remove commons-text dependency from solr-core (Kevin Risden)
Dependency Upgrades
---------------------
* SOLR-15955: Upgrade to Jetty 10.x (Mark Miller, Kevin Risden)
* SOLR-16432, SOLR-16508: Upgrade the gradle wrapper to 7.6 (Shawn Heisey, Kevin
Risden)
Other Changes
---------------------
* SOLR-16150: Embedded ZK Server used for zkRun should advertise itself on specific
bound interfaces instead of
generically on localhost. (Mike Drob)
* SOLR-16569: Add java system property to overseer queue size (Nick Ginther via
noble)
* SOLR-16574: Demonstrate Dense Vectors and KNN as part of the Films example
(Gabriel Magno via Eric Pugh)
* SOLR-16629: Replace Solr thread safety annotations with JCIP. (David Smiley)
* SOLR-16632: Add core name to periodic delete related log messages (Bence Szabo
via Andras Salamon)
* SOLR-15928: Dim 'Add Collection' and 'Create Alias' buttons when user lacks
proper permissions (janhoy)
Bug Fixes
---------------------
* SOLR-16589: Large fields with large=true can be truncated when using unicode
values (Kevin Risden)
* SOLR-16585: Fixed NPE when paginating MatchAllDocs with non-zero start offset,
like q=*:*&start=10 (Michael Gibney)
* SOLR-16622: Replicas don't come up active after node restart (noble, Ishan
Chattopadhyaya)
Other Changes
---------------------
* SOLR-16567: Fixed problem with filtering and KNN search, especially when using
post-filters (Alessandro Benedetti)
* SOLR-16588: Fixed problem with default knn algorithm (Elia Porciani via
Alessandro Benedetti)
New Features
---------------------
* SOLR-16246: Introduced pre-filtering in KnnQParser (Elia Porciani via Alessandro
Benedetti).
* SOLR-15853: Admin UI support for managing Paramsets and using in Queries. (Betul
Ince, Eric Pugh)
* SOLR-15007: Add ability to roll up core level metrics to be node level metrics
for a RequestHandler via configuration. (Justin Sweeney, David Smiley)
* SOLR-15715: Dedicated query coordinator nodes in the solr cluster (noble, Hitesh
Khamesra, Ishan Chattopadhyaya)
Improvements
---------------------
* SOLR-15986: CommitUpdateCommand and SplitIndexCommand can write user commit
metadata. (Bruno Roustant)
* SOLR-15652: Add Slack channel for community support to Admin UI footer, update
links. (Eric Pugh)
* SOLR-16323: The Docker image now uses the Solr User ID instead of the User Name,
helps with non-root checks (Houston Putman)
* SOLR-16340: Provide a cluster_id label for all metrics exposed by the Solr
Prometheus Exporter, making it possible to
filter Grafana board by cluster (janhoy, Houston Putman)
* SOLR-16362: Logs: Truncate field values in logs if a doc fails to index. (Nazerke
Seidan, David Smiley)
* SOLR-16361: mod() is now accurate for all integers, floats, doubles and longs
upto 2^52 (Dan Rosher via Eric Pugh)
* SOLR-16429: The s3-repository module now supports AWS STS, and therefore Web
Identity Tokens, by default. (Josh Souza via Houston Putman)
Optimizations
---------------------
* SOLR-16120: Optimise hl.fl expansion. (Christine Poerschke, David Smiley, Mike
Drob)
* SOLR-14765: Optimize DocList creation for sort-irrelevant cases. This issue also
reworks the building and caching of liveDocs
in SolrIndexSearcher, and refines/clarifies the effect of
`useFilterForSortedQuery` (Michael Gibney, Mike Drob, David Smiley)
* SOLR-9359: Enable warming queries to be managed using Config API (Andy Webb, Eric
Pugh)
* SOLR-16336: avoid fetching solrconfig.xml & schema.xml for already cached schema
and config (noble)
* SOLR-16445: Leader message should only be sent when there is more than one
(NRT+Tlog) replica (Hitesh Khamesra, noble via Ishan Chattopadhyaya)
Bug Fixes
---------------------
* SOLR-13219: Fix NPE in FieldLengthFeature with non-stored/missing fields (Nick
Veenhof, Tomasz Elendt)
* SOLR-15918: Skip repetitive parent znode creation on config set upload (Mike
Drob)
* SOLR-15964: Transient cores: don't evict a core when it's still being used.
(David Smiley)
* SOLR-16089: Fix empty columns in Cloud Node UI Screen when replica is in down
state. (hossman)
* SOLR-13044: Fix NPE during core close racing with index replication check.
(David Smiley, hossman)
* SOLR-15830: Concurrent core reloads mess up commits when using Schema API (Bence
Szabo via Andras Salamon)
* SOLR-16110: Using Schema/Config API breaks the File-Upload of Config Set File
(Steffen Moldenhauer, Kevin Risden)
* SOLR-16259: Missing newline at the end of solr.in.sh breaks the installer. (John
Gately via Shawn Heisey)
* SOLR-16142: Fix Admin UI's spatial parameter generation. (Arsal Jalib, Christine
Poerschke)
* SOLR-16316: Fix debugQuery clicking on the Query UI does not show the
debug.explain.structured option. (Shiming Li via Eric Pugh)
* SOLR-16399: ExportWriter fails with max values for fields (Kevin Risden)
* SOLR-16343: Handle MDC snapshot being null (Dee Moore via Kevin Risden)
* SOLR-16414: Race condition in PRS state updates (noble, Justin Sweeney, Patson
Luk, Hitesh Khamesra, Ishan Chattopadhyaya)
* SOLR-16439: Cloud Node does not have Core, the admin UI cannot be displayed
properly. (Shiming Li)
* SOLR-16433: Security Manager prevents Solr SQL from working (Kevin Risden)
* SOLR-16453: Overseer doesn't handle PRS and non-PRS messages properly (Justin
Sweeney, Hitesh Khamesra)
* SOLR-16478 :removing a replica should delete the PRS entry from the hostnode and
not from overseer (Patson Luk via noble)
* SOLR-16416: OverseerPrioritizer now runs after all handlers are registered, and
retries on failures. (Houston Putman)
* SOLR-14679: Fix continuously growing TLOGs on TLOG replicas (Viktor Molnár via
Houston Putman)
Other Changes
---------------------
* SOLR-16351: Upgrade Carrot2 to 4.4.3, upgrade randomizedtesting to 2.8.0. (Dawid
Weiss)
* SOLR-15897: Remove <jmx/> from all unit test solrconfig.xml files. (Eric Pugh)
* SOLR-15776: Admin UI is now aware of logged-in user's permissions and can adapt
accordingly (janhoy)
* SOLR-15923: Cue users in 404 message that Solr is running and the url is
incorrect. (Eric Pugh, Mike Drob, Shawn Heisey)
* SOLR-16209: Rolling restart will no longer trigger as much PKI Plugin error
logging. (Mike Drob, Tomás Fernández Löbbe)
* SOLR-16451: Don't fetch the PRS states while registering the collection watch
(Hitesh Khamesra via Ishan Chattopadhyaya)
* SOLR-16452: Do not update PRS states if local version is newer (Hitesh Khamesra
via noble)
* SOLR-16482: Add an internal envVar for passing options to bin/solr that will not
be overriden by the user. (Houston Putman)
* SOLR-16486: Pin the OS Variant for the default base image of the Dockerfile (to
Ubuntu 20). (Houston Putman, janhoy, Eva Müller)
Build
---------------------
* SOLR-16204: Change Lucene dependency to Lucene 9.1.0 (Elia Porciani via
Alessandro Benedetti)
* SOLR-16264: Set versions for all Antora build tools (Houston Putman)
* SOLR-16299: Ref-guide examples are no longer symlinked from SolrJ, they live in
the ref-guide module (Houston Putman)
* SOLR-16298: Clean the javadocs directory before building (Houston Putman, Mike
Drob, Uwe Schindler)
New Features
---------------------
* SOLR-14440: Introduce new Certificate Authentication Plugin to load Principal
from certificate subject. (Mike Drob)
* SOLR-15130: Support for per-collection replica placement node sets, a.k.a "node
type"
placements. (ab, ilan)
* SOLR-8138: Simple UI for issuing SQL queries (Michael Suzuki via Eric Pugh)
* SOLR-14787: Payload check query parser now supports inequalities. (Kevin Watters,
Gus Heck)
* SOLR-15423: JWTAuthPlugin now supports separate config for what SSL certs to
trust when talking to IdPs (janhoy)
* SOLR-15197: Support temporal graph queries with DAY and WEEKDAY windows (Joel
Bernstein)
* SOLR-15914: Official Solr modules (contribs) can now easily be added to shared
class path by environment variable
'SOLR_MODULES' or system property 'solr.modules'. E.g:
SOLR_MODULES=extracting,langid
(janhoy, David Smiley, Houston Putman)
* SOLR-14660: Move HDFS support to a new HDFS module (Istvan Farkas, Kevin Risden)
Improvements
----------------------
* LUCENE-8984: MoreLikeThis MLT is biased for uncommon fields (Andy Hind via Anshum
Gupta)
* SOLR-14223: PKI Auth can bootstrap from existing key files instead of creating
new keys on startup (Mike Drob)
* SOLR-15153: Admin UI: Collection selector drop down does not sort collections
(Edward Ribeiro)
* SOLR-11725: Use corrected sample formula for computing stdDev and variance in
JSON aggregations
(hossman, Munendra S N, yonik)
* SOLR-15327: Fix typos in the code base (Edward Ribeiro via Eric Pugh)
* SOLR-2852: SolrJ: remove Woodstox dependency. It was never truly required there.
Software doing lots of XML processing can choose to add it or alternatives if
they wish.
(David Smiley)
* SOLR-15329: Improve HDFS Directory size calculation (Andras Salamon via Mike
Drob)
* SOLR-15414: Use ConfigSet API instead of Zookeeper data node to list out
configsets available in Solr Admin UI.
(Nazerke Seidan via Eric Pugh)
* SOLR-15421: ConfigSet API also checks for solrconfig.xml when checking the
existence of a configset
(Andras Salamon via David Smiley)
* SOLR-15392: Distributed Tracing request span operation names are now composed of
a command/verb
and a templated path. The collection or core name is now in the db.instance tag.
(David Smiley)
* SOLR-15453: Update the content security policy in Jetty to allow image requests
from local host and prevent security
errors on the client side. (MarcusSorealheis via Houston Putman)
* SOLR-15362: Let core and collection dropdowns in Admin UI float wide to see
entire core or collection name.
(Matthias Krepp, Eric Pugh)
* SOLR-12848: SolrJ and the server can now recognize some standard Java system
properties like
for an HTTP proxy. This is only for the Apache HttpClient based SolrJ
communication, not Jetty.
(Shawn Heisey, David Smiley)
* SOLR-15301: Eliminate repetitive index size calculation for Solr metrics (Andras
Salamon)
* SOLR-15790: SearchHandler now includes the `rid` value in the Logging MDC for the
duration of the request, allowing
custom logging configurations to include it. (hossman)
* SOLR-15786: Add the "films" example to SolrCLI via -e films parameter. (Eric
Pugh)
* SOLR-15834: Films example readme needs updating, including useParams support for
multiple algorithms. (Eric Pugh)
* SOLR-15824: Improved Query Screen handling of raw query parameters. (Betul Ince
via Tim Potter, Eric Pugh)
* SOLR-15803: Compute concurrent replica assignment requests together, using the
shared context to better distribute
replicas. (Houston Putman)
* SOLR-15213: Atomic updates: "add" now uses add-or-replace logic for child
documents. They can
also themselves be atomic updates. (James Ashbourne, Endika Posadas via David
Smiley)
* SOLR-15890: Add a limit to the Admin SQL panel if one is not included in the stmt
(Joel Bernstein)
* SOLR-14686: Logs: Removed the "[corename]" prefix of some SolrCore logs that has
become redundant
with MDC. (David Smiley)
* SOLR-15755: Parse collection, shard, core, replica info from newSearcher events
in postlogs tool (Joel Bernstein)
* SOLR-15556: Migrate the Ref Guide to be built with Antora, enabling many new
features
(Cassandra Targett, Houston Putman, Mike Drob)
* SOLR-15965: Use better signatures for the PKI Authentication plugin. (Mike Drob)
* SOLR-15982: Add end time value to backup response, standardize backup response
key names and date formats (Artem Abeleshev, Christine Poerschke, Houston Putman)
* SOLR-14401: Metrics: Only SearchHandler and subclasses have "local" metrics now.
It's now tracked as if it'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.
(David Smiley)
* SOLR-15286: A brand new follower in the legacy mode should wait to replicate
index before reporting
healthy (Pushkar Raste, Anshum Gupta)
Build
---------------------
* LUCENE-9077 LUCENE-9433: Support Gradle build, remove Ant support from trunk
(Dawid Weiss, Erick Erickson, Uwe Schindler et.al.)
* SOLR-15867: Make the gradle build ready for 9.0 release (janhoy, Houston Putman,
Dawid Weiss)
* SOLR-15852: Update dev-tools/scripts for the 9.0 release, including releaseWizard
(janhoy)
* SOLR-15891: The Solr Docker image uses the default file permissions from the
tarball artifact (Houston Putman, janhoy)
* SOLR-15603: Add an option to activate Gradle build cache, build task cleanups
(Alexis Tual, Dawid Weiss)
* SOLR-15992: Globally forbid and exclude known bad dependencies (Kevin Risden)
* SOLR-12228: Move bin-test scripts to packaging project and create gradle task for
running them. (Mike Drob)
Docker
----------------------
* SOLR-14789: Migrate docker image creation from docker-solr repo to solr/docker.
(Houston Putman, Martijn Koster, Tim Potter, David Smiley, janhoy, Mike Drob)
* SOLR-14790: Docker: Move Solr Docker image documentation to the ref guide.
(Houston Putman)
* SOLR-15322: Solr releases now contain everything needed to build runnable docker
images (Houston Putman, hossman)
* SOLR-15949: Docker: the official image now uses Java 17 provided by Eclipse
Temurin. Formerly it was Java 11 from OpenJDK.
(janhoy, David Smiley)
* SOLR-15891: The Solr Docker image uses the default file permissions from the
tarball artifact (Houston Putman, janhoy)
Deprecation Removals
----------------------
* SOLR-15203: JWT Auth plugin: Remove deprecated parameter name jwkUrl in favour of
jwksUrl for the JWK Url. (Eric Pugh)
* SOLR-13893: Remove support to read BlobRepository's max jar size from deprecated
`runtme.lib.size` system property
(Erick Erickson, Kesharee Nandan Vishwakarma, Munendra S N)
* SOLR-14944: Remove the "spins" metrics - support for detection of spinning disks
has been
removed in LUCENE-9576. (ab)
Other Changes
----------------------
* SOLR-14656: Autoscaling framework removed (Ishan Chattopadhyaya, noble, Ilan
Ginzburg)
* SOLR-13797: SolrResourceLoader no longer caches bad results when asked for wrong
type (Mike Drob)
* LUCENE-9080: Upgrade ICU4j to 62.2 and make regenerate work (Erick Erickson)
* SOLR-14271: Remove duplicate async id check meant for pre Solr 8 versions (Anshum
Gupta)
* SOLR-14012: Return long value for unique and hll aggregations irrespective of
shard count (Munendra S N, hossman)
* SOLR-14429: Convert .txt files to properly formatted .md files. (Tomoko Uchida,
Uwe Schindler)
* SOLR-14412: Automatically set urlScheme to https when running secure solr with
embedded zookeeper. (Mike Drob)
Do not erroneously set solr.jetty.https.port system property when running in http
mode (Upendra Penegalapati)
* SOLR-14014: Introducing a system property that allows users to disable the Admin
UI, which is enabled by default.
If you have security concerns or other reasons to disable the Admin UI, you can
modify `SOLR_ADMIN_UI_DISABLED`
`solr.in.sh`/`solr.in.cmd` at start. (marcussorealheis)
* SOLR-14702: All references to "master" and "slave" replaced with "leader" and
"follower" (MarcusSorealheis,
Erick Erickson, Tomás Fernández Löbbe)
* SOLR-14829: Cleanup the documentation for Request Handlers and Search Components
(Alexandre Rafalovitch)
* SOLR-14915: Prometheus: Reduced dependencies from Solr server down to just SolrJ.
Don't add WEB-INF/lib.
* Can run via gradle, "gradlew run"
* Has own log4j2.xml now
* Was missing some dependencies in lib/; now has all except SolrJ & logging.
(David Smiley, Houston Putman)
* SOLR-15016: Replica placement plugins should use container plugins API / configs.
(ab, ilan)
* SOLR-14297: Replace commons-codec Base64 with JDK11 Base64 (Andras Salamon via
Houston Putman)
* SOLR-15113: Do not attempt to start Solr server when embedded ZK fails (Mike
Drob)
* SOLR-15121: Move XSLT (tr param) response writer and update request handler to
scripting module. (Eric Pugh, David Smiley)
* SOLR-15146: Allow Collection API and Config Set API to be done in a distributed
fashion without going through Overseer
(Ilan Ginzburg)
* SOLR-14166: Non-cached filter queries are now pushed down to Lucene, possibly
benefiting from
TwoPhaseIterator, which can make a big difference for some queries. (David
Smiley)
* SOLR-15369: PackageStoreAPI will only be loaded in SolrCloud mode (Mike Drob)
* SOLR-15222: userfiles dir will only be created in SolrCloud mode (Mike Drob)
* SOLR-15309: Add missing IntelliJ IDEA entries to the .gitignore file (Pushkar
Raste via Anshum Gupta)
* SOLR-15428: Integrate the OpenJDK JMH micro benchmark framework for micro
benchmarks and performance comparisons
and investigation. (Mark Miller)
* SOLR-15111: Use JDK11 Base64 instead of own implementation (Andras Salamon via
janhoy)
* SOLR-15480: Make Tuple copy constructor, clone and merge consistent w.r.t.
markers (EOF, EXCEPTION), field names
and labels. (John Durham, Mike Drob, Christine Poerschke)
* SOLR-15692: Fix parsing of -zkHost flag for the bin/solr commands (janhoy)
* SOLR-15728: Remove dead, unused log rotation code from SolrCLI (janhoy)
* SOLR-15791: Remove remaining unused <admin/> clauses from solrconfigs. (Eric
Pugh)
* SOLR-15807: New LogListener class for tests to use to make assertions about what
Log messages should or should not
be produced by a test (hossman)
* SOLR-14660: Move HDFS support to a new HDFS module (Istvan Farkas, Kevin Risden)
* SOLR-14858: Add the server WEB-INF/lib directory to the classpath for the solr-
exporter script. Will allow the script
to work when the dist/solrj-lib jars are missing in the Docker image. (Houston
Putman)
* 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 (Nazerke Seidan,
David Smiley)
* SOLR-15924: Remove lucene-libs from module packaging. The lucene libraries will
be included in lib/ with all
other dependencies. (Houston Putman)
* SOLR-15916: Remove dist/ from the binary release. The solr-core and solrj jars
will be included in the server
WEB-INF/lib directory, and each individual module's jar will be included in its
directory's lib/ folder. (Houston Putman)
* SOLR-15917: "Contrib Modules" have been renamed to "Modules" and have been moved
from "contrib/" to "modules/".
(Houston Putman)
* SOLR-15957: Add port and scraping information to Solr Prometheus startup logging.
(Houston Putman)
* SOLR-15936: Reduce unnecessary startup logging, such as SSL warnings when SSL not
in use (janhoy)
* SOLR-16043: Fix HDFS tests - "Command processor" thread leak (Mike Drob, Kevin
Risden)
* SOLR-15223: SolrJ: The project is migrating away from the Apache HttpClient
dependency in favor of
Jetty'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. (janhoy,
David Smiley)
* SOLR-16061: CloudSolrClient refactoring: Removed ZK specific methods (Haythem
Khiri, David Smiley, janhoy)
Bug Fixes
---------------------
* SOLR-15849: Fix the connection reset problem caused by the incorrect use of 4LW
with \n when monitoring zooKeeper status
(Fa Ming).
* SOLR-15334: Return error response when failing auth in PKIAuthPlugin (Mike Drob)
* SOLR-15410: Always use -Xverbosegclog for OpenJ9. (Colvin Cowie via Eric Pugh)
* SOLR-15653: Fix collection creation race that assumes a local clusterstate when
the collection has only just been
created. (Mark Miller)
* SOLR-10529: Solr UI Health Check enable/disable ping Button doesn't work (Oscar
Wang via janhoy)
* SOLR-15783: Prevent Logging MDC values from leaking between request threads, and
set 'trace_id' in MDC as soon as it's
available (hossman)
* SOLR-14781: Removed many unused classes that accumulated over the years. (Bence
Szabo, David Smiley)
* SOLR-15919: Replace File with Path for many ZK operations (Mike Drob)
* SOLR-15842: Async response for backups now correctly aggregates and returns
information
(Houston Putman, Artem Abeleshev, Christine Poerschke)
* SOLR-15968: Hide annoying WARN log from bin/solr zk command (janhoy, Mike Drob)
* SOLR-15558: Don't wait for zombie processes to exit when stopping. (Colvin Cowie)
* SOLR-16019: UTF-8 parsing errors for parameters should cause a HTTP 400 status
code, not 500 (janhoy, Matthias Pigulla)
* SOLR-16090: Better error message when JWT auth SIGNATURE_INVALID during token
parsing (janhoy)
* SOLR-16009: Force Calcite's Rel simplify config flag to false to avoid erasing
filters that are meaningful to Solr,
but look like nonsense to Calcite, such as AND'd filters on the same multi-valued
field (Timothy Potter, Kiran Chitturi)
* SOLR-16143: SolrConfig can miss updates from ZooKeeper when deleting and
recreating file items (Mike Drob)
* SOLR-16164: ConfigSet API returns error if untrusted user creates from _default
configset (Eric Pugh, Kevin Risden)
Bug Fixes
---------------------
* SOLR-15871: Update Log4J to 2.17.1 (weidongkl via janhoy)
* SOLR-15558: Don't wait for zombie processes to exit when stopping. (Colvin Cowie)
* SOLR-16009: Force Calcite's Rel simplify config flag to false to avoid erasing
filters that are meaningful to Solr,
but look like nonsense to Calcite, such as AND'd filters on the same multi-valued
field (Timothy Potter, Kiran Chitturi)
* SOLR-16095: Upgrade JQuery to 3.5.1 in velocity contrib module (Bence Szabo via
Jan Høydahl)
* SOLR-15849: Fix the connection reset problem caused by the incorrect use of 4LW
with \n when monitoring zooKeeper status (Fa Ming).
* SOLR-16089: Fix empty columns in Cloud Node UI Screen when replica is in down
state. (hossman)
* SOLR-15968: Hide annoying WARN log from bin/solr zk command (janhoy, Mike Drob)
* SOLR-16019: UTF-8 parsing errors for parameters should cause a HTTP 400 status
code, not 500 (janhoy, Matthias Pigulla)
* SOLR-16143: SolrConfig can miss updates from ZooKeeper when deleting and
recreating file items (Mike Drob)
* SOLR-16199: Improve query syntax construction for SQL LIKE clause with phrases
and wildcards (Kiran Chitturi, Aroop Ganguly, Amrit Sarkar via Timothy Potter)
* SOLR-16215: Escape query characters in Solr SQL Array UDF functions (Kiran
Chitturi via Timothy Potter)
* SOLR-15965: Use better signatures for the PKI Authentication plugin. (Mike Drob)
* SOLR-16209: Rolling restart will no longer trigger as much PKI Plugin error
logging. (Mike Drob, Tomás Fernández Löbbe)
* SOLR-16227: Solr SQL query parsing fails on multiple LIKE clauses and multiple
terms
(Kiran Chitturi via David Smiley)
Bug Fixes
---------------------
* SOLR-15635: Don't close hooks twice when SolrRequestInfo is cleared twice; or
/export with classic join
closed fromCore if provided (Mikhail Khludnev, David Smiley)
* SOLR-15795: Fix REPLACENODE to not use source node when choosing a target node
for new replicas (Houston Putman)
* SOLR-15804: Admin UI once again can show files in the Core/Collection -> Files
screen. Fixed regression from 8.11.0 (Karl Stoney, janhoy)
* SOLR-15768: Set default permissions for the zookeeper endpoints so users won't
need to configure custom permissions for these (janhoy)
* SOLR-15774: Avoid weird off-by-one errors with Angular's 'chosen' select box
directive for the security and schema-designer screens in Admin UI (Timothy Potter)
* SOLR-15794: Switching a PRS collection from true -> false -> true results in
INACTIVE replicas (noble)
* SOLR-15825: Security UI 'hasPermission' check should check if the user has the
"all" permission if the requested permission is not defined
to match how the backend works (Timothy Potter)
* SOLR-15199: Pass thru all command actions not explicitly handled by the bin/solr
script, such as 'api', to the SolrCLI Java app (Timothy Potter)
* SOLR-15833: Enable exists queries on spatial types. (Mike Drob, Houston Putman)
* SOLR-8319: Fix NPE in pivot facets, add non-Analyzed query method in FieldType.
(Houston Putman, Isabelle Giguere)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
New Features
---------------------
* SOLR-12666: Add authn & authz plugins that supports multiple authentication
schemes, such as Bearer and Basic (Timothy Potter, janhoy)
* SOLR-15721: Support editing Basic auth config from the security UI when using the
MultiAuthPlugin (Timothy Potter)
Improvements
---------------------
* SOLR-15707: Add the ability to set the AWS Profile per S3Repository (Houston
Putman)
* SOLR-15700: Make include paths in bin/solr consistent (turnertg, janhoy via Eric
Pugh)
Optimizations
---------------------
(No changes)
Bug Fixes
---------------------
* SOLR-15626: The "config-read" permission has been fixed to properly allow access
to `/solr/admin/configs?action=LIST` (Jon Senchyna via Eric Pugh)
* SOLR-15691: Admin UI raises yellow warning even when only case of hostnames
differ (janhoy)
* SOLR-15702: Fix S3Repository to follow BackupRepository.createDirectory() API
contract (Houston Putman)
* SOLR-15722: Delete Replica does not delete the Per replica state (noble)
Build
---------------------
Other Changes
---------------------
* SOLR-15678: Allow only known content types in ShowFileRequestHandler (janhoy, Gus
Heck, Mal Aware)
Other Changes
---------------------
* SOLR-15677: Upgrade the following dependencies with vulnerabilities.
- jetty: 9.4.44.v20210927
- tika: 1.27
- commons-compress: 1.21
- netty: 4.1.68.Final
- fasterxml.jackson: 2.12.3
- errorprone: 2.9.0
- gcp-client: 1.32.1
(Houston Putman)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
New Features
---------------------
* SOLR-15472: New shards.preference option for preferring replicas based on their
leader status, i.e.
`shards.preference=replica.leader:false` would prefer non-leader replicas. (wei
wang via Timothy Potter)
* SOLR-15208: Add the countDist aggregation to the stats, facet and timeseries
Streaming Expressions (Joel Bernstein)
Improvements
---------------------
* SOLR-15460: Implement LIKE, IS NOT NULL, IS NULL, and support wildcard * in
equals string literal for Parallel SQL (Timothy Potter, Houston Putman)
* SOLR-15451: SolrSchema (for Parallel SQL) should use PKI principal for internal
request to /admin/luke to get table metadata (Timothy Potter)
* SOLR-15456: Get field type info from luke for custom fields instead of defaulting
to String in Parallel SQL (Timothy Potter)
* SOLR-15489: Implement OFFSET & FETCH for LIMIT SQL queries (Timothy Potter)
* SOLR-15570: Include fields declared in the schema in table metadata (SQL) even if
they are empty (Timothy Potter)
Optimizations
---------------------
* SOLR-15433: Replace transient core cache LRU by Caffeine cache. (Bruno Roustant)
Bug Fixes
---------------------
* SOLR-15311: Support async parameter in MODIFYCOLLECTION
(Nazerke Seidan, Christine Poerschke, David Smiley)
* SOLR-14506: Fix NPE in COLSTATUS for collections using implicit routing. (Austin
Weidler, ab)
* SOLR-15575: Propagate request level basic auth creds from the top-level async
CollectionAdminRequest to internally
used async requests, such as async status checking (Timothy Potter)
* SOLR-15579: Allow for many values in a SQL IN clause; previously using more than
19 would result in
the IN clause being ignored, now users are only limited by the
`maxBooleanClauses` configured for a collection (Timothy Potter)
* SOLR-8889: Fixed various problems in Solr and SolrJ that could cause deleteById
commands with "_route_" information to processed
by the wrong shard, and/or fail when forwarded to replicas from the shard leader.
(Dan Fox, Yuki Yano, hossman)
* SOLR-13209: Fix NPE when no grouping query specified (Collins Abanda via Mike
Drob)
* SOLR-15595: Partial results from shard queries needlessly discarded for queries
without sort field (Michael Kosten via Mike Drob, Eric Pugh)
* SOLR-15620: Download Config button in Schema Designer screen should not require
user to re-login when already authenticated (Timothy Potter)
Other Changes
---------------------
* SOLR-15566: Clarify ref guide documentation about SQL queries with `SELECT *`
requiring a `LIMIT` clause (Timothy Potter)
* SOLR-15573: bin/solr auth utility should provide role bindings for `security-
read` and `config-edit` by default
to protect the security and schema designer screens in the Admin UI (Timothy
Potter)
* SOLR-15486: During node shutdown pausing of updates and waiting for in-flight
update requests to finish
before closing cores is no longer SolrCloud specific. (Christine Poerschke, David
Smiley)
* SOLR-15621: index.html for Admin UI should send Solr version in the request for
JavaScript files (Timothy Potter)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
New Features
---------------------
* SOLR-14330: ExpandComponent now supports an expand.nullGroup=true option
(hossman)
* SOLR-15132: Add temporal graph query to the nodes Streaming Expression (Joel
Bernstein)
* SOLR-15365: Improved Grafana dashboard for Prometheus Exporter with new Solr
Cluster row (janhoy)
Improvements
---------------------
* SOLR-15081: Metrics for a core: add SolrCloud "isLeader" and "replicaState".
(David Smiley)
* SOLR-13608: Backups are now done incrementally by default. Multiple backups can
be stored at the same location, and each
backup will only upload those files that are new since the last backup. (Jason
Gerlowski, shalin, Cao Manh Dat)
* SOLR-15123: Revamp SolrCLI tool's help descriptions for all commands for
consistency and clarity. (Eric Pugh)
* SOLR-15101: Add "list" and "delete" APIs for managing incremental backups (Jason
Gerlowski, shalin, Cao Manh Dat)
* SOLR-15194: Allow Solr to make outbound non SSL calls to a JWT IDP via -
Dsolr.auth.jwt.allowOutboundHttp=true property. (Eric Pugh)
* SOLR-6152: Pre-populating values into search parameters on the query page of solr
admin (jafurrer, daniel6691)
Optimizations
---------------------
* SOLR-15079: Block Collapse - Faster collapse code when groups are co-located via
Block Join style nested doc indexing.
Used by default when field=_root_, or explicitly requested for other fields via
hint=block. (Joel Bernstein, hossman)
* SOLR-15120 Reduce duplicated core creation work (Mike Drob, Mark Miller)
Bug Fixes
---------------------
* SOLR-15078: Fix ExpandComponent behavior when expanding on numeric fields to
differentiate '0' group from null group (hossman)
* SOLR-15149: Better exception handling for LTR model creation errors (Alessandro
Benedetti, Christine Poerschke)
* SOLR-15383: Solr Zookeeper status page shows green even when some Zookeepers are
not serving requests (janhoy)
* SOLR-15418: The V2 API threw errors for GET requests to collection handlers
like /select.
(David Smiley)
* SOLR-15424: Solr replication UI wraps ETA time on top of next line (janhoy)
* SOLR-15399: IndexFetcher should not issue a local commit for PULL replicas when
leader's version is zero (Timothy Potter)
Other Changes
---------------------
* SOLR-15118: Deprecate CollectionAdminRequest.getV2Request(). (Jason Gerlowski)
* SOLR-15416: Metrics history handler and metrics history collection (together with
its
specialized reporters) have been deprecated and will be removed in 9.0. (ab)
* SOLR-14978: Enable OOM Killer Script in Solr Foreground. Simplify getting heap
dumps on OOM. (Mike Drob, Houston Putman)
Bug Fixes
---------------------
Bug Fixes
---------------------
* SOLR-15114: Fix bug that caused WAND optimization to be disabled in cases where
the max score is requested (such as
multi-shard requests in SolrCloud) (Naoto Minami via Tomás Fernández Löbbe)
* SOLR-15136: Reduce excessive logging introduced with Per Replica States feature
(Ishan Chattopadhyaya)
* SOLR-15138: Collection creation for PerReplicaStates does not scale to large
collections as well as regular collections
(Mike Drob, Ilan Ginzburg, noble, Ishan Chattopadhyaya)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
---------------------
* Internal logic for identifying 'Solr Home' has been refactored to make testing
less error prone. Plugin
developers using SolrPaths.locateSolrHome() or 'new SolrResourceLoader' should
check deprecation warnings as existing
some existing functionality will be removed in 9.0. See SOLR-14934 for more
details.
New Features
---------------------
Improvements
---------------------
* SOLR-14942: Reduce leader election time on node shutdown by removing election
nodes before closing cores.
(Cao Manh Dat, Mike Drob, hossman, shalin)
* SOLR-14955: Add env var options for the Prometheus Exporter bin scripts (Houston
Putman)
* SOLR-14683: Metrics API should ensure consistent placeholders for missing values.
(ab)
* SOLR-8673: Make JSON Facets extendable (Tim Owen via Mikhail Khludnev)
* SOLR-14987: Reuse HttpSolrClient per node vs. one per Solr core when using
CloudSolrStream (Timothy Potter)
* SOLR-15062: /api/cluster/zk/ls should give the stat of the current node (noble)
* SOLR-15069: [child]: the parentFilter parameter is now fully optional and perhaps
obsolete.
(David Smiley)
* SOLR-15059: Add panels to the default Grafana dashboard for query performance
monitoring, includes updates
to the Prometheus exporter to export query performance metrics, such as QPS and
p95. (Timothy Potter)
Optimizations
---------------------
* SOLR-14975: Optimize CoreContainer.getAllCoreNames, getLoadedCoreNames and
getCoreDescriptors. (Bruno Roustant)
Bug Fixes
---------------------
* SOLR-14946: Fix responseHeader being returned in response when omitHeader=true
and EmbeddedSolrServer is used
as the client (Munendra S N)
* SOLR-14969: Prevent creating multiple cores with the same name which leads to
instabilities (race condition)
(Erick Erickson, Andreas Hubold)
* SOLR-14961: Fix for deleting zookeeper nodes with same path length. Only the
first zk-node was removed. (Michael Aleythe via Mike Drob)
* SOLR-14983: Fix response returning original score instead of reranked score due
to query and filter combining.
(Krishan Goyal, Jason Baik, Christine Poerschke)
* SOLR-15017: Core lib directories were not being recognized unless the solrconfig
included a <lib> directive.
(Thomas Mortagne)
* SOLR-14571: Download speed was hard-coded in the "Replication" screen of the Solr
Admin UI. (Florin Babes via Christine Poerschke)
* SOLR-15048: Fixed collapse parser behavior when dealing with docs boosted by
QueryElevationComponent that are in the
null group to treat them consistently regardless of collapse field type or group
head selector. (hossman)
* SOLR-15058: Enforce node_name contains colon and port and find first underscore
after colon to parse context
when converting a node_name to a base URL. (Timothy Potter, Su Sasa)
* SOLR-10860: Return proper error code for bad input in case of inplace updates
(Tomas Eduardo Fernandez Lobbe, Munendra S N)
* SOLR-14514: Avoid picking 'stream' method in JSON facet when any of 'allBuckets',
'numBuckets', and 'missing' parameters are enabled
(hossman, Munendra S N)
* SOLR-15070: Suggester requests made with SolrJ can now use XMLResponseParser
(Jason Gerlowski)
Other Changes
---------------------
* SOLR-14958: Refactor zkHost config logic to make testing easier and reduce risk
of incorrect value being used (hossman)
* SOLR-14999: New option for specifying the advertised Solr Port (hostPort). Still
defaults to "jetty.port". (Houston Putman)
* SOLR-15010: Thread dump using jattach if available and jstack is missing. (Eric
Pugh)
Consult the lucene/CHANGES.txt file for additional, low level, changes in this
release.
New Features
---------------------
* SOLR-14604: Add the ability to uninstall a package from with the Package CLI.
(MarcusSorealheis)
* SOLR-14588: Introduce Circuit Breaker Infrastructure and a JVM heap usage memory
tracking circuit breaker implementation (Atri Sharma)
Improvements
---------------------
* SOLR-14566: Request ID's ('rid') are now added by default to distributed search
requests, and can be used to correlate
logs from the receiving coordinator node with those from downstream shard
requests. This can be disabled by providing a
disableRequestId=true request parameter. (Jason Gerlowski)
* SOLR-11262: Add support to stream data out using push APIs when wt=xml (yonik,
Munendra S N)
* SOLR-14651: The MetricsHistoryHandler can more completely disable itself when you
tell it to.
Also, it now shuts down more thoroughly. (David Smiley)
* SOLR-13438: On deleting a collection, its config set will also be deleted iff it
has been auto-created, and not used by any other collection (Anderson Dorow)
* SOLR-14802: geodist: Support most (all?) spatial field types as an argument like
LLPSF, SRPTFT, and others.
(Tom Edge, Craig Wrigglesworth)
* SOLR-14933: Ability to add T and P type replica from admin UI (Sayan Das via Eric
Pugh)
Optimizations
---------------------
Bug Fixes
---------------------
* SOLR-14516: Fix NPE in JSON response writer(wt=json) with /get when writing non-
stored, non-indexed docvalue field
from an uncommitted document (noble, Ishan Chattopadhyaya, Munendra S N)
* SOLR-14751: Zookeeper Admin screen not working for old ZK versions (janhoy)
* SOLR-14714: Solr.cmd in windows loads the incorrect jetty module when using
java>=9 (Endika Posadas via
Erick Erickson)
* SOLR-14936: Fixed Grafana dashboard filters for collection, shard, replica and
core (janhoy)
* SOLR-14483: Fix empty drop down for adding replica in Admin UI (Sayan Das via
Eric Pugh)
Other Changes
---------------------
* SOLR-12987: Deprecated plugins/features are now logged once and with log category
org.apache.solr.DEPRECATED
(David Smiley)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
---------------------
* SOLR-14859: DateRangeField now throws errors when invalid field/fieldType options
specified; no longer silently
accepts incompatible option values (Jason Gerlowski, Chris Hostetter, Munendra S
N)
* SOLR-14768: Fix HTTP multipart POST to Solr -- a regression from 8.6.0. Many
Jetty classes are not classpath-visible
from the Solr webapp. (David Smiley)
* SOLR-14897: Fix unlimited number of forwarding the request from one node to
another node. (hossman, Munendra S N)
* SOLR-14898: Stop returning duplicate HTTP response headers when requests are
forward to another node. (hossman)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
---------------------
* SOLR-14751: Zookeeper Admin screen not working for old ZK versions (janhoy)
* SOLR-14663: Copy ConfigSet root data from base ConfigSet when using CREATE
command (Andras Salamon, Tomás Fernández Löbbe)
Bug Fixes
---------------------
New Features
---------------------
* SOLR-14210: HealthCheckHandler can now require that all cores are healthy before
returning 'OK'
To enable, add &requireHealthyCores=true to enable (janhoy, Houston Putman,
shalin)
* SOLR-14237: A new panel with security info in admin UI's dashboard (Ishan
Chattopadhyaya, Moshe Bla)
* SOLR-14478: Allow the diff Stream Evaluator to operate on the rows of a matrix
(Joel Bernstein)
* SOLR-13749: Join queries can now work cross-collection, even when sharded or when
spanning nodes.
(Dan Fox, Kevin Watters, via Gus Heck, David Smiley)
* SOLR-14481: Add drill Streaming Expression for efficient and accurate high
cardinality aggregation.
(Joel Bernstein)
* SOLR-14599: Package manager support for cluster level plugins (see SOLR-14404)
(Ishan Chattopadhyaya)
* SOLR-14590: Add support for RankFields. RankFields allow the use of per-document
scoring factors in a
way that lets Solr skip over non-competitive documents when ranking. See SOLR-
13289.
(Tomás Fernández Löbbe, Varun Thacker)
Improvements
---------------------
* SOLR-14316: Remove unchecked type conversion warning in JavaBinCodec's
readMapEntry's equals() method
(Aroop Ganguly, Tomás Fernández Löbbe, Noble Paul, Anshum Gupta)
* SOLR-14342: Load cores in an order that makes collections available sooner and
reduces leaderVoteWait timeouts in
large SolrCloud clusters. (David Smiley)
* SOLR-11334: hl.fl and tv.fl now parse field lists when they have both commas and
spaces
(David Smiley, Yasufumi Mizoguchi)
Optimizations
---------------------
* SOLR-8306: Do not collect expand documents when expand.rows=0 (Marshall Sanders,
Amelia Henderson)
* SOLR-14376: Optimize filter queries that match all docs. (David Smiley)
* SOLR-14472: Autoscaling "cores" preference now retrieves the core count more
efficiently, and counts all cores.
(David Smiley)
* SOLR-14554: Add BlockMax-WAND support for queries where the score is requested
(Tomás Fernández Löbbe)
* SOLR-14634: Limit the HTTP security headers to "/solr" end point (noble)
Bug Fixes
---------------------
* SOLR-13264: IndexSizeTrigger aboveOp / belowOp properties not in valid
properties.
(Christine Poerschke, ab)
* SOLR-14463: Solr Admin ZkStatus page now works with ZK 3.6, without 'For input
string: "null"' error (janhoy, Bernd Wahlen)
* SOLR-14456: Fix Content-Type header usage when a request is forwarded from Solr
node to Solr
node with compression enabled (samuelgmartinez via Houston Putman)
* SOLR-14498: Upgrade to Caffeine 2.8.4, which fixes the cache poisoning issue.
(Jakub Zytka, ab)
* SOLR-14517: Dont ignore 'mm' localparam on edismax queries using operators (Yuriy
Koval via Jason Gerlowski)
* SOLR-14491: Intercepting internode requests in KerberosPlugin when HTTP/2 client
is used (Ishan Chattopadhyaya, Moshe Bla)
* SOLR-14520: Fixed server errors from the json.facet allBuckets:true option when
combined with refine:true
(Michael Gibney, hossman)
* SOLR-13203: Return 400 status code on invalid dynamic field for Edismax's user
Fields
(Johannes Kloos, mrsoong via Munendra S N)
* SOLR-14577: Return 400 BAD REQUEST when field is missing on a Terms query parser
request
(Tomás Fernández Löbbe)
* SOLR-14409: Existing violations allow bypassing policy rules when adding new
replicas (noble, ab)
Other Changes
---------------------
* SOLR-14197: SolrResourceLoader: marked many methods as deprecated, and in some
cases rerouted exiting logic to avoid
them. (David Smiley)
* SOLR-10157: Improve error messages when unknown aggregations are specified in the
request (hossman, Munendra S N)
* SOLR-14351: Hardened MDC logging; sometimes info was absent (David Smiley)
* SOLR-11934: Visit Solr logging, it's too noisy. Note particularly that the
messages for
opening a new searcher have changed and include the autowarm time. (Erick
Erickson)
* SOLR-14548: Address warning: static member should be qualified by type name (Mike
Drob)
* SOLR-13268: Clean up any test failures resulting from defaulting to async logging
(Erick Erickson)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
---------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
---------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
New Features
---------------------
* SOLR-12490: Introducing json.queries in JSON Request API. Every property of this
object holds one or many named
Query DSL queries. It's optional and doesn't impact response without explicit
referencing these queries by names
(Anatolii Siuniaev via Mikhail Khludnev)
* SOLR-14130: Add postlogs command line tool for indexing Solr logs (Joel
Bernstein)
* SOLR-13749: New cross collection join filter (XCJF) (Dan Fox, Kevin Watters, via
Gus Heck)
Improvements
---------------------
* SOLR-14120: Define JavaScript methods 'includes' and 'startsWith' to ensure
AdminUI can be displayed when using
Internet Explorer 11 (jafurrer).
* SOLR-14042: Fix varargs precommit warnings (Andraas Salamon via Jason Gerlowski)
* SOLR-14095: Replace Java serialization with Javabin in the Overseer queues (Tomás
Fernández Löbbe)
* SOLR-14154: Return correct isolation level when retrieving it from the SQL
Connection (Nick Vercammen, Kevin Risden)
* SOLR-10567: Add Support for DateRangeField in JSON Facet range (Stephen Weiss,
Munendra S N)
* SOLR-14194: Highlighting now works when the uniqueKey field is not stored but has
docValues. And the original
highlighter can now highlight text fields from docValues. (Andrzej Wislowski,
David Smiley)
Optimizations
---------------------
Bug Fixes
---------------------
* SOLR-14017: Ensure bin/solr's -q and -v options work with examples (Andy Vuong
via Jason Gerlowski)
* SOLR-13089: Fix lsof edge cases in the solr CLI script (Martijn Koster via
janhoy)
* SOLR-14207: Fix logging statements with less or more arguments than placeholders.
(shalin)
* SOLR-13897: Fix unsafe publication of Terms object in ZkShardTerms that can cause
visibility issues
and race conditions under contention. (shalin)
* SOLR-14090: Handle the case in `delete-copy-field` when source is a dynamic field
(Frank Iversen, Munendra S N)
* SOLR-14250: Do not log error when trying to consume non-existing input stream due
to Expect: 100-continue (janhoy)
* SOLR-13411: Deny atomic update for route.field, uniqueKey, version and throw
exception. (Dr Oleg Savrasov via Mikhail Khludnev)
* SOLR-14299: IndexFetcher doesn't reset error count to 0 after the last packet is
received (Pushkar Raste via Mike Drob)
Other Changes
---------------------
* SOLR-14047: Make sure tests don't pickup other Hadoop installs (Kevin Risden)
* SOLR-11035: (at least) 2 distinct failures possible when clients attempt searches
during SolrCore reload. Removed Bandaid kludge. (Erick Erickson)
* SOLR-14114: Add WARN to Solr log that embedded ZK is not supported in production
(janhoy)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
---------------------
* SOLR-14158: Package manager now stores keys in package store instead of ZK. If
you're using package manager and have already
added any repositories, then you would need to re-add all the keys from /keys/exe
location, one-by-one, using:
"bin/solr add-key <keyfile.der>"
Bug Fixes
----------------------
Improvements
---------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
---------------------
* SOLR-13823:
org.apache.solr.search.grouping.distributed.command.QueryCommand.Builder has new
method 'setMainQuery' which is used
to set top-level query. build() would fail if called without setting mainQuery.
* SOLR-14071: Untrusted configsets (ones that are uploaded via unsecured configset
API) cannot use <lib> directive.
Consider enabling authentication/authorization so that the uploaded configsets
are trusted.
Note: If you already have a collection using untrusted configset that uses <lib>
directive, it will not load after
upgrading to 8.4. You can re-upload your configset using "bin/solr zk -
upconfig .." or place your libraries in the
classpath and restart Solr.
* SOLR-14072: The "Blob Store" API and "runtimeLib" plugin mechanism that uses it
is now considered deprecated. The
replacement to it is the "Package Management" system, which includes a "File
Store". These are experimental currently
but will grow/stabalize/mature.
New Features
---------------------
* SOLR-13821: A Package store to store and load package artifacts (noble, Ishan
Chattopadhyaya)
* SOLR-13662: A CLI based Package Manager ("bin/solr package help" for more
details).
(Ishan Chattopadhyaya, noble, David Smiley, Jan Hoydahl)
* SOLR-14060: Allow the random Streaming Expression to create the x-axis (Joel
Bernstein)
Improvements
---------------------
* SOLR-13731: 'javabin' must support a 1:1 mapping of the JSON update format
(noble)
* SOLR-13865: Move replica routing code to SolrJ. (Houston Putman via Tomas
Fernandez-Lobbe)
* SOLR-13844: Remove replica recovery terms with the replica term (Houston Putman
via Cao Manh Dat)
* SOLR-13907: In the Cloud/tree section of the Admin UI, fix metadata panel and
force an horizontal scrollbar for the tree
(Richard Goodman via Tomás Fernández Löbbe)
* SOLR-13987: Admin UI should not rely on javascript eval() (rmuir, Kevin Risden)
* SOLR-13957: Add sensible defaults for the facet, random, facet2D, timeseries,
stats
and update Streaming Expressions (Joel Bernstein)
* SOLR-13970: Fail the request when collapsing or expand is used with Grouping.
(Erick Erickson, Joel Bernstein, Munendra S N)
Bug Fixes
---------------------
* SOLR-9802: Fix grouping failure for date field in solrcloud (Erick Erickson,
Munendra S N, Vitaly Lavrov)
* SOLR-12393: Compute score if requested even when expanded docs not sorted by
score in ExpandComponent.
(David Smiley, Munendra S N)
* SOLR-13823: Fix ClassCastEx when score is requested with group.query. This also
fixes score not being generated
for distributed group.query case. (Uwe Jäger, Munendra S N)
* SOLR-13207: In dismax and edismax "minimum should match" queries, the < operator
not followed by a number will now return
an HTTP 400 error rather than 500, and the error message will explain that < must
be followed by a number. (Chris Hennick)
* SOLR-13762: Fix BinaryField support for non-binary wt's (Thomas Woeckinger via
Jason Gerlowski)
* SOLR-13882: Collections API COLSTATUS does not check live_nodes when reporting
replica's status.
(Erick Erickson, Andrzej Białecki)
* SOLR-13941: Tests configure Jetty differently than when running via start.jar
(janhoy, Uwe Schindler)
* SOLR-13954: Embedded ZooKeeper in Solr now does not try to load JettyAdminServer
(janhoy)
* SOLR-13087: Use EUID instead of whoami to check for root in the bin/solr script
(Martijn Koster via Jason Gerlowski)
* SOLR-13563: SPLITSHARD using LINK method fails on disk usage checks. (Andrew
Kettmann, ab)
* SOLR-13945: Fix: SPLITSHARD can cause data loss on a failure to commit after the
sub-shards are active and a rollback
is done to make parent shard active again (Ishan Chattopadhyaya, ab)
Other Changes
---------------------
* SOLR-13824: Strictly reject anything after JSON in most APIs (Mikhail Khludnev,
Munendra S N)
* SOLR-13782: Solr Ref Guide no longer published in PDF format. (Cassandra Targett)
* SOLR-12193: Move some log messages to TRACE level (gezapeti, janhoy)
* SOLR-13992: Code refactored to have collection name, slice name in Replica, Slice
(noble)
* SOLR-13998: Add thread safety annotations to Solr. This only introduces the
annotations and doesn't add these to
existing classes. (Anshum Gupta, Mark Miller)
* SOLR-13818: Upgrade jackson to 2.10.0 (marungo, Andras Salamon via Kevin Risden)
* SOLR-13999: Document zkHost param on topic() stream (Vergil Cheynov via Jason
Gerlowski)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
Bug Fixes
----------------------
* SOLR-13971: Velocity response writer's resource loading now possible only through
startup parameters.
(Ishan Chattopadhyaya, David Smiley)
* SOLR-13941: Tests configure Jetty differently than when running via start.jar
(janhoy, Uwe Schindler)
Upgrade Notes
----------------------
* Users who have written test cases that extend SolrTestCaseJ4 may see
NullPointerExceptions if
their tests directly reference both SolrTestCaseJ4.initCoreDataDir and
SolrTestCaseJ4.deleteCore().
This change in behavior is due to a bug fix in deleteCore() to ensure the dataDir
is properly reset
in tests that call initCore()/deleteCore() multiple times in a given test
(class). initCoreDataDir
is now deprecated, and users are encouraged to use
SolrTestCaseJ4.initAndGetDataDir() in it's place.
See SOLR-13664 for more details.
New Features
----------------------
* SOLR-13375: Two dimensional routed aliases are now available for organizing
collections based on the data values
of two fields. (Gus Heck)
* SOLR-13622: Add cat() stream source to create tuples from lines in local files
(Jason Gerlowski and Joel Bernstein)
* SOLR-13272: Add support for arbitrary ranges in JSON facet's Range facets.
(Apoorv Bhawsar, Munendra S N, Mikhail Khludnev, Ishan Chattopadhyaya, Jan
Høydahl)
* SOLR-13632: Support integral plots, cosine distance and string truncation with
math expressions (Joel Bernstein)
* SOLR-13667: Add upper, lower, trim and split Stream Evaluators (Joel Bernstein)
Improvements
----------------------
* SOLR-12368: Support InPlace DV updates for a field that does not yet exist in any
documents
(hossman, Simon Willnauer, Adrien Grand, Munendra S N)
* SOLR-6305: Ability to set the replication factor for index files created by
HDFSDirectoryFactory (Boris Pasko via Kevin Risden)
* SOLR-13542: Code cleanup - Avoid using stream filter count where possible (Koen
De Groote via Tomás Fernández Löbbe)
* SOLR-9658: Max idle time support for SolrCache implementations. (hoss, ab)
* SOLR-13773: Add Prometheus Exporter GC and Heap options. (Houston Putman via
Anshum Gupta, David Smiley)
Bug Fixes
----------------------
* SOLR-13206: Fix AIOOBE when group.facet is specified with group.query and return
proper error code. (Marek, Munendra S N)
* SOLR-11556: Backup and restore command really supports picking one of a few
repositories by
repository parameter (Timothy Potter via Mikhail Khludnev)
* SOLR-13672: Cloud -> Zk Status page now parses response from Zookeeper 3.5.5
correctly (Jörn Franke, janhoy, Shawn Heisey)
* SOLR-13141: CDCR bootstrap does not replicate index to the replicas of target
cluster.
(Krzysztof Watral, Amrit Sarkar, Tim, Tdspringsteen, shalin)
* SOLR-13700: Fixed a race condition when initializing metrics for new security
plugins on security.json change (hossman)
* SOLR-13704: Improve error message and change error code to 400 for client errors
in ExpandComponent (Munendra S N)
* SOLR-13717: Fixed distributed grouping when multiple 'fl' params are specified
(hossman, Christine Poerschke)
* SOLR-13022: Fix NPE when sorting by non-existent aggregate function in JSON Facet
(hossman, Munendra S N)
* SOLR-13417: Handle stats aggregation on date and string fields in SolrJ's JSON
facet response processing
(Jason Gerlowski, Munendra S N)
* SOLR-13712: JMX MBeans are not exposed because of race condition between creating
platform mbean server and
registering mbeans. (shalin)
* SOLR-13760: Fix regression in support for Date math in TRA start date that was
introduced by SOLR-13375
* SOLR-13815: Live shard split (where updates actively continue during the split)
can lose updates due to cluster
state happening to change between checking if the current shard is active and
later checking if there are any
sub-shard leaders to forward the update to. (yonik)
* SOLR-13843: The MOVEREPLICA API ignores replica type and always adds 'nrt'
replicas (Amrit Sarkar via shalin)
* SOLR-13779: Use the safe fork of simple-xml for clustering contrib. (Dawid Weiss)
* SOLR-13573: Add SolrRangeQuery getters for upper, lower bound (Brian Rhees via
Jason Gerlowski)
* SOLR-13658: Precommit fail Java "var" until 9x. Fail "var...<>" constructs
entirely (Erick Erickson)
* SOLR-13747: New
TestSSLTestConfig.testFailIfUserRunsTestsWithJVMThatHasKnownSSLBugs() to give
people running
tests more visibility if/when they use a known-buggy JVM causing most SSL tests
to silently SKIP. (hossman)
* SOLR-13812: Add javadocs, uneven rejection and basic test coverage for the
SolrTestCaseJ4.params method.
(Diego Ceccarelli, Christine Poerschke, Munendra S N)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* SOLR-13420: Routed Aliases now use collection properties rather than core
properties to identify collections that
belong to the alias by default. This should be invisible and fully backwards
compatible from within solr, and
existing routed alias collections with core based properties will continue to
work, but new collections created will
not add a property to core.properties anymoore so any external code that
inspected core.properties will not find the
'routedAliasName' key in new cores belonging to routed aliases.
* SOLR-13419: Time Routed Aliases now have a '__TRA__' infix preceding the
timestamp portion of the collection names.
collections with the old format will not be altered and will continue to work,
but any new TRA's or new collections
for existing TRA's will use the new format. Solr will handle this invisibly, but
any external code that attempted to
predict collection names in TRA's will probably need adjustment.
New Features
----------------------
* SOLR-13445: Preferred replicas on nodes with same system properties as the query
master (Cao Manh Dat)
Improvements
----------------------
* SOLR-11558: It would be nice if the Graph section of the Cloud tab in the Admin
UI could give some more
information about the replicas of a collection (Erick Erickson)
* SOLR-13347: Transaction log to natively support UUID types (Thomas Wöckinger via
noble)
* SOLR-13003: Query Result Cache does not honor maxRamBytes parameter. (ab, Brian
Ecker)
Bug Fixes
----------------------
* SOLR-13469: Fix rejected requests during full disk full + IndexFetch to use 503
not 403 (hossman)
* SOLR-13489: Stop the leader from trying to rejoin the election on session
expiration and harden our zk reconnect code path.
(Mark Miller, Anshum Gupta)
* SOLR-12127: Updates containing 'set' operation with value null or empty list
should be considered as Atomic Update
(Oliver Kuldmäe, Munendra S N, Ishan Chattopadhyaya)
* SOLR-13187: Fix NPE when invalid query parser is specified and return 400 error
code.
(Cesar Rodriguez, Marek, Charles Sanders, Munendra S N, Mikhail Khludnev)
* SOLR-12979: Improve error message and change error code to 400 when collapse
field is non-docValued and
non-uninvertible (hossman, Munendra S N)
* SOLR-9409: Improve error message for unsupported field types and return 400 error
code on
unsupported values in collapsing (hossman, Munendra S N)
* SOLR-13532: Fix http timeout and error logging bugs in RecoveryStrategy. (Suril
Shah, hossman)
* SOLR-13619: Kerberos plugin to pass original user principal to avoid 403 on nodes
not hosting a collection
(adfel, Ishan Chattopadhyaya, noble)
Other Changes
----------------------
* SOLR-13235: Split Collections API Ref Guide page into several smaller child pages
(Cassandra Targett)
* SOLR-12364: Add test cases for edismax boost (David Smiley, Munendra S N)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
----------------------
* SOLR-13510: Intermittent 401's for internode requests with basicauth enabled (Cao
Manh Dat, Colvin Cowie)
* SOLR-13523: In 8.1, Atomic Updates were broken (NPE) when the schema declared the
new _nest_path_ field even if you
weren't using nested docs. In-place updates were not affected (worked).
Reminder: if you don't need nested docs then remove both _root_ and _nest_path_ !
(David Smiley)
* SOLR-13159: Fix atomic update encoding issue for UUID, enum, bool, and binary
fields (Thomas Wockinger via Jason Gerlowski)
Improvements
----------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
----------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* When requesting the status of an async request via REQUESTSTATUS collections API,
the response will
include the list of internal async requests (if any) in the "success" or "failed"
keys (in addition
to them being included outside those keys for backwards compatibility). See SOLR-
12708 for more
details
* SOLR-13335: 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.
* SolrGangliaReporter has been removed from Solr because support for Ganglia has
been removed from Dropwizard Metrics 4
due to a transitive dependency on LGPL.
* SOLR-13394: The default GC has been changed from CMS to G1. To override this (in
order to switch to CMS or any
other GC), use GC_TUNE section of bin/solr.in.sh or bin/solr.in.cmd.
* SOLR-5970: Until now, the CREATE command of Collections API returned status 0
even in case of failure. Now, the status
code will be non-zero in case of failures (e.g. 4xx, 5xx).
New Features
----------------------
* SOLR-13131: Category Routed Aliases are now available for data driven assignment
of documents to collections based on
values of a field. The Ref Guide now has a page dedicated to explaining the
different types of aliases. (Gus Heck,
Moshe Bla)
* SOLR-12121: JWT Token authentication plugin with OpenID Connect implicit flow
login through Admin UI (janhoy)
* SOLR-13262: Add collection RENAME command and support using aliases in most
collection admin commands. (ab)
Bug Fixes
----------------------
* SOLR-11876: In-place update fails when resolving from Tlog if schema has a
required field (Justin Deoliveira, janhoy,
Ishan Chattopadhyaya)
* SOLR-12708: Async collection actions should not hide internal failures (Mano
Kovacs, Varun Thacker, Tomás Fernández Löbbe)
* SOLR-9882: 500 error code on breaching timeAllowed by core and distributed (fsv)
search,
old and json facets (Mikhail Khludnev)
* SOLR-13285: Updates with enum fields and javabin cause ClassCastException (noble)
* SOLR-13244: Admin UI Nodes view fails and is empty when a node is temporarily
down (janhoy)
* SOLR-13349: High CPU usage in Solr due to Java 8 bug (Erick Erickson)
* SOLR-13331: Atomic Update 'remove' operations broken for certain field types in
SolrJ (Thomas Wockinger via Jason Gerlowski)
* SOLR-12371: Editing authorization config via REST API now works in standalone
mode (janhoy)
* SOLR-13081: In-Place Update doesn't work with route.field (Dr Oleg Savrasov via
Mikhail Khludnev)
* SOLR-13343: Fix spacing issue in browser log (Marcus Eagan via Jason Gerlowski)
* SOLR-12291: prematurely reporting not yet finished async Collections API call as
completed
when collection's replicas are colocated at least at one node (Varun Thacker,
Mikhail Khludnev)
* SOLR-13410: Designated overseer wasn't able to rejoin election queue upon restart
(Ishan Chattopadhyaya,
Kesharee Nandan Vishwakarma)
Improvements
----------------------
* SOLR-13398: Move log line "Processing SSL Credential Provider chain..." from INFO
to DEBUG (janhoy)
* SOLR-11035: (at least) 2 distinct failures possible when clients attempt searches
during SolrCore reload,
added test band-aid for DocValuesNotIndexedTest.
* SOLR-13337: Only request the minimum required number of terms from each shard
when using terms.sort=index and none
are discarded due to terms.min/maxcount (Morten Bøgeskov,Munendra S N via Mikhail
Khludnev)
Other Changes
----------------------
* SOLR-12753: Async logging ring buffer and OOM error. When very long messages are
written (1M messages or so),
it can produce an OOM error. Log messages are truncated at 10K via configuration
in the log4j2.xml files.
* SOLR-13268: Clean up any test failures resulting from defaulting to async logging
(Erick Erickson)
* SOLR-13307: Ensure HDFS tests clear System properties they set (Kevin Risden)
* SOLR-13414: SolrSchema - Avoid NPE if Luke returns field with no type defined
(Kevin Risden)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* Due to the introduction of LIR redesign since Solr 7.3 (SOLR-11702) and the
removing of old LIR implementation in Solr 8.
Rolling updates are not possible unless all nodes must be on Solr 7.3 or higher.
If not updates can be lost.
* Solr nodes can now listen and serve HTTP/2 requests. Most of internal requests
(sent by UpdateShardHandler, HttpShardHandler)
Http2SolrClient is used. Since by default, internal requests are sent by using
HTTP/2,
Solr 8.0 nodes can't talk to old nodes (7.x). However we can follow these steps
to do rolling updates:
- Do rolling updates as normally, but the Solr 8.0 nodes must start with -
Dsolr.http1=true as startup parameter.
By using this parameter internal requests are sent by using HTTP/1.1
- When all nodes are upgraded to 8.0, restart them, this time -Dsolr.http1
parameter should be removed.
* ALPN is not supported in Java 8 or lower version therefore when a node started in
Java 8 or a lower version with SSL enabled,
it will send and can only be able to handle HTTP/1.1 requests. In case of using
SSL Java 9 or latter versions are recommended.
* LUCENE-7996: The 'func' query parser now returns scores that are equal to 0
when a negative value is produced. This change is due to the fact that
Lucene now requires scores to be positive. (Adrien Grand)
* LUCENE-8267: Memory codecs have been removed from the codebase (MemoryPostings,
MemoryDocValues). If you used postingsFormat="Memory" or docValuesFormat="Memory"
then either remove it to use the default or experiment with one of the others.
(Dawid Weiss)
* SOLR-12593: The "extraction" contrib (Solr Cell) no longer does any date parsing,
and thus no longer has the
"date.formats" configuration. To ensure date strings are properly parsed, use
ParseDateFieldUpdateProcessorFactory
(an URP) commonly registered with the name "parse-date" in "schemaless mode".
(David Smiley, Bar Rotstein)
* SOLR-12535: Solr no longer accepts index time boosts in JSON provided to Solr.
This used to be provided like so:
{'id':'1', 'val_s':{'value':'foo', 'boost':2.0}} but will now produce an error.
A object/map structure will now only
be interpreted as a child document or an atomic update; nothing else. A
uniqueKey is currently required on all child
documents to be interpreted as such, though this may change in the future.
(David Smiley)
* SOLR-12633: When JSON data is sent to Solr with nested child documents split
using the "split" parameter, the child
docs will now be associated to their parents by the field/label string used in
the JSON instead of anonymously. Most
users probably won't notice the distinction since the label is lost any way
unless special fields are in the schema.
This choice used to be toggleable with an internal/expert "anonChildDocs"
parameter flag which is now gone.
(David Smiley)
* SOLR-9515: Hadoop dependencies have been upgraded to Hadoop 3.2.0 from 2.7.2.
(Mark Miller, Kevin Risden)
* SOLR-13248: The default replica placement strategy used in Solr has been reverted
to the 'legacy' policy used by Solr
7.4 and previous versions. This is due to multiple bugs in the autoscaling based
replica placement strategy that was
made default in Solr 7.5 which causes multiple replicas of the same shard to be
placed on the same node in addition
to the maxShardsPerNode and createNodeSet parameters being ignored. Although the
default has changed, autoscaling
will continue to be used if a cluster policy or preference is specified or a
collection level policy is in use.
The default replica placement strategy can be changed to use autoscaling again by
setting a cluster property:
curl -X POST -H 'Content-type:application/json' --data-binary '
{
"set-obj-property": {
"defaults" : {
"cluster": {
"useLegacyReplicaAssignment":false
}
}
}
}' http://$SOLR_HOST:$SOLR_PORT/api/cluster
New Features
----------------------
* SOLR-12591: Expand the set of recognized date format patterns of schemaless mode
to subsume those handled by the
"extract" contrib (Solr Cell / Tika). This is primarily a change in
configuration of the default configSet for more
patterns, but also included enabling "lenient" parsing in
ParseDateFieldUpdateProcessorFactory. The default
locale was changed from ROOT to en_US since well-known patterns assume this
locale.
(David Smiley, Bar Rotstein)
* SOLR-12639: Umbrella JIRA for adding support HTTP/2 (Cao Manh Dat)
Bug Fixes
----------------------
* SOLR-13126: Query boosts were not being combined correctly for documents where
not all boost queries
matched (Alan Woodward, Mikhail Khludnev)
* SOLR-13248: Autoscaling based replica placement is broken out of the box. Solr
7.5 enabled autoscaling based replica
placement by default but in the absence of default cluster policies, autoscaling
can place more than 1 replica of the
same shard on the same node. Also, the maxShardsPerNode and createNodeSet was not
respected. Due to these reasons,
this issue reverts the default replica placement policy to the 'legacy'
assignment policy that was the default until
Solr 7.4. (Gus Heck, Andrzej Bialecki, Bram Van Dam, shalin)
*SOLR-13299: Fix Windows startup script to disable HTTP/2 if TLS is enabled on Java
8. (Uwe Schindler)
Improvements
----------------------
* SOLR-6117: The response format has changed slightly for ReplicationHandler error-
cases. All errors now have a non-200
'status' field, a 'message' field giving more details on the error, and an
optional 'exception' field. (Shalin Mangar,
Jason Gerlowski)
Optimizations
----------------------
Other Changes
----------------------
* SOLR-12614: Make "Nodes" view the default in AdminUI "Cloud" tab (janhoy)
* SOLR-12620: Remove the Admin UI Cloud -> Graph (Radial) view (janhoy)
* SOLR-12535: Solr no longer accepts index time boosts in JSON provided to Solr.
(David Smiley)
* SOLR-13086: Improve the error message reported by DocumentObjectBinder when a
setter is not found (Gus Heck)
* SOLR-9515: Hadoop dependencies have been upgraded to Hadoop 3.2.0 from 2.7.2.
(Mark Miller, Kevin Risden)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug fixes
----------------------
* SOLR-13779: Use the safe fork of simple-xml for clustering contrib. (Dawid Weiss,
Sachin Pattan)
* SOLR-12291: prematurely reporting not yet finished async Collections API call as
completed
when collection's replicas are colocated at least at one node (Varun Thacker,
Mikhail Khludnev)
* SOLR-13971: Velocity response writer's resource loading now possible only through
startup parameters. Also, removed velocity
response writer from _default configset. (Ishan Chattopadhyaya, Sachin Pattan)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* SOLR-13234: The Prometheus Metric Exporter now collects metrics from Solr at a
fixed schedule that is controlled
by the exporter itself. The default interval is 60s but it can be changed by
specifying the --scrape-interval
command line parameter to the tool. The collected metrics are cached and returned
for any requests coming in before
the next scheduled collection. This can impact the freshness of the metrics if
prometheus is configured to query the
tool more frequently.
Bug fixes
----------------------
* SOLR-12708: Async collection actions should not hide internal failures (Mano
Kovacs, Varun Thacker, Tomás Fernández Löbbe)
* SOLR-11876: In-place update fails when resolving from Tlog if schema has a
required field (Justin Deoliveira, janhoy,
Ishan Chattopadhyaya)
* SOLR-13349: High CPU usage in Solr due to Java 8 bug (Erick Erickson)
* SOLR-13331: Atomic Update 'remove' operations broken for certain field types in
SolrJ (Thomas Wockinger via Jason Gerlowski)
* SOLR-13285: Updates with enum fields and javabin cause ClassCastException (noble)
* SOLR-12371: Editing authorization config via REST API now works in standalone
mode (janhoy)
* SOLR-13126: Query boosts were not being combined correctly for documents where
not all boost queries
matched (Alan Woodward, Mikhail Khludnev)
* SOLR-13414: SolrSchema - Avoid NPE if Luke returns field with no type defined
(Kevin Risden)
* SOLR-13410: Designated overseer wasn't able to rejoin election queue at head upon
restart (Ishan Chattopadhyaya,
Kesharee Nandan Vishwakarma)
* SOLR-13398: Move log line "Processing SSL Credential Provider chain..." from INFO
to DEBUG (janhoy)
Other Changes
----------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* SOLR-13248: The default replica placement strategy used in Solr has been
reverted to the 'legacy' policy used by Solr
7.4 and previous versions. This is due to multiple bugs in the autoscaling based
replica placement strategy that was
made default in Solr 7.5 which causes multiple replicas of the same shard to be
placed on the same node in addition
to the maxShardsPerNode and createNodeSet parameters being ignored. Although the
default has changed, autoscaling
will continue to be used if a cluster policy or preference is specified or a
collection level policy is in use.
The default replica placement strategy can be changed to use autoscaling again
by setting a cluster property:
curl -X POST -H 'Content-type:application/json' --data-binary '
{
"set-obj-property": {
"defaults" : {
"cluster": {
"useLegacyReplicaAssignment":false
}
}
}
}' http://$SOLR_HOST:$SOLR_PORT/api/cluster
Bug Fixes
----------------------
* SOLR-13248: Autoscaling based replica placement is broken out of the box. Solr
7.5 enabled autoscaling based replica
placement by default but in the absence of default cluster policies, autoscaling
can place more than 1 replica of the
same shard on the same node. Also, the maxShardsPerNode and createNodeSet was not
respected. Due to these reasons,
this issue reverts the default replica placement policy to the 'legacy'
assignment policy that was the default until
Solr 7.4. (Gus Heck, Andrzej Bialecki, Bram Van Dam, shalin)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* SOLR-12770: The 'shards' parameter handling logic changes to use a new config
element to determine what hosts can be
requested. Please see Apache Solr Reference Guide chapter "Distributed Requests"
for details, as well as SOLR-12770.
New Features
----------------------
* SOLR-12839: JSON 'terms' Faceting now supports a 'prelim_sort' option to use when
initially selecting
the top ranking buckets, prior to the final 'sort' option used after refinement.
(hossman)
* SOLR-7896: Add a login page to Admin UI, with initial support for Basic Auth
(janhoy)
* SOLR-13116: Add Admin UI login support for Kerberos (janhoy, Jason Gerlowski)
* SOLR-12984: The search Streaming Expression should properly support and push down
paging
when using the /select handler (Joel Bernstein)
Bug Fixes
----------------------
* SOLR-13014: URI Too Long with large streaming expressions in SolrJ (janhoy)
* SOLR-13066: A failure while reloading a SolrCore can result in the SolrCore not
being closed. (Mark Miller)
* SOLR-11296: Spellcheck parameters not working in new UI (Matt Pearce via janhoy)
* SOLR-10975: New Admin UI Query does not URL-encode the query produced in the URL
box (janhoy)
* SOLR-13080: The "terms" QParser's "automaton" method semi-required that the input
terms/IDs be sorted. This
query parser now does this. Unclear if this is a perf issue or actual bug.
(Daniel Lowe, David Smiley)
* SOLR-13082: A trigger that creates trigger events more frequently than the cool
down period can starve other triggers.
This is mitigated to some extent by randomly choosing the trigger to resume after
cool down. It is recommended that
scheduled triggers not be used for very frequent operations to avoid this
problem.
(ab, shalin)
* SOLR-11853: Solr installer fails on SuSE linux (Markus Mandalka via janhoy)
* SOLR-13168: Fixed a bug in TestInjection that caused test only code to be invoked
when TLOG replicas
recieved commits if java assertions were enabled. (hossman)
Improvements
----------------------
* SOLR-12881: Remove unneeded import statements (Peter Somogyi via Erick Erickson)
* SOLR-12896: Introduce more checks for shutdown and closed to improve clean close
and shutdown. (Mark Miller)
* SOLR-12804: Remove static modifier from Overseer queue access. (Mark Miller)
* SOLR-12973: Admin UI "Nodes" view support for replica* replica names. (Daniel
Collins, Christine Poerschke, janhoy)
* SOLR-13016: Computing suggestions when policy have "#EQUAL" or "#ALL" rules take
too long (noble)
Other Changes
----------------------
* SOLR-12923: The new AutoScaling tests are way too flaky and need special
attention. (Mark Miller)
* SOLR-12932: ant test (without badapples=false) should pass easily for developers.
(Mark Miller)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* SOLR-12767: The min_rf parameter is no longer needed, Solr will always return the
achieved replication factor (rf)
in the response header.
New Features
----------------------
* SOLR-9317: ADDREPLICA command should be able to add more than one replica to a
collection,shard at a time.
The API now supports 'nrtReplicas', 'tlogReplicas', 'pullReplicas' parameters as
well 'createNodeSet' parameter.
As part of this change, the CREATESHARD API now delegates placing replicas
entirely to the ADDREPLICA command
and uses the new parameters to add all the replicas in one API call. (shalin)
* SOLR-12780: Add support for Leaky ReLU and TanH activations in contrib/ltr
NeuralNetworkModel class.
(Kamuela Lau, Christine Poerschke)
* SOLR-12846: Added support for "host" variable in autoscaling policy rules (noble)
* SOLR-5004: Splitshard collections API now supports splitting into more than 2
sub-shards directly i.e. by providing a
numSubShards parameter (Christine Poerschke, Anshum Gupta)
* SOLR-12828: Add oscillate Stream Evaluator to support sine wave analysis. (Joel
Bernstein)
* SOLR-12862: Add log10 Stream Evaluator and allow the pow Stream Evaluator to
accept a vector of exponents (Joel Bernstein)
* SOLR-11997: Suggestions API/UI should show an entry where a violation could not
be resolved (noble)
* SOLR-12971: Add pivot Stream Evaluator to pivot facet co-occurrence counts into a
matrix (Joel Bernstein)
* SOLR-12962: Added a new 'uninvertible' option for fields and fieldtypes. This
defaults to 'true' for
backcompat allowing a FieldCache to be built for indexed fields as needed, but
users are encouraged
to set this to false (using docValues as needed) to reduce the risk of large
fluxuations in heap
size due to unexpected attempts to sort/facet/function on non-docValue fields.
(hossman)
Other Changes
----------------------
* SOLR-12756: Refactor Assign and extract replica placement strategies out of it.
Now, assignment is done with the help
of a builder class instead of calling a method with large number of arguments.
The number of special cases that had
to be handled have been cut down as well. (shalin)
* SOLR-12835: Document statistics exposed by the Query Result Cache when maxRamMB
is configured. (shalin)
* SOLR-12423: Upgrade to Tika 1.19.1 when available (Tim Allison via Erick
Erickson)
* SOLR-12746: Simplify the Ref Guide HTML structure and use semantic HTML tags
where possible. Adds new template files
for Asciidoctor HTML conversion. Building the HTML version now requires the Slim
gem. (Cassandra Targett)
* SOLR-13006: ZkNodeProps to be able to load from both javabin and JSON (noble)
Bug Fixes
----------------------
* SOLR-11836: FacetStream works with bucketSizeLimit of -1 which will fetch all the
buckets.
(Alfonso Muñoz-Pomer Fuentes, Amrit Sarkar via Varun Thacker)
* SOLR-12750: Migrate API should lock the collection instead of shard. (shalin)
* SOLR-12767: When using min_rf, shard leader skipped bad replicas instead of
marking them for recovery, this could
create inconsistencies between replicas of the same shard. min_rf parameter is
now deprecated, and even if provided
replicas that don't ack an update from the leader will be marked for recovery.
(Tomás Fernández Löbbe)
* SOLR-12814: Metrics history causing "HttpParser URI is too large >8192" when many
collections (janhoy)
* SOLR-12851: Improvements and fixes to let and select Streaming Expressions (Joel
Bernstein)
* SOLR-12978: In autoscaling NPE thrown for nodes where value is absent (noble)
Improvements
----------------------
* SOLR-12767: Solr now always includes in the response of update requests the
achieved replication factor
(Tomás Fernández Löbbe)
* SOLR-12739: Make autoscaling policy based replica placement the default strategy
for placing replicas. (shalin)
* SOLR-12880: Json Facets: Show the FacetProcessor class name instead of the
FacetRequest in the JSON Facets debug-trace
output (Tim Underwood)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* The data-driven schema no longer returns the *_str field-copy of text fields by
default. The *_str field is still
created and can be used for e.g. sorting, but to retrieve it you now need to
explicitly list it in "fl" (SOLR-12350)
* SOLR-11694: Extremely outdated UIMA contrib module has been removed (Alexandre
Rafalovitch)
* SOLR-12398: The heatmap facet response structure, when returned in JSON, changed
from an even/odd name/value array to
an object style. Although the object style makes more sense, this was an
overlooked back-compat break; sorry.
New Features
----------------------
* SOLR-12362: Uploading docs in JSON now supports child documents as field values,
thus providing a label to the
relationship instead of the current "anonymous" relationship. Use of this
experimental feature sometimes requires a
anonChildDocs=false parameter until Solr 8 due to syntax ambiguities. (Moshe
Bla, David Smiley)
* SOLR-12485: Uploading docs in XML now supports child documents as field values,
thus providing a label to the
relationship instead of the current "anonymous" relationship. (Moshe Bla, David
Smiley)
* SOLR-12519: The [child] transformer now returns a nested child doc structure
(attached as fields if provided this way)
provided the schema has the _nest_path_ field. This is part of a broader
enhancement of nested docs.
(Moshe Bla, David Smiley)
* SOLR-12722: The [child] transformer now takes an 'fl' param to specify which
fields to return. It will evaluate
doc transformers if present. In 7.5 a missing 'fl' defaults to the current
behavior of all fields, but in 8.0
defaults to the top/request "fl". (Moshe Bla, David Smiley)
* SOLR-11578: Solr 7 Admin UI (Cloud > Graph) should reflect the Replica type to
give a more accurate representation
of the cluster. (Rhoit Singh via Erick Erickson)
* SOLR-12506: Add SolrJ support for the modify collection API. (shalin)
* SOLR-12398: The JSON Facet API now supports type=heatmap facets, just as classic
faceting does. (David Smiley)
* SOLR-12511: Support non integer values for replica in autoscaling policy (noble)
* SOLR-8207: Add "Nodes" view to the Admin UI "Cloud" tab, listing nodes and key
metrics (janhoy)
* SOLR-7767: "ZK Status" sub menu under "Cloud" tab to see status of zookeeper
ensemble (janhoy)
* SOLR-12687: Add functions to cache data structures and mathematical models (Joel
Bernstein)
* SOLR-12629: The predict evaluator should work with the polyfit function (Joel
Bernstein)
* SOLR-11861: When creating a configSet via the API, the "baseConfigSet" parameter
now defaults to "_default".
(Amrit Sarkar, David Smiley)
* SOLR-11943: Add machine learning functions for location data (Joel Bernstein)
* SOLR-12612: Cluster properties restriction of known keys only is relaxed, and now
unknown properties starting with "ext."
will be allowed. This allows custom to plugins set their own cluster properties.
(Jeffery Yuan via Tomás Fernández Löbbe)
* SOLR-12357: Time Routed Aliases now have a preemptiveCreateMath option to
preemptively and asynchronously create the
next collection in advance as new data gets within this time window of the end.
(Gus Heck, David Smiley)
Bug Fixes
----------------------
* SOLR-12413: If Zookeeper was pre-loaded with data before first-use, then the
aliases information would be ignored.
(David Smiley, Gaël Jourdan, Gus Heck)
* SOLR-12482: Config API returns status 0 for failed operations. (Steve Rowe)
* SOLR-12326: JSON Facet API: terms facet shard requests now indicate if they have
more buckets to prevent
unnecessary refinement requests. (yonk)
* SOLR-12533 Collection collection fails if metrics are called during core creation
(Peter Cseh, Mano Kovacs)
* SOLR-2834: Fix SolrJ Field and Document analyzes for types that include
CharacterFilter (Alexandre Rafalovitch)
* SOLR-12516: Fix some bugs in 'type:range' Facet refinement when sub-facets are
combined with non
default values for the 'other' and 'include' options. (hossman)
* SOLR-12343: Fixed a bug in JSON Faceting that could cause incorrect counts/stats
when using non default
sort options. This also adds a new configurable "overrefine" option. (Yonik
Seeley, hossman)
* SOLR-12576: Update ref guide for additional information displayed in cloud view
(Erick Erickson)
* SOLR-12597: Migrate API should fail requests that do not specify split.key
parameter (shalin)
* SOLR-12607: Fixed two separate bugs in shard splits which can cause data loss.
The first case is when using TLOG
replicas only, the updates forwarded from parent shard leader to the sub-shard
leader are written only in tlog and
not the index. If this happens after the buffered updates have been replayed then
the updates can never be executed
even though they remain the transaction log. The second case is when
synchronously forwarding updates to sub-shard
leader fails and the underlying errors are not propagated to the client. (Cao
Manh Dat, shalin)
* SOLR-12615: HashQParserPlugin will no longer throw an NPE if the hash key field
is a string when there are documents
with empty values. All documents with empty values ( string , numeric ) will be
processed by worker=0
This would fix the NPE when using the search stream with partitionKeys. (Varun
Thacker)
* SOLR-11770: NPE in tvrh if no field is specified and document doesn't contain any
fields with term vectors
* SOLR-12541: Metrics handler throws an error if there are transient cores. (ab)
* SOLR-12674: RollupStream should not use the HashQueryParser for 1 worker. (Varun
Thacker)
* SOLR-11585: Solr SQL does not work with point numeric fields (Joel Bernstein,
Kiran Chitturi)
* SOLR-12749: timeseries() expression missing sum() results for empty buckets (Joel
Bernstein)
Optimizations
----------------------
* SOLR-11654: Time Routed Alias will now route documents to the ideal shard of a
collection, thus avoiding a hop.
Usually documents were already routed well but not always. (Gus Heck, David
Smiley)
* SOLR-11598: The export handler does not limit users to 4 sort fields and is now
unlimited. However the speed at
which we can export is directly proportional to the number of sort fields
specified. This change also allows streaming
expressions to group by on more than 4 fields. (Aroop Ganguly, Amrit Sarkar,
Varun Thacker)
* SOLR-12305: When a replica is applying updates, some kind of updates can skip
buffering for faster recovery.
(Cao Manh Dat)
* SOLR-12616: Optimize Export writer upto 4 sort fields to get better performance.
This was removed in SOLR-11598 but brought back in the same version (Amrit
Sarkar, Varun Thacker)
* SOLR-12766: When retrying internal requests, backoff only once for the full batch
of retries (Tomás Fernández Löbbe)
Other Changes
----------------------
* SOLR-12523: Improve error reporting and docs regarding Collection backup feature
shared-fs requirement (janhoy)
* SOLR-10984: Clean up web.xml, removing old redirects and outdated comments (Varun
Thacker, janhoy)
* SOLR-11008: Use a lighter config for MetricsHandlerTest and ensure the core is up
before the test starts (Varun Thacker)
* SOLR-12014: Cryptic error message when creating a collection with sharding that
violates autoscaling policies (noble)
* SOLR-12744: Improve logging messages and verbosity around recoveries (Cao Manh
Dat, Varun Thacker)
Upgrade Notes
----------------------
* SOLR-7887: Solr now uses Log4J 2.11 . The log4j configuration is now in
log4j2.xml rather than log4j.properties files.
This is a server side change only and clients using SolrJ won't need any changes.
Clients can still use any logging
implementation which is compatible with SLF4J. We now let log4j2 handle rotation
of solr logs at startup, and bin/solr
start scripts will no longer attempt this nor move existing console or GC logs
into logs/archived either (SOLR-12144).
* SOLR-11673: Slave doesn't commit empty index when completely new index is
detected on master during replication.
To return the previous behavior pass false to skipCommitOnLeaderVersionZero in
slave section of replication
handler configuration, or pass it to the fetchindex command.
New Features
----------------------
* SOLR-12015: Add support "add-distinct" in AtomicURP so that we can use the 'add-
distict' as a request parameter e.g:
atomic.<multival-field-name>=add-distict (Amrit Sarkar via noble)
* SOLR-12139: The "eq" (equals) function query now works with string fields, string
literals, and perhaps anything.
(Andrey Kudryavtsev, David Smiley)
* SOLR-10783: Add support for Hadoop Credential Provider as SSL/TLS store password
source.
(Mano Kovacs via Mark Miller)
* SOLR-12181: Add index size autoscaling trigger, based on document count or size
in bytes. (ab)
* SOLR-11277: Add auto hard-commit settings based on tlog size (Rupa Shankar,
Anshum Gupta)
* SOLR-12175: Add random field type and dynamic field to the default managed-schema
(Joel Bernstein)
Bug Fixes
----------------------
* SOLR-5351: Fixed More Like This Handler to use all fields provided in mlt.fl when
used with
content stream. The similarity is calculated between the content stream's value
and all
fields listed in mlt.fl. (Dawid Weiss)
* SOLR-12108: Fixed the fallback behavior of [raw] and [xml] transformers when an
incompatble 'wt' was
specified, the field value was lost if documentCache was not used. (hossman)
* SOLR-11673: By default slave doesn't commit empty index when completely new index
appears on master.
See Upgrade Notes to find a way to get back to the previous behavior. (Mikhail
Khludnev)
* SOLR-9399: Delete requests do not send credentials & fails for Basic
Authentication
(Susheel Kumar, Aibao Luo, Nikkolay Martinov via Erick Erickson)
* SOLR-12172: Fixed race condition that could cause an invalid set of collection
properties to be kept in
memory when multiple collection property changes are done in a short period of
time. (Tomás Fernández Löbbe)
* SOLR-11929: UpdateLog metrics are not initialized on core reload. (ab, Steve
Rowe)
* SOLR-12214: Leader may skip publish itself as ACTIVE when its last published
state is DOWN (Cao Manh Dat)
* SOLR-10169: PeerSync will hit an NPE on no response errors when looking for
fingerprint. (Erick Erickson)
* SOLR-12187: Replica should watch clusterstate and unload itself if its entry is
removed (Cao Manh Dat)
* SOLR-12253: Remove optimize button from the core admin page (Erick Erickson)
* SOLR-12275: wrong caching for {!filters} as well as for `filters` local param in
{!parent} and {!child}
(David Smiley, Mikhail Khluldnev)
* SOLR-12284: WordBreakSolrSpellchecker will no longer add parenthesis in
collations when breaking words in
non-boolean queries. (James Dyer)
* SOLR-12290: Do not close any servlet streams and improve our servlet stream
closing prevention code for users
and devs. (Mark Miller, janhoy, Andrzej Bialecki)
* SOLR-12293: Updates need to use their own connection pool to maintain connection
reuse and prevent spurious
recoveries. (Mark Miller)
* SOLR-12192: Fixed a solr cli error message when ulimits are unlimited. (Martijn
Koster)
* SOLR-12170: JSON Facet API: Terms facet on a date field sometimes failed with an
exception complaining
about "Invalid Date String". (yonik)
* SOLR-3567: Spellcheck custom parameters not being passed through due to wrong
prefix creation.
(Josh Lucas via shalin)
* SOLR-12294: update processors loaded from runtime jars fail to load if they are
specified
in an update processor chain (noble)
* SOLR-12290: Do not close any servlet streams and improve our servlet stream
closing prevention code for users
and devs. (Mark Miller)
* SOLR-12417: velocity response writer should enforce valid function name for
v.json parameter (Mano Kovacs, yonik)
* SOLR-12271: Fixed bug in how Analytics component reads negative values from float
and double fields. (Houston Putman)
Optimizations
----------------------
* SOLR-11920: IndexFetcher now fetches only those files (from master/leader) that
are different. This
differential fetching now speeds up recovery times when full index replication is
needed, but only
a few segments diverge. (Ishan Chattopadhyaya, Shaun Sabo, John Gallagher)
* SOLR-12312: Replication IndexFetcher should cap its internal buffer size when the
file being transferred is small.
(Jeff Miller, David Smiley)
* SOLR-12333: Removed redundant lines for handling lists in JSON reponse writers.
(David Smiley via Mikhail Khludnev)
* SOLR-12338: Replay buffering tlog in parallel. (Cao Manh Dat, David Smiley)
* SOLR-12366: A slow "live docs" implementation was being used instead of a bitset.
Affects classic faceting
enum method, JSON Facets enum method, UnInvertedField faceting,
GraphTermsQParser, JoinQParser. (David Smiley)
Other Changes
----------------------
* SOLR-11331: Ability to run and debug standalone Solr and a single node SolrCloud
server from Eclipse.
Also being able to run all Lucene and Solr tests as a configuration (Karthik
Ramachandran via
Varun Thacker, Uwe Schindler)
* SOLR-12118: Solr Ref-Guide can now use some ivy version props directly as
attributes in content (hossman)
* SOLR-12154: Disallow explicit usage of Log4j2 logger via forbidden APIs. (Varun
Thacker, Tomás Fernández Löbbe)
* SOLR-12176: Improve FORCELEADER to handle the case when a replica win the
election but does not present
in clusterstate (Cao Manh Dat)
* SOLR-12289: Add more MDC logging information to collection admin requests (Varun
Thacker)
* SOLR-12288: Add more MDC logging information to core admin requests (Varun
Thacker)
* SOLR-12435: Fix bin/solr help and ref guide text to describe ZK_HOST in
solr.in.sh/solr.in.cmd
as an alternative to -z cmdline param. (Steve Rowe)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
----------------------
* SOLR-12087: Deleting replicas sometimes fails and causes the replicas to exist in
the down
state (Cao Manh Dat)
* SOLR-12066: Cleanup deleted core when node start (Cao Manh Dat)
* SOLR-12065: A successful restore collection should mark the shard state as active
and not buffering
(Rohit, Varun Thacker)
* SOLR-11724: Cdcr bootstrapping should ensure that non-leader replicas should sync
with the leader
(Amrit Sarkar, Varun Thacker)
* SOLR-12316: Do not allow to use absolute URIs for including other files in
solrconfig.xml
and schema parsing (CVE-2018-8010). (Ananthesh, Ishan Chattopadhyaya, Uwe
Schindler)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* SOLR-11748: The throttling mechanism used to limit the rate of autoscaling events
processed
has been removed. This deprecates the 'actionThrottlePeriodSeconds' setting in
the set-properties
Autoscaling API which is now a no-op. Use the 'triggerCooldownPeriodSeconds'
instead to pause event
processing.
* SOLR-11747: The behaviour of the autoscaling system has been modified to pause
all triggers from execution between
the start of actions and end of cool down period. The triggers will be resumed
after the cool down period expires.
Previously, the cool down period was a fixed period started after actions for a
trigger event complete and during
this time, all triggers continued to run but any events were rejected to be tried
later.
* LUCENE-8161: If you are using the spatial JTS library with Solr, you must upgrade
to 1.15.0. This new version
of JTS is now dual-licensed to include a BSD style license.
* SOLR-11957: The default Solr log file size and number of backups is raised to
32MB and 10 respectively
New Features
----------------------
* SOLR-11064: Collection APIs should use the disk space hint when using policy
framework (noble)
* SOLR-11592: Add OpenNLP language detection to the langid contrib. (Koji, Steve
Rowe)
* SOLR-11617: Alias properties (formerly "metadata") are now mutable via a new
ALIASPROP command.
These properties are returned from LISTALIASES. (Gus Heck via David Smiley)
* SOLR-11430: Add lerp and akima Stream Evaluators to support linear and akima
spline interpolation (Joel Bernstein)
* SOLR-11736: Rename knn Streaming Expression to knnSearch and add new knn Stream
Evaluator (Joel Bernstein)
* SOLR-11925: Time Routed Aliases can have their oldest collections automatically
deleted via the "router.autoDeleteAge"
setting. (David Smiley)
* SOLR-11689: Add l1norm, l2norm and linfnorm Stream Evaluators (Joel Bernstein)
* SOLR-12006: Add a '*_t' and '*_t_sort' dynamic field for single valued text
fields (Varun Thacker)
* SOLR-11795: Add Solr metrics exporter for Prometheus (Minoru Osuka via koji)
* SOLR-11267: Add support for "add-distinct" atomic update operation (Amrit Sarkar
via noble )
Bug Fixes
----------------------
* SOLR-11783: Rename core in solr standalone mode is not persisted (Erick Erickson)
* SOLR-11631: The Schema API should return non-zero status when there are failures.
(Noble Paul, Steve Rowe)
* SOLR-11895: Logging Screen in the Admin UI will now show "No Events available"
when there are no events to show.
Also, the spinner icon is removed to prevent users thinking the page has hung.
(Cassandra Targett, Shawn Heisey)
* SOLR-11661: New HDFS collection reuses unremoved data from a deleted HDFS
collection with same name causes
inconsistent view of documents (Cao Manh Dat, shalin)
* SOLR-11739: Fix race condition that made Solr accept duplicate async IDs in
collection API operations (Tomás Fernánadez Löbbe)
* SOLR-12021: Fixed a bug in ApiSpec and other JSON resource loading that was
causing unclosed file handles (hossman)
* SOLR-12011: Consistence problem when in-sync replicas are DOWN. (Cao Manh Dat)
* SOLR-12020: JSON Facet API: terms facet on date field fails in refinement phase
with
"Invalid Date String" error. (yonik)
* SOLR-12061: Fix substitution bug in API V1 to V2 migration when using SolrJ with
V2 API. (Tomás Fernánadez Löbbe)
* SOLR-12064: JSON Facet API: fix bug where a limit of -1 in conjunction with
multiple facets or
missing=true caused an NPE or AIOOBE. (Karthik Ramachandran via yonik)
* SOLR-12083: Fix RealTime GET to work on a cluster running CDCR when using Solr's
in-place updates
(Amrit Sarkar, Varun Thacker)
* SOLR-12110: Replica which failed to register in Zk can become leader (Cao Manh
Dat)
* SOLR-12129: After the core is reloaded, term of the core will not be watched (Cao
Manh Dat)
* SOLR-8327: Cluster state caching to avoid live fetch from ZK of cluster state for
forwarding requests on nodes
that do not host any replica of the collection (Jessica Cheng Mallet, John
Gallagher, Noble Paul, Ishan Chattopadhyaya)
Other Changes
----------------------
* SOLR-11575: Improve ref-guide solrj snippets via mock 'print()' method (Jason
Gerlowski via hossman)
* SOLR-11703: Solr Should Send Log Notifications if Ulimits are too low (Kevin
Cowan via Erick Eickson)
* SOLR-11817: Move Collections API classes to it's own package (Varun Thacker)
* SOLR-11747: Pause triggers until actions finish executing and the cool down
period expires. (shalin)
* SOLR-11480: Remove unused "Admin Extra" files and mentions. (Eric Pugh, Christine
Poerschke)
* SOLR-11848: Update Ref Guide to include info on grouping operations and using
curl for large files. (Dariusz Wojtas
via Cassandra Targett)
* SOLR-11933: Make DIH UI page safer by not default checking the clean checkbox
(Eric Pugh via Tomás Fernández Löbbe)
* SOLR-11902: Clarify in bin/solr help text whether commands can be run remotely
(Jason Gerlowski)
* SOLR-3089: RequestBuilder now exposes isDistrib() method. Using this, plugins can
know whether a request is
distributed. (Rok Rejc, Frank Wesemann, Abhishek Kumar Singh, Mikhail Khludnev
via Ishan Chattopadhyaya)
* SOLR-8090: Make text elements in the UI darker for better contrast and
readability (Cassandra Targett)
* SOLR-12017: Remove BadApple and AwaitsFix annotations that link to closed JIRAs
(Erick Erickson)
* SOLR-10809: Get precommit lint warnings out of Solr core (Erick Erickson)
* SOLR-12031: Refactor Policy framework to make simulated changes affect more than
a single node (noble)
* SOLR-12051: Election timeout when no replicas are qualified to become leader (Cao
Manh Dat)
* SOLR-12098: Document the Lucene spins auto-detection and its effect on CMS
dynamic defaults.
(Cassandra Targett, shalin)
* SOLR-12097: Document the diskType policy attribute and usage of disk space in
Collection APIs.
(Cassandra Targett, shalin)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
----------------------
* SOLR-11771: Overseer can never process some last messages (Cao Manh Dat)
* SOLR-11783: Rename core in solr standalone mode is not persisted (Erick Erickson)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
New Features
----------------------
* SOLR-11448: Implement an option in collection commands to wait for final results.
(ab)
* SOLR-11438: Solr should return rf when min_rf is specified for deletes as well as
adds (Erick Erickson)
* SOLR-11593: Add support for covariance matrices to the cov Stream Evaluator (Joel
Bernstein)
* SOLR-11571: Add diff Stream Evaluator to support time series differencing (Mathew
Skaria, Joel Bernstein)
* SOLR-11570: Add support for correlation matrices to the corr Stream Evaluator
(Joel Bernstein)
* SOLR-11569: Add support for distance matrices to the distance Stream Evaluator
(Joel Bernstein)
Bug Fixes
----------------------
* SOLR-11423: Overseer queue needs a hard cap (maximum size) that clients respect
(Scott Blum, Joshua Humphries, Noble Paul)
* SOLR-11445: Overseer should not hang when process bad message. (Cao Manh Dat,
shalin)
* SOLR-11326: A bootstrap of a target cluster does not need to download the tlog
files from the source cluster
(Amrit Sarkar, Varun Thacker)
* SOLR-11532: Solr hits NPE when fl only contains DV fields and any of them is a
spatial field. (Cao Manh Dat, David Smiley)
* SOLR-11553: JSON Facet API: facet refinement could use UIF in phase one and DV
uninversion in phase 2, resulting
in too much memory use. (yonik)
* SOLR-11645: When the java commandline had exact duplicate arguments, the
admin UI dashboard would not display any commandline arguments.
(Webster Homer via Shawn Heisey)
* SOLR-11608: Correctly parse the new core-name in the V2 core rename API.
(Jason Gerlowski via Anshum Gupta)
* SOLR-11256: The queue size for ConcurrentUpdateSolrClient should default to 10
instead of throwing an
IllegalArgumentException. (Jason Gerlowski, Anshum Gupta)
* SOLR-11616: Snapshot the segments more robustly such that segments created during
a backup does does not fail the
operation (Varun Thacker)
* SOLR-11664: JSON Facet API: range facets containing unique, hll, min, max
aggregations over string fields
produced incorrect results since 7.0 (Volodymyr Rudniev, yonik)
* SOLR-11691: V2 requests for create-alias didn't work when the collections param
was an array.
(Jason Gerlowski, Gus Heck, David Smiley, noble)
Optimizations
----------------------
* SOLR-11285: Refactor autoscaling framework to avoid direct references to
Zookeeper and Solr
to make testing and large scale simulations easier. (ab)
* SOLR-11443: Remove the usage of workqueue for Overseer. (Cao Manh Dat, Scott
Blum)
* SOLR-11320: Lock autoscaling triggers when changes they requested are being made.
This helps to
ensure that cluster is in a stable state before processing any new trigger
events. (ab)
Other Changes
----------------------
* SOLR-11478: Solr should remove itself from live_nodes in zk immediately on
shutdown. (Cao Manh Dat)
* SOLR-11145: Adds comprehensive unit tests for the Analytics Component v2 (Houston
Putman)
* SOLR-11389: For Solr(Shard|Cluster)Reporter instances the
SolrMetricManager.registerReporter
method is now called after the SolrCore or CoreContainer has been set for the
instance.
(Christine Poerschke)
* SOLR-11380: SolrJ must stream docs to server instead of writing to a buffer first
(noble)
* SOLR-11606: Disable tests automatically if Mockito does not work with Java
runtime (Java 10).
(Uwe Schindler)
* SOLR-11628: Add documentation of maxRamMB for filter cache and query result
cache. (shalin)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* SOLR-11195: shard and cluster metric reporter configuration now requires a class
attribute.
If a reporter configures the group="shard" attribute then please also configure
the
class="org.apache.solr.metrics.reporters.solr.SolrShardReporter" attribute.
If a reporter configures the group="cluster" attribute then please also configure
the
class="org.apache.solr.metrics.reporters.solr.SolrClusterReporter" attribute.
New Features
----------------------
* SOLR-10339: New set-trigger and remove-trigger APIs for autoscaling. (shalin)
* SOLR-10396: Implement trigger support for nodeLost event type (Cao Manh Dat,
shalin)
* SOLR-10496: New ComputePlanAction for autoscaling which uses the policy framework
to compute cluster
operations upon a trigger fire. (Noble Paul, shalin)
* SOLR-11317: JSON Facet API: min/max aggregations on numeric fields are now typed
better so int/long
fields return an appropriate integral type rather than a double. (yonik)
* SOLR-11316: JSON Facet API: min/max aggregations are now supported on single-
valued date fields.
(yonik)
* SOLR-11338: Add Kendall's Tau-b rank and Spearmans rank correlation Stream
Evaluators (Joel Bernstein)
* SOLR-11339: Add Canberra, Chebyshev, Earth Movers and Manhattan Distance Stream
Evaluators (Joel Bernstein)
Bug Fixes
----------------------
* SOLR-10602: Triggers should be able to restore state from old instances when
taking over. (shalin)
* SOLR-8984: EnumField's error reporting to now indicate the field name in failure
log (Lanny Ripple,
Ann Addicks via Ishan Chattopadhyaya)
* SOLR-11012: Fix three (JavaBinCodec not being closed) Resource Leak warnings.
(Christine Poerschke)
* SOLR-10994: CREATE, CREATESHARD & ADDREPLICA to use policy framework & support
replica types (noble)
* SOLR-10944: Get expression fails to return EOF tuple (Susheel Kumar, Joel
Bernstein)
* SOLR-11190: GraphQuery also supports string fields which are indexed=false and
docValues=true. Please refer to the
Javadocs for DocValuesTermsQuery for it's performance characteristics. (Karthik
Ramachandran, Varun Thacker)
* SOLR-11084: Issue with starting script with solr.home (-s) == solr (Leil Ireson,
Amrit Sarkar via Erick Erickson)
* SOLR-11272: fix NPE when EmbeddedSolrServer handles /admin/* request and so one
(Stephen Allen via Mikhail Khludnev)
* SOLR-11289: fix comma handling in terms component. (yonik)
* SOLR-11293: Potential data loss in TLOG replicas when masterVersion equals zero
(noble, Cao Manh Dat)
* SOLR-11363: JSON Facet API: repeated values in a numeric points field with
docValues enabled
were double counted. (Hossman, yonik)
* SOLR-11297: Message "Lock held by this virtual machine" during startup. Solr is
trying to start some cores twice.
(Luiz Armesto, Shawn Heisey, Erick Erickson)
* SOLR-11278: Fix a race condition in the CDCR bootstrap process which could lead
to bootstraps cancelling itself
(Amrit Sarkar, shalin, Varun Thacker)
* SOLR-11425: SolrClientBuilder does not allow infinite timeout (value 0). (Peter
Szantai-Kis via Mark Miller)
Optimizations
----------------------
* SOLR-11124: MoveReplicaCmd should skip deleting old replica in case of its node
is not live (Cao Manh Dat)
* SOLR-8344: Decide default when requested fields are both column and row stored.
(Cao Manh Dat, David Smiley)
* SOLR-10285: Skip LEADER messages when there are leader only shards (Cao Manh Dat,
Joshua Humphries)
Other Changes
----------------------
* SOLR-10643: Throttling strategy for triggers and policy executions. (shalin)
* SOLR-10338: Configure SecureRandom non blocking for tests. (Mihaly Toth, hossman,
Ishan Chattopadhyaya, via Mark Miller)
* SOLR-11195: Require class attribute for shard and cluster metric reporter
configuration. (Christine Poerschke)
* SOLR-5129: Timeout property for waiting ZK get started. (Cao Manh Dat, Hrishikesh
Gadre, Varun Thacker)
* SOLR-10628: Less verbose output from bin/solr commands. (Jason Gerlowski, janhoy)
* SOLR-11322: JSON Facet API: instead of returning NaN, min & max aggregations omit
the value for any bucket with no values in the numeric field. (yonik)
* SOLR-10335: Upgrade to Tika 1.16. (Tim Allison, Tomás Fernández Löbbe via shalin)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
----------------------
* SOLR-11297: Message "Lock held by this virtual machine" during startup. Solr is
trying to start some cores twice.
(Luiz Armesto, Shawn Heisey, Erick Erickson)
* SOLR-11406: Solr 7.0 cannot read indexes from 6.x versions. (Shawn Heisey, Steve
Rowe)
* All Trie* numeric and date field types have been deprecated in favor of *Point
field types.
Point field types are better at range queries (speed, memory, disk), however
simple field:value queries underperform
relative to Trie. Either accept this, or continue to use Trie fields.
This shortcoming may be addressed in a future release.
* The default response type is now JSON ("wt=json") instead of XML, and line
indentation is now on by default
("indent=on"). If you expect the responses to your queries to be returned in the
previous format (XML
format, no indentation), you must now you must now explicitly pass in "wt=xml"
and "indent=off" as query
parameters, or configure them as defaults on your request handlers. See SOLR-
10494 for more details.
* the cluster property 'legacyCloud' is set to false from 7.0. This means
'zookeeper is the truth' by
default. If an entry for a replica does not exist in the state.json, that replica
cannot get
registered. This may affect users who use that feature where they bring up
replicas and they are
automatically registered as a part of a shard. However, it is possible to fall
back to the old behavior by
setting the property legacyCloud=true , in the cluster properties using the
following command
* SolrClient implementations now use their own internal configuration for socket
timeouts,
connect timeouts, and allowing redirects rather than what is set as the default
when
building the HttpClient instance. Use the appropriate setters on the SolrClient
instance.
* HttpSolrClient#setDefaultMaxConnectionsPerHost and
HttpSolrClient#setMaxTotalConnections have been removed. These now default very
high and can only be changed via param when creating an HttpClient instance.
* Query time join with scoring {!join score=none} (even none) doesn't handle single
value numeric fields.
Users are advised to convert these fields into string and reindex.
* Index-time boosts are not supported anymore. If any boosts are provided, they
will be ignored by the indexing chain. As a replacement, index-time scoring
factors should be indexed in a separate field and combined with the query
score using a function query.
* Deprecated method getNumericType() has been removed from FieldType. Use
getNumberType() instead
* MBean names and attributes now follow hierarchical names used in metrics. This is
reflected also in
/admin/mbeans and /admin/plugins output, and can be observed in the UI Plugins
tab, because now all these
APIs get their data from the metrics API. The old (mostly flat) JMX view has been
removed.
* The unused 'valType' option has been removed from ExternalFileField, if you have
this in your schema you
can safely remove it. see SOLR-10929 for more details.
* The data driven config (now _default) for auto-creating fields earlier defaulted
to "string" for text input.
Now the default is to use "text_general" and to add a copyField to the schema,
copying to a "*_str" dynamic field,
with a cutoff at 256 characters. This enables full text search as well as
faceting. See SOLR-9526 for more.
* The parameter names 'fromNode' for MOVEREPLICA and 'source', 'target' for
REPLACENODE have been deprecated and
replaced with 'sourceNode' and 'targetNode' instead. The old names will continue
to work for back-compatibility
but they will be removed in 8.0. See SOLR-11068 for more details.
* V2 APIs are now available at /api, in addition to /v2 (which is now deprecated).
Legacy APIs continue to remain
available at /solr.
* Solr was tested and is compatible with the final release candidate of Java 9. All
startup scripts
detect Java 9 correctly and setup Garbage Collector logging. If the configuration
file contains
logging options that are no longer supported with Java 9, startup will fail.
* SOLR-10307: If starting Jetty without the Solr start script, you must now pass
keystore and truststore
passwords via the env variables SOLR_SSL_KEY_STORE_PASSWORD and
SOLR_SSL_TRUST_STORE_PASSWORD rather
than system properties.
New Features
----------------------
* SOLR-9857, SOLR-9858: Collect aggregated metrics from nodes and shard leaders in
overseer. (ab)
* SOLR-10547: JSON Facet API: Implement support for single-valued string fields for
min/max aggregations.
(yonik)
* SOLR-10431: Make it possible to invoke v2 api calls using SolrJ (Cao Manh Dat,
Noble Paul, shalin)
* SOLR-10233: Add support for different replica types, that can handle updates
differently:
- NRT: Writes updates to transaction log and indexes locally. Replicas of type
“NRT” support NRT
(soft commits) and RTG. Any NRT replica can become a leader. This was the
only type supported
in SolrCloud until now and it’s the default type.
- TLOG: Writes to transaction log, but not to index, uses replication to copy
segment files from the
shard leader. Any TLOG replica can become leader (by first applying all
local transaction log
elements). If a replica is of type TLOG but is also the leader, it will
behave as a NRT. This
is exactly what was added in SOLR-9835 (non-realtime replicas), just the
API and naming changes.
- PULL: Doesn’t index or writes to transaction log, just replicates from the
shard leader. PULL replicas
can’t become shard leaders (i.e., if there are only PULL replicas in the
collection at some point,
updates will fail same as if there is no leaders, queries continue to
work), so they don’t even
participate in elections.
(Tomás Fernández Löbbe)
* SOLR-7452: Refinement for JSON Facet API: Adding refine:true to any terms facet
will cause an
additional distributed search phase (overlapped with field retrieval) that
requests additional info
for top facet buckets from shards that did not previously contribute to that
bucket.
This will correct counts (and other statistics) for those top buckets collected
in the first
phase. (yonik)
* SOLR-9989: Add support for PointFields in FacetModule (JSON Facets) (Cao Manh
Dat)
* SOLR-10406: v2 API error messages list the URL request path as /solr/____v2/...
when the original path was /v2/... (Cao Manh Dat, noble)
* SOLR-10123: Upgraded the Analytics Component to version 2.0 which now supports
distributed collections, expressions over
multivalued fields, a new JSON request language, and more. DocValues are now
required for any field used in the analytics
expression whereas previously docValues was not required. Please see SOLR-10123
for details. (Houston Putman)
* SOLR-10939: Add support for PointsFields to {!join} query. Joined fields should
also have docValues enabled. (yonik)
* SOLR-6671: Possible to set solr.data.home property as root dir for all data
(janhoy, Shawn Heisey, Mark Miller)
Bug Fixes
----------------------
* SOLR-9262: Connection and read timeouts are being ignored by UpdateShardHandler
after SOLR-4509.
(Mark Miller, shalin)
* SOLR-10412: v2 API: many API command specification properties are typed "number"
but should instead be typed "integer"
(Steve Rowe, Cao Manh Dat)
* SOLR-10413: v2 API: parsed JSON type should be coerced to expected type (Cao Manh
Dat, Noble Paul)
* SOLR-10223: Allow running examples as root on Linux with -force option (janhoy)
* SOLR-10830: Solr now correctly enforces that the '_root_' field has the same
fieldType as the
uniqueKey field. With out this enforcement, child document updating was
unreliable. (hossman)
* SOLR-10506: Fix memory leak (upon collection reload or ZooKeeper session expiry)
in ZkIndexSchemaReader.
(Torsten Bøgh Köster, Christine Poerschke, Jörg Rathlev, Mike Drob)
* SOLR-6807: CloudSolrClient's ZK state version check with the server was ignored
when handleSelect=false
(David Smiley)
* SOLR-10879: DELETEREPLICA and DELETENODE commands should prevent data loss when
replicationFactor is 1. (ab)
* SOLR-10983: Fix DOWNNODE -> queue-work explosion (Scott Blum, Joshua Humphries)
* SOLR-11039: Next button in Solr admin UI for collection list pagination does not
work. (janhoy)
* SOLR-11041: MoveReplicaCmd do not specify ulog dir in case of HDFS (Cao Manh Dat)
* SOLR-11045: The new replica created by MoveReplica will have to have same name
and coreName as the
old one in case of HDFS (Cao Manh Dat)
* SOLR-11073: Fix overflow in interval faceting when querying Long limits (e.g.
(Long.MAX_VALUE TO Long.MAX_VALUE])
(Tomás Fernández Löbbe)
* SOLR-11057: Fix overflow in point range queries when querying the type limits
(e.g. q=field_i:{Integer.MAX_VALUE TO Integer.MAX_VALUE]) (Tomás Fernández Löbbe)
* SOLR-11136: Fix solrj XMLResponseParser when nested docs transformer is used with
indented XML (hossman)
* SOLR-11130: V2Request in SolrJ should return the correct collection name so that
the request is forwarded to the
correct node (noble)
* SOLR-10829: Fixed IndexSchema to enforce that uniqueKey can not be Points based
for correctness (hossman)
* SOLR-10715: /v2/ should not be an alias for /v2/collections (Cao Manh Dat)
* SOLR-10835: Add support for point fields in Export Handler (Tomás Fernández
Löbbe)
* SOLR-10824: fix NPE ExactSharedStatsCache, fixing maxdocs skew for terms which
are absent at one of shards
when using one of Exact*StatsCache (Mikhail Khludnev)
Optimizations
----------------------
* SOLR-9822: JSON Facet API: Recover performance lost due to the DocValues
transition to
an iterator API (LUCENE-7407). This only fixes calculating counts for single-
valued
string fields from the FieldCache, resulting in up to 56% better throughput for
those cases.
(yonik)
* SOLR-10727: Avoid polluting the filter cache for certain types of faceting
(typically ranges) when
the base docset is empty. (David Smiley)
* SOLR-11070: Make docValues range queries behave the same as Trie/Point fields for
Double/Float Infinity cases
(Tomás Fernández Löbbe, Andrey Kudryavtsev)
* SOLR-10634: JSON Facet API: When a field/terms facet will retrieve all buckets
(i.e. limit:-1)
and there are no nested facets, aggregations are computed in the first collection
phase
so that the second phase which would normally involve calculating the domain for
the bucket
can be skipped entirely, leading to large performance improvements. (yonik)
Other Changes
----------------------
* SOLR-10236: Removed FieldType.getNumericType(). Use getNumberType() instead.
(Tomás Fernández Löbbe)
* SOLR-10347: Removed index level boost support from "documents" section of the
admin UI (Amrit Sarkar via
Tomás Fernández Löbbe)
* SOLR-10042: Delete old deprecated Admin UI, leaving the AngularJS UI the only one
supported (janhoy)
* SOLR-10378: Clicking Solr logo on AdminUI shows blank page (Takumi Yoshida via
janhoy)
* SOLR-10710: Fix LTR failing tests. (Diego Ceccarelli via Tomás Fernández Löbbe)
* SOLR-10801: Remove several deprecated methods that were exposed to plugin writers
(hossman)
* SOLR-10713: Ignore .pid and .out files in solr working directory (Jason Gerlowski
via Mike Drob)
* SOLR-10782: Improve error handling and tests for Snitch and subclasses and
general cleanups. (Noble Paul, shalin)
* SOLR-10419: All collection APIs should use the new Policy framework for replica
placement. (Noble Paul, shalin)
* LUCENE-7883: Solr no longer uses the context class loader when resolving
resources, they are only resolved against Solr's own or "core" class loader
by default. (Uwe Schindler)
* SOLR-10915: Make builder based SolrClient constructors to be the only valid way
to construct client objects and
increase the visibility of builder elements to be protected so extending the
builder, and the clients is possible.
(Jason Gerlowski, Anshum Gupta)
* SOLR-10807: Randomize Points based numeric field types in all existing tests &
test schemas
where Trie numerics were previously hardcoded. (hossman, Steve Rowe, Anshum
Gupta)
* SOLR-10456: Deprecate timeout related setters from SolrClients, and replace with
Builder based implementation
(Jason Gerlowski, Anshum Gupta)
* SOLR-10967: Cleanup the default configset. The changes involve some documentation
corrections, removing the currency
field from the examples and a few dynamic fields (Varun Thacker)
* SOLR-11068: MOVEREPLICA and REPLACENODE API parameter names are now 'sourceNode'
and 'targetNode'. The old names
viz. 'fromNode' for MOVEREPLICA and 'source', 'target' for REPLACENODE have been
deprecated. (shalin)
* SOLR-11119: Switch from Trie to Points field types in the .system collection
schema. (Steve Rowe)
* SOLR-10494: Make default response format JSON (wt=json), and also indent text
responses formats
(indent=on) by default (Trey Grainger & Cassandra Targett via hossman)
* SOLR-11056: Add random range query test that compares results across Trie*,
*Point and DocValue-only fields
(Tomás Fernández Löbbe)
* SOLR-11036: Separately report disk space metrics for solr.data.home and core root
directory. (ab)
* SOLR-10919: ord & rord functions give confusing errors with PointFields.
(hossman, Steve Rowe)
* SOLR-10847: Provide a clear exception when attempting to use the terms component
with points fields.
(hossman, Steve Rowe)
* SOLR-10617: JDBCStream accepts columns of type TIME, DATE & TIMESTAMP as well as
CLOBs and decimal
numeric types (James Dyer)
* SOLR-8762: return child docs in DIH debug (Gopikannan Venugopalsamy via Mikhail
Khludnev)
* SOLR-10834: Fixed tests and test configs to stop using numeric uniqueKey fields
(hossman)
* SOLR-10883: Ref guide: Escape replacement substitutions, e.g. => to right arrow,
so that they are
rendered visibly in the PDF. Also add .adoc file checks to the top-level
validate target, including
for the invisible substitutions PDF problem. (Steve Rowe)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
New Features
----------------------
Bug Fixes
----------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
----------------------
* SOLR-12316: Do not allow to use absolute URIs for including other files in
solrconfig.xml and schema parsing.
(Ananthesh, Ishan Chattopadhyaya, Uwe Schindler)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
----------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
Bug Fixes
----------------------
* SOLR-11297: Message "Lock held by this virtual machine" during startup. Solr is
trying to start some cores twice.
(Luiz Armesto, Shawn Heisey, Erick Erickson)
Other Changes
----------------------
* SOLR-10335: Upgrade to Tika 1.16. (Tim Allison, Tomás Fernández Löbbe via shalin)
Bug Fixes
----------------------
* SOLR-11122: Creating a core should write a core.properties file first and clean
up on failure
(Erick Erickson)
* SOLR-10910: Clean up a few details left over from pluggable transient core and
untangling
CoreDescriptor/CoreContainer references (Erick Erickson)
* SOLR-10721: Provide a way to know when Core Discovery is finished and when all
async cores are done loading
(Erick Erickson)
* SOLR-11069: CDCR bootstrapping can get into an infinite loop when a core is
reloaded (Amrit Sarkar, Erick Erickson)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* JSON Facet API now uses hyper-log-log for numBuckets cardinality calculation and
calculates cardinality before filtering buckets by any mincount greater than 1.
New Features
----------------------
* SOLR-9992: Add support for grouping with PointFIelds. (Cao Manh Dat)
* SOLR-9994: Add support for CollapseQParser with PointFields. (Varun Thacker, Cao
Manh Dat)
* SOLR-6736: Adding support for uploading zipped configsets using ConfigSets API
(Varun Rajput, Ishan Chattopadhyaya,
Noble Paul, Anshum Gupta, Gregory Chanan)
* SOLR-9993: Add support for ExpandComponent with PointFields. (Cao Manh Dat)
* SOLR-9936: Allow configuration for recoveryExecutor thread pool size. (Tim Owen
via Mark Miller)
* SOLR-10446: CloudSolrClient can now be initialized using the base URL of a Solr
instance instead of
ZooKeeper hosts. This is possible through the use of newly introduced
HttpClusterStateProvider.
To fetch a list of collection aliases, this depends on LISTALIASES command, and
hence this way of
initializing CloudSolrClient would not work if you have collection aliases on
older versions of Solr
server that doesn't support LISTALIASES. (Ishan Chattopadhyaya, Noble Paul)
* SOLR-10082: Variance and Standard Deviation aggregators for the JSON Facet API.
Example: json.facet={x:"stddev(field1)", y:"variance(field2)"}
(Rustam Hashimov, yonik)
* SOLR-10505: Add multi-field support to TermsComponent when requesting terms'
statistics. (Shai Erera)
* SOLR-10507: Core Admin status command to emit collection details of each core
(noble)
* SOLR-1485: Add payload support with payload() value source and {!payload_score}
and {!payload_check}
query parsers. (Erik Hatcher)
* SOLR-10583: JSON Faceting now supports a query time 'join' domain change option
(hossman)
* SOLR-10303: Add date/time Stream Evaluators (Gethin James, Dennis Gove, Joel
Bernstein)
* SOLR-10559: Add let, get and tuple Streaming Expressions (Dennis Gove, Joel
Bernstein)
Optimizations
----------------------
* SOLR-10548: JSON Facet API now uses hyper-log-log++ for determining the number of
buckets
when merging requests from a multi-shard distributed request. (yonik)
* SOLR-10524: Better ZkStateWriter batching (Cao Manh Dat, Noble Paul, shalin,
Scott Blum)
Bug Fixes
----------------------
* SOLR-10281: ADMIN_PATHS is duplicated in two places and inconsistent. This can
cause automatic
retries to /admin/metrics handler by the CloudSolrClient. (shalin)
* SOLR-10362: "Memory Pool not found" error when reporting JVM metrics. (ab)
* SOLR-10472: Fixed uninversion (aka: FieldCache) bugs with the numeric PointField
classes, and CurrencyField (hossman)
* SOLR-5127: Multiple highlight fields and wildcards are now supported e.g.
hl.fl=title,text_*
(Sven-S. Porst, Daniel Debray, Simon Endele, Christine Poerschke)
* SOLR-10552: JSON Facet API numBuckets was not consistent between distributed and
non-distributed requests
when there was a mincount > 1. This has been corrected by changing numBuckets
cardinality processing to
ignore mincount > 1 for non-distributed requests. (yonik)
* SOLR-10480: Full pagination in JSON Facet API using offset does not work. (yonik)
* SOLR-10500: nested child docs are adopted by neighbour when several parents come
in update/json/docs
(Alexey Suprun,noble via Mikhail Khludnev)
* SOLR-10316: Unloading a core can remove a ZK SolrCore registration entry for the
wrong SolrCore. (Mark Miller)
Ref Guide
----------------------
* SOLR-10758: Modernize the Solr ref guide's Chinese language analysis coverage.
(Steve Rowe)
Other Changes
----------------------
* SOLR-10352: bin/solr script now prints warning when available system entropy is
lower than 300 (Esther Quansah via
Ishan Chattopadhyaya)
* SOLR-10357: Enable edismax and standard query parsers to handle the option
combination
sow=false / autoGeneratePhraseQueries="true" by setting
QueryBuilder.autoGenerateMultiTermSynonymsQuery.
(Steve Rowe)
* SOLR-10147: Admin UI -> Cloud -> Graph: Impossible to see shard state (Amrit
Sarkar, janhoy)
* SOLR-10519: SolrCLI.atPath cannot handle children that begin with a slash. (Erick
Erickson)
* SOLR-9867: Adding isLoading=true as core status. Fixing start after stop scenario
in bin/solr
(Andrey Kudryavtsev, Mikhail Khludnev)
Bug Fixes
----------------------
* SOLR-10444: SQL interface does not use client cache. (Joel Bernstein)
* SOLR-10420: Solr 6.x leaking one SolrZkClient instance per second (Scott Blum,
Cao Manh Dat, Markus Jelsma, Steve Rowe)
Upgrade Notes
----------------------
* SOLR-10226: JMX metric "avgTimePerRequest" (and the corresponding metric in the
metrics API for
each handler) used to be a simple non-decaying average based on total cumulative
time and the
number of requests. New Codahale Metrics implementation applies exponential decay
to this value,
which heavily biases the average towards the last 5 minutes. (ab)
* SOLR-8593: Parallel SQL now uses Apache Calcite as its SQL framework. As part of
this change
the default aggregation mode has been changed to facet rather than map_reduce.
There has also been changes
to the SQL aggregate response and some SQL syntax changes. Consult the
documentation for full details.
New Features
----------------------
* SOLR-9836: Add ability to recover from leader when index corruption is detected
on SolrCore creation.
(Mike Drob via Mark Miller)
* SOLR-8029: Added new style APIs and a framework for creating new APIs and mapping
old APIs to new
(noble, Steve Rowe, Cassandra Targett, Timothy Potter)
* SOLR-7955: Auto create .system collection on first request if it does not exist
(noble)
* SOLR-10153 & SOLR-10152: The Unified and Postings based highlighters: Add
hl.bs.type=SEPARATOR along with new param
hl.bs.separator to break passages by a provided single character. (Amrit Sarkar,
David Smiley)
* SOLR-8593: Integrate Apache Calcite into the SQLHandler (Kevin Risden, Cao Manh
Dat, Joel Bernstein)
* SOLR-8045: Deploy V2 API at /v2 instead of /solr/v2 (Cao Manh Dat, Noble Paul)
* SOLR-10039: New LatLonPointSpatialField replacement for LatLonType (and some uses
of RPT). Multi-value capable
indexed geo lat-lon points, query by rect or circle. Efficient distance
sorting/boosting too. (David Smiley)
* SOLR-10085: SQL result set fields should be ordered by the field list (Joel
Bernstein)
Bug Fixes
----------------------
* SOLR-9979: Macro expansion should not be done in shard requests (Tomás Fernández
Löbbe)
* SOLR-10159: When DBQ is reordered with an in-place update, upon whose updated
value the DBQ is based
on, the DBQ fails due to excessive caching in DeleteByQueryWrapper (Ishan
Chattopadhyaya)
* SOLR-10020: CoreAdminHandler silently swallows some errors. (Mike Drob via Erick
Erickson)
* SOLR-10063: CoreContainer shutdown has race condition that can cause a hang on
shutdown. (Mark Miller)
* SOLR-9846: Overseer is not always closed after being started. (Mark Miller)
* SOLR-9824: Some bulk update paths could be very slow due to CUSC polling. (David
Smiley, Mark Miller)
* SOLR-10225: Fix HDFS BlockCache evictions metric to not count explicit removal
due to a directory close. (yonik)
* SOLR-10226: add back "totalTime" metric to all handlers. See also the back-compat
note. (ab)
* SOLR-9838: "inc" atomic update doesn't respect default field value (hoss, Amrit
Sarkar, Ishan Chattopadhyaya)
* SOLR-10279: The autoAddReplica feature can result in SolrCores being assigned new
shards when using
legacyCloud=false and will also fail on a state check when taking over a core
registration with a new
core. (Mark Miller, Hrishikesh Gadre, Patrick Dvorack)
* SOLR-10184: Fix bin/solr so it can run properly on java9 (hossman, Uwe Schindler)
* SOLR-10302: Solr's zkcli scripts now able to find the metrics libraries, which it
couldn't earlier (kiran, Ishan Chattopadhyaya)
Optimizations
----------------------
* SOLR-9941: Clear the deletes lists at UpdateLog before replaying from log. This
prevents redundantly pre-applying
DBQs, during the log replay, to every update in the log as if the DBQs were out
of order. (hossman, Ishan Chattopadhyaya)
* SOLR-9764: All filters that match all documents in the index now share the same
memory (DocSet).
(Michael Sun, yonik)
* SOLR-9584: Support Solr being proxied with another endpoint than default /solr,
by using relative links
in AdminUI javascripts (Yun Jie Zhou via janhoy)
* SOLR-10273: The field with the longest value (if it exceeds 4K) is moved to be
last in the Lucene Document in order
to benefit from stored field optimizations in Lucene that can avoid reading it
when it's not needed. If the field is
multi-valued, they all move together to the end to retain order. (David Smiley)
Other Changes
----------------------
* SOLR-9980: Expose configVersion in core admin status (Jessica Cheng Mallet via
Tomás Fernández Löbbe)
* SOLR-10018: Increase the default hl.maxAnalyzedChars to 51200 for the Unified &
Postings Highlighter so that all
highlighters now have this same default. (David Smiley)
* SOLR-6246: Added tests to check that the changes in LUCENE-7564 and LUCENE-7670
enable AnalyzingInfixSuggester and BlendedInfixSuggester to play nicely with core
reload.
SolrSuggester.build() now throws SolrCoreState.CoreIsClosedException when
interrupted
by a core reload/shutdown. (Steve Rowe)
* SOLR-10011: Refactor PointField & TrieField to now have a common base class,
NumericFieldType. The
TrieField.TrieTypes and PointField.PointTypes are now consolidated to
NumericFieldType.NumberType. This
refactoring also fixes a bug whereby PointFields were not using DocValues for
range queries for
indexed=false, docValues=true fields. (Ishan Chattopadhyaya, Tomás Fernández
Löbbe)
* SOLR-9966: Convert/migrate tests using EasyMock to Mockito (Cao Manh Dat, Uwe
Schindler)
* SOLR-10020: Cannot reload a core if it fails initialization. (Mike Drob via Erick
Erickson)
* SOLR-9450: The docs/ folder in the binary distribution now contains a single
index.html file linking
to the online documentation, reducing the size of the download (janhoy, Shawn
Heisey, Uwe Schindler)
* SOLR-10214: Remove unused HDFS BlockCache metrics and add storeFails, as well as
adding total
counts for lookups, hits, and evictions. (yonik)
* SOLR-10155: For numeric types facet.contains= and facet.prefix= are now rejected.
(Gus Heck, Christine Poerschke)
* SOLR-10235: Fix DIH's TestJdbcDataSource to work with Java 9 and other Java
runtimes that
do not use the same DriverManager implementation like Oracle's original one. The
test now
uses a fully implemented Driver instance returning a mock connection. The test
also works
correct now if other drivers were installed before test execution (e.g., through
IDE).
(hossman, Uwe Schindler)
* SOLR-8876: change morphline test config files to work around 'importCommands' bug
when using java9 (hossman)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
----------------------
* SOLR-10130, SOLR-10182: Serious performance degradation in Solr 6.4.1 due to the
new metrics collection.
Default settings in solrconfig.xml /config/indexConfig/metrics have been changed
to turn off
IndexWriter metrics collection. Directory level metrics collection has been
completely removed until
a better design is found. (ab, ishan)
* SOLR-10138: Transaction log replay can hit an NPE due to new Metrics code. (ab)
* SOLR-10190: Fix NPE in CloudSolrClient when reading stale alias (Janosch Woschitz
via Tomás Fernández Löbbe)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
----------------------
* SOLR-9969: "Plugin/Stats" section of the UI doesn't display empty metric types
(Tomás Fernández Löbbe)
* SOLR-10054: Core swapping doesn't work with new metrics changes in place (ab)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Versions of Major Components
---------------------
Apache Tika 1.13
Carrot2 3.15.0
Velocity 1.7 and Velocity Tools 2.0
Apache UIMA 2.3.1
Apache ZooKeeper 3.4.6
Jetty 9.3.14.v20161028
Upgrade Notes
----------------------
* SOLR-9166: Export handler returns zero for numeric fields that are not in the
original doc. One
consequence of this change is that you must be aware that some tuples will not
have values if
there were none in the original document.
New Features
----------------------
* SOLR-9918: Add SkipExistingDocumentsProcessor that skips duplicate inserts and
ignores updates to missing docs
(Tim Owen via koji)
* SOLR-9293: Solrj client support for hierarchical clusters and other topics
marker. (Dawid Weiss)
* SOLR-9681: FacetModule / JSON Facet API added the ability to add filters directly
to
any facet command. The filters are applied after any domain change operations.
Example: { type:terms, field:category, filter:"user:yonik" }
(yonik)
* SOLR-8542: Adds Solr Learning to Rank (LTR) plugin for reranking results with
machine learning models.
(Michael Nilsson, Diego Ceccarelli, Joshua Pantony, Jon Dorando, Naveen
Santhapuri, Alessandro Benedetti, David Grohmann, Christine Poerschke)
* SOLR-9682: JSON Facet API: added "param" query type to facet domain filter
specification to obtain
filters via query parameters. (yonik)
* SOLR-9666: SolrJ LukeResponse support dynamic fields (Fengtan via Kevin Risden)
* SOLR-9721: javabin Tuple parser for streaming and other end points (noble)
* SOLR-9728: Ability to specify Key Store type in solr.in.sh file for SSL (Michael
Suzuki, Kevin Risden)
* SOLR-9844: FieldCache information fetched via the mbeans handler or seen via the
UI now displays the total size used.
The individual cache entries in the response are now formatted better as well.
(Varun Thacker)
* SOLR-4735, SOLR-9921: Improve metrics reporting. This uses the dropwizard metric
library, adding an internal
API for registering and reporting metrics from Solr components. Several new
metrics and an improved JMX
reporter have been added (Alan Woodward, Jeff Wartes, Christine Poerschke, Kelvin
Wong, shalin, ab)
* SOLR-9805: Use metrics-jvm library to instrument jvm internals such as GC, memory
usage and others. (shalin)
* SOLR-9884: Add version to segments handler output (Steven Bower via Erick
Erickson)
* SOLR-9877: SOLR-9923: SOLR-9948: Use instrumented http client and connection pool
in HttpShardHandler and
UpdateShardHandler. The metrics are collected per query-less URL and method by
default but it can be configured
to host/method and per-method as well. (shalin)
* SOLR-9896: Instrument and collect metrics from query, update, core admin and core
load thread pools. (shalin)
* SOLR-9854: Collect metrics for index merges and index store IO (ab)
* SOLR-9856: Collect metrics for shard replication and tlog replay on replicas
(ab).
Optimizations
----------------------
* SOLR-9704: Facet Module / JSON Facet API: Optimize blockChildren facets that have
filters specified by using those filters as acceptDocs. (yonik)
Bug Fixes
----------------------
* SOLR-9701: NPE in export handler when "fl" parameter is omitted.
(Erick Erickson)
* SOLR-9716: RecoveryStrategy sends prep recovery command without setting read time
out which can cause
replica recovery to hang indefinitely on network partitions. (Cao Manh Dat,
shalin)
* SOLR-9519: JSON Facet API: don't stop at an empty facet bucket if any sub-facets
still have a chance
of matching something due to filter exclusions (which can widen the domain
again).
(Michael Sun, yonik)
* SOLR-9736: Solr resolves the collection name against the first available leader
or first replica
of the first slice. This puts undue pressure on leader cores and likely on the
wrong ones. This is
fixed to randomly pick a leader on updates or a replica core otherwise. (Cao Manh
Dat via shalin)
* SOLR-9284: The HDFS BlockDirectoryCache should not let it's keysToRelease or
names maps grow indefinitely.
(Mark Miller, Michael Sun)
* SOLR-9626: new Admin UI now also highlights matched terms in the Analysis screen.
(Alexandre Rafalovitch)
* SOLR-9616: Solr throws exception when expand=true on empty index (Timo Hund via
Ishan Chattopadhyaya)
* SOLR-9834: A variety of spots in the code can create a collection zk node after
the collection has been
removed. (Mark Miller)
* SOLR-1953: It may be possible for temporary files to accumulate until the Solr
process is shut down.
(Karl Wright, Mark Miller)
* SOLR-9847: Stop blocking further schema updates while waiting for a pending
update to propagate to other replicas.
This reduces the likelihood of a (time-limited) distributed deadlock during
concurrent schema updates.
(Mark Miller, Steve Rowe)
* SOLR-9760: Windows script doesn't need write permission (Alex Crome by Mikhail
Khludnev)
* SOLR-9699,SOLR-4668: fix exception from core status in parallel with core reload
(Mikhail Khludnev)
* SOLR-9154: Fix DirectSolrSpellChecker to work when added through the Config API.
(Anshum Gupta)
* SOLR-9931: JSON Facet API hll (hyper-log-log) function returned 0 for non-empty
buckets with no field values
in local mode, but nothing for distributed mode. Both modes now return 0.
(yonik)
* SOLR-9503: NPE in Replica Placement Rules when using Overseer Role with other
rules (Tim Owen via noble)
* SOLR-9883: Example schemaless solr config files can lead to invalid tlog replays:
when updates are buffered,
update processors ordered before DistributedUpdateProcessor, e.g. field
normalization, are never run. (Steve Rowe)
* SOLR-9954: Prevent against failure during failed snapshot cleanup from swallowing
the actual cause
for the snapshot to fail. (thelabdude)
Other Changes
----------------------
* SOLR-9621: Remove several Guava & Apache Commons calls in favor of java 8
alternatives.
(Michael Braun via David Smiley)
* SOLR-9717: Refactor '/export' to not hardcode the JSON output and to use an API
(noble)
* SOLR-9609: Change hard-coded keysize from 512 to 1024 (Jeremy Martini via Erick
Erickson)
* SOLR-8785: Use Dropwizard Metrics library for core metrics. The copied over code
in
org.apache.solr.util.stats has been removed. (Jeff Wartes, Kelvin Wong, Christine
Poerschke, shalin)
* SOLR-9944: Map the nodes function name to the GatherNodesStream (Joel Bernstein)
* SOLR-9893: Update Mockito to version 2.6.2 for Java 9 support. Disable all legacy
EasyMock tests when running
on Java 9 until they were migrated to Mockito. (Uwe Schindler)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
* If you use the JSON Facet API (json.facet) with method=stream, you must now set
sort='index asc' to get the streaming
behavior; otherwise it won't stream. Reminder: "method" is a hint that doesn't
change defaults of other parameters.
* If you use the JSON Facet API (json.facet) to facet on a numeric field and if you
use mincount=0 or if you set the
prefix, then you will now get an error as these options are incompatible with
numeric faceting.
* Solr's logging verbosity at the INFO level has been greatly reduced, and
you may need to update the log configs to use the DEBUG level to see all the
logging messages you used to see at INFO level before.
New Features
----------------------
* SOLR-5725: facet.method=enum can bypass exact counts calculation with
facet.exists=true, it just returns 1 for
terms which exists in result docset. (Alexey Kozhemiakin, Sebastian Koziel,
Radoslaw Zielinski via Mikhail Khludnev)
* SOLR-9127: Excel workbook (.xlsx) response writer. use 'wt=xlsx' (Tony Moriarty,
noble)
* SOLR-9534: You can now set Solr's log level through environment variable
SOLR_LOG_LEVEL
Also adds conveience arguments -q (quiet: WARN) and -v (verbose: DEBUG) to
bin/solr (janhoy)
* SOLR-9537: Support facet scoring with the scoreNodes expression (Joel Bernstein)
* SOLR-9572: config API to show expanded useParams for request handlers inline
(noble)
* SOLR-9146: Parallel SQL engine should support >, >=, <, <=, <>, != syntax
(Timothy Potter, Joel Bernstein, Kevin Risden)
* SOLR-9103: Restore ability for users to add custom Streaming Expressions (Cao
Manh Dat)
* SOLR-9417: Allow daemons to terminate when they finish iterating a topic (Joel
Bernstein)
* SOLR-1085: Add support for MoreLikeThis queries and responses in SolrJ client.
(Maurice Jumelet, Bill Mitchell, Cao Manh Dat via shalin)
Bug Fixes
----------------------
* SOLR-9484: The modify collection API should wait for the modified properties to
show up in the
cluster state. (Cao Manh Dat, shalin)
* SOLR-9507: CoreContainer threads now correctly set their MDC logging values
(Alan Woodward)
* SOLR-8080: bin/solr start script now exits with informative message if using
wrong Java version (janhoy)
* SOLR-9504: A replica with an empty index becomes the leader even when other more
qualified replicas
are in line. (shalin)
* SOLR-9554: Fix NullPointerException when cores are loaded in parallel and switch
schema.xml to managed-scheme.
(Alan Woodward, Mikhail Khludnev)
* SOLR-9604: Pooled SSL connections were not being re-used (Alan Woodward,
Mikhail Khludnev, hossman)
* SOLR-9441: Solr collection backup on HDFS can only be manipulated by the Solr
process owner.
(Hrishikesh Gadre via Mark Miller)
* SOLR-2039: Multivalued fields with dynamic names does not work properly with DIH.
(K A, ruslan.shv, Cao Manh Dat via shalin)
Optimizations
----------------------
* SOLR-9374: Speed up Jmx MBean retrieval for FieldCache. (Tim Owen via shalin)
* SOLR-9449: Example schemas do not index _version_ field anymore because the field
has DocValues enabled already. (shalin)
* SOLR-9142: JSON Facet API: new method=dvhash can be chosen for fields with high
cardinality. (David Smiley)
* SOLR-9446: Leader failure after creating a freshly replicated index can send
nodes into recovery even if
index was not changed (Pushkar Raste, noble)
* SOLR-9592: retrieving docValues as stored values was sped up by using the proper
leaf
reader rather than ask for a global view. In extreme cases, this leads to a 100x
speedup.
(Takahiro Ishikawa, yonik)
* SOLR-9566: Don't put replicas into recovery when first creating a Collection
(Alan Woodward)
* SOLR-9506: cache IndexFingerprint for each segment (Pushkar Raste, yonik, noble)
* SOLR-7506: Roll over GC logs by default via bin/solr scripts (shalin, janhoy)
Other Changes
----------------------
* SOLR-6871: Updated the quickstart tutorial to cover the 6.2.0 release, and added
ant target
"generate-website-quickstart" to convert the bundled version of the tutorial into
one suitable
for the website.
* SOLR-5563: Move lots of SolrCloud logging from 'info' to 'debug' (janhoy, Alan
Woodward)
* SOLR-6677: Reduced logging during startup and shutdown, moved more logs to DEBUG
level
(janhoy, Shawn Heisey, Alan Woodward)
* SOLR-6090: Remove unreachable printLayout usage in cloud tests. (Cao Manh Dat via
shalin)
* SOLR-9500: Add a LogLevel annotation to set log levels on specific tests (Alan
Woodward)
* SOLR-9548: The beginning of solr.log now starts with a more informative welcome
message (janhoy)
* SOLR-9547: Do not allow bin/solr start as root user, unless -force param
specified (janhoy)
* SOLR-7436: Solr stops printing stacktraces in log and output (janhoy, hossman,
Markus Jelsma)
* SOLR-5041: Add a test to make sure that a leader always recovers from log on
startup. (Cao Manh Dat, shalin)
* SOLR-8969: SQLHandler causes NPE in non-cloud mode (Markus Jelsma, Kevin Risden)
* SOLR-9610: New AssertTool in SolrCLI for easier cross platform assertions from
command line (janhoy)
* SOLR-9639: Test only fix. Prevent CDCR tests from removing collection during
recovery that used to blow up jvm (Mikhail Khludnev)
* SOLR-9642: Refactor the core level snapshot cleanup mechanism to rely on Lucene
(Hrishikesh Gadre via yonik)
* SOLR-4531: Add tests to ensure that recovery does not fail on corrupted tlogs.
(Simon Scofield, Cao Manh Dat via shalin)
* SOLR-5245: Add a test to ensure that election contexts are keyed off both
collection name and coreNodeName
so that killing a shard in one collection does not result in leader election in a
different collection.
See SOLR-5243 for the related bug. (Cao Manh Dat via shalin)
* SOLR-9533: Reload core config when a core is reloaded (Gethin James, Joel
Bernstein)
* SOLR-9371: Fix bin/solr calculations for start/stop wait time and RMI_PORT.
(Shawn Heisey via Erick Erickson)
Bug Fixes
----------------------
* SOLR-9439: Shard split clean up logic for older failed splits is faulty. The
delete shard API
has also been made more resilient against failures resulting from non-existent
cores. (shalin)
* SOLR-9430: Fix locale lookup in DIH <propertyWriter/> to use BCP47 language tags
to be consistent with other places in Solr. Language names still work for
backwards
compatibility. (Uwe Schindler, Boris Steiner)
* SOLR-9389: HDFS Transaction logs stay open for writes which leaks Xceivers. (Tim
Owen via Mark Miller)
* SOLR-9444: Fix path usage for cloud backup/restore. (Hrishikesh Gadre, Uwe
Schindler, Varun Thacker)
* SOLR-9381: Snitch for freedisk uses '/' instead of 'coreRootDirectory' (Tim Owen,
noble)
* SOLR-9488: Shard split can fail to write commit data on shutdown/restart causing
replicas to recover
without replicating the index. This can cause data loss. (shalin)
* SOLR-9438: Shard split can be marked successful and sub-shard states switched to
'active' even when
one or more sub-shards replicas do not recover due to the leader crashing or
restarting between the time
the replicas are created and before they can recover. This can cause data loss.
(shalin)
Other Changes
----------------------
New Features
----------------------
* SOLR-9251: Support for a new tag 'role' in replica placement rules (noble)
* SOLR-9240: Support parallel ETL with the topic expression (Joel Bernstein)
* SOLR-9038: Solr core snapshots: The current commit can be snapshotted which
retains the commit and associates it with
a name. The core admin API can create snapshots, list them, and delete them.
Snapshot names can be referenced in
doing a core backup, and in replication. Snapshot metadata is stored in a new
snapshot_metadata/ dir.
(Hrishikesh Gadre via David Smiley)
* SOLR-9252: Feature selection and logistic regression on text (Cao Manh Dat, Joel
Bernstein)
* SOLR-9318: A DELETENODE command to delete all replicas in that node (noble, Nitin
Sharma, Varun Thacker)
Bug Fixes
----------------------
* SOLR-9234: srcField parameter works only when all fields are captured in the
/update/json/docs
endpoint (noble)
* SOLR-8626: 404 error when clicking nodes in cloud graph view in angular UI.
(janhoy, Trey Grainger via shalin)
* SOLR-8777: Duplicate Solr process can cripple a running process. (Jessica Cheng
Mallet, Scott Blum, shalin)
* SOLR-9246: If the JDBCStream sees an unknown column type it will now throw a
detailed exception. (Dennis Gove)
* SOLR-9236: AutoAddReplicas will append an extra /tlog to the update log location
on replica failover.
(Eungsop Yoo, Mark Miller)
* SOLR-7280: In cloud-mode sort the cores smartly before loading & limit threads to
improve cluster stability
(noble, Erick Erickson, shalin)
* SOLR-9288: Fix [docid] transformer to return -1 when used in RTG with uncommitted
doc (hossman)
* SOLR-9309: Fix SolrCloud RTG response structure when multi ids requested but only
1 found (hossman)
* SOLR-9003: New Admin UI's Dataimport screen now correctly displays DIH Debug
output (Alexandre Rafalovitch)
* SOLR-9308: Fix distributed RTG to forward request params, fixes fq and non-
default fl params (hossman)
* SOLR-8715: Admin UI's Schema screen now works for fields with stored=false and
some content indexed (Alexandre Rafalovitch)
* SOLR-8911: In Admin UI, enable scrolling for overflowing Versions and JVM
property values (Alexandre Rafalovitch)
* SOLR-9002: Admin UI now correctly displays json and text files in the
collection/Files screen (Upayavira, Alexandre Rafalovitch)
Optimizations
----------------------
* SOLR-9219: Make hdfs blockcache read buffer sizes configurable and improve cache
concurrency. (Mark Miller)
* SOLR-9335: Solr cache/search/update stats counters now use LongAdder which are
supposed to have higher throughput
under high contention. (Varun Thacker)
* SOLR-9350: JSON Facets: method="stream" will no longer always uses & populates
the filter cache, likely
flushing it. 'cacheDf' can be configured to set a doc frequency threshold, now
defaulting to 1/16th doc count.
Using -1 Disables use of the cache. (David Smiley, yonik)
Other Changes
----------------------
* SOLR-9277: Clean up some more remnants of supporting old and new style solr.xml
in tests (Erick Erickson)
* SOLR-9340: Change ZooKeeper disconnect and session expiry related logging from
INFO to WARN to
make debugging easier (Varun Thacker)
* SOLR-9358: [AngularUI] In Cloud->Tree file view area, collapse metadata by
default (janhoy)
* SOLR-9392: Fixed CDCR Test failures which were due to leaked resources. (shalin)
* SOLR-9092: For the delete replica command we attempt to send the core admin
delete request only
if that node is actually up. (Jessica Cheng Mallet, Varun Thacker)
* SOLR-8644: Test asserts that block join facets work with parent level fq
exclusions. (Dr. Oleg Savrasov via Mikhail Khludnev)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
* If you use historical dates, specifically on or before the year 1582, you should
re-index.
New Features
----------------------
* SOLR-8782: Add asynchronous sugar methods to the SolrJ Collections API. You
can now call .processAsync() to run a method asynchronously, or
.processAndWait() to wait for a call to finish without holding HTTP
collections open. (Alan Woodward)
* SOLR-8859: Spatial fields like RPT can now be configured to use Spatial4j
registered shape formats
e.g. via format="GeoJSON". (ryan, David Smiley)
* SOLR-8962: Add sort Streaming Expression. The expression takes a single input
stream and a
comparator and outputs tuples in stable order of the comparator. (Dennis Gove)
* SOLR-8349: Allow sharing of large in memory data structures across cores (Gus
Heck, noble)
* SOLR-8918: Adds Streaming to the admin page under the collections section.
Includes
ability to see graphically the expression explanation (Dennis Gove)
* SOLR-8913: When using a shared filesystem we should store data dir and tlog dir
locations in
the cluster state. (Mark Miller)
* SOLR-7117: Provide an option to limit the maximum number of cores that can be
created on a node by the
Auto Add Replica feature. For this you can set a "maxCoresPerNode" property via
the Cluster Property API
(Varun Thacker, Mark Miller)
* SOLR-8988: Adds query option facet.distrib.mco which when set to true allows the
use of facet.mincount=1 in cloud mode.
(Keith Laban, Dennis Gove)
Bug Fixes
----------------------
* SOLR-8855: The HDFS BlockDirectory should not clean up it's cache on shutdown.
(Mark Miller)
* SOLR-9029: fix rare ZkStateReader visibility race during collection state format
update (Scott Blum, hossman)
* SOLR-9046: Fix solr.cmd that wrongly assumes Jetty will always listen on 0.0.0.0.
(Bram Van Dam, Uwe Schindler)
* SOLR-9151: Fix SolrCLI so that bin/solr -e cloud example can be run from any CWD
(janhoy)
* SOLR-9141: Fix ClassCastException when using the /sql handler count() function
with
single-shard collections (Minoru Osuka via James Dyer)
* SOLR-9198: config APIs unable to add multiple values with same name (noble)
Optimizations
----------------------
* SOLR-8722: Don't force a full ZkStateReader refresh on every Overseer operation.
(Scott Blum via shalin)
* SOLR-8856: Do not cache merge or 'read once' contexts in the hdfs block cache.
(Mark Miller, Mike Drob)
* SOLR-8973: Zookeeper frenzy when a core is first created. (Janmejay Singh, Scott
Blum, shalin)
* SOLR-9014: Deprecate and reduce usage of ClusterState methods which may make
calls to ZK via
the lazy collection reference. (Scott Blum, shalin)
* SOLR-9204: Improve performance of getting directory size with hdfs. (Mark Miller)
Other Changes
----------------------
* SOLR-8860: Remove back-compat handling of router format made in SOLR-4221 in
4.5.0. (shalin)
* SOLR-8842: security rules made more foolproof by asking the requesthandler about
the well known
permission name. The APIs are also modified to ue 'index' as the unique
identifier instead of name.
Name is an optional attribute now and only to be used when specifying well-known
permissions (noble)
* SOLR-8097: Implement builder pattern design for constructing SolrJ clients and
also deprecate direct construction
of client objects. (Jason Gerlowski, Shawn Heisey, Anshum Gupta)
* SOLR-8933: Solr should not close container streams. (Mike Drob, Uwe Schindler,
Mark Miller)
* SOLR-8184: Negative tests for JDBC Connection String (Susheel Kumar, Jason
Gerlowski, Kevin Risden)
* SOLR-9083: Remove all <types> and <fields> from schemas. NOTE: as in the JIRA I
left a few in to insure the (no cost)
back compat. (Erick Erickson)
* SOLR-9105: Fix a bunch of typos across 103 files (Bartosz Krasiński via janhoy)
* SOLR-9136: Separate out the error statistics into server-side error vs client-
side error
(Jessica Cheng Mallet via Erick Erickson)
* SOLR-9107: new @RandomizeSSL annotation for more fine grained control of SSL
testing (hossman, sarowe)
* SOLR-8445: fix line separator in log4j.properties files (Ahmet Arslan via Mikhail
Khludnev)
Upgrade Notes
----------------------
* If you use historical dates, specifically on or before the year 1582, you should
re-index.
Bug Fixes
----------------------
* SOLR-8992: Restore Schema API GET method functionality removed in 6.0 (noble,
Steve Rowe)
* SOLR-9080, SOLR-9085: (6.0 bug) For years <= 1582, date math (round,add,sub)
introduced error. Range faceting
on such dates was also affected. With this fixed, this is the first release
range faceting works on BC years.
(David Smiley)
* SOLR-8857: HdfsUpdateLog does not use configured or new default number of version
buckets and is
hard coded to 256. (Mark Miller, yonik, Gregory Chanan)
* SOLR-8902: Make sure ReturnFields only returns the requested fields from (fl=)
evn when
DocumentTransformers ask for getExtraRequestFields() (ryan)
* SOLR-8946: bin/post failed to detect stdin usage on Ubuntu; maybe other unixes.
(David Smiley)
* SOLR-8990: Fix top term links from schema browser page to use {!term} parser
(hossman)
* SOLR-9034: Atomic updates failed to work when there were copyField targets that
had docValues
enabled. (Karthik Ramachandran, Ishan Chattopadhyaya, yonik)
* SOLR-9028: Fixed some test related bugs preventing SSL + ClientAuth from ever
being tested (hossman)
* SOLR-9036: Solr slave is doing full replication (entire index) of index after
master restart.
(Lior Sapir, Mark Miller, shalin)
* SOLR-9117: The first SolrCore is leaked after reload. (Jessica Cheng Mallet via
shalin)
Other Changes
----------------------
* SOLR-7516: Improve javadocs for JavaBinCodec, ObjectResolver and enforce the
single-usage policy.
(Jason Gerlowski, Benoit Vanalderweireldt, shalin)
* SOLR-8967: In SolrCloud mode, under the 'Core Selector' dropdown in the UI the
Replication tab won't be displayed
anymore. The Replication tab is only beneficial to users running Solr in master-
slave mode. (Varun Thacker)
* SOLR-5776,SOLR-9068,SOLR-8970:
- Refactor SSLConfig so that SSLTestConfig can provide SSLContexts using a
NullSecureRandom
to prevent SSL tests from blocking on entropy starved machines.
- SSLTestConfig: Alternate (pseudo random) NullSecureRandom for Constants.SUN_OS.
- SSLTestConfig: Replace NullSecureRandom w/ NotSecurePseudoRandom.
- Change SSLTestConfig to use a keystore file that is included as a resource in
the
test-framework jar so users subclassing SolrTestCaseJ4 don't need to preserve
magic paths.
(hossman)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release
System Requirements
----------------------
* LUCENE-5950: Move to Java 8 as minimum Java version.
(Ryan Ernst, Uwe Schindler)
Upgrading from Solr 5.x
----------------------
* The deprecated SolrServer and subclasses have been removed, use SolrClient
instead.
* Several changes have been made regarding the "Similarity" used in Solr, in order
to provide
better default behavior for new users. There are 3 key impacts of these changes
on existing
users who upgrade:
* DefaultSimilarityFactory has been removed. If you currently have
DefaultSimilarityFactory explicitly
referenced in your schema.xml, edit your config to use the functionally
identical
ClassicSimilarityFactory. See SOLR-8239 for more details.
* The implicit default Similarity used when no <similarity/> is configured in
schema.xml has
been changed to SchemaSimilarityFactory. Users who wish to preserve back-
compatible behavior should
either explicitly configure ClassicSimilarityFactory, or ensure that the
luceneMatchVersion
for the collection is less then 6.0. See SOLR-8270 + SOLR-8271 for details.
* SchemaSimilarityFactory has been modified to use BM25Similarity as the default
for fieldTypes that
do not explicitly declare a Similarity. The legacy behavior of using
ClassicSimilarity as the
default will occur if the luceneMatchVersion for the collection is less then
6.0, or the
'defaultSimFromFieldType' configuration option may be used to specify any
default of your choosing.
See SOLR-8261 + SOLR-8329 for more details.
* When requesting stats in date fields, "sum" is now a double value instead of a
date. See SOLR-8671
* SOLR-8736: The deprecated GET methods for schema are now accessible through the
bulk API. The output
has less details and is not backward compatible.
* In the past, Solr guaranteed that retrieval of multi-valued fields would preserve
the order of values.
Because values may now be retrieved from column-stored fields (docValues="true"),
in conjunction with the
fact that docValues do not currently preserve order, means that users should set
useDocValuesAsStored="false"
to prevent future optizations from using the column-stored values over the row-
stored values when
fields have both stored="true" and docValues="true".
* Formatted date-times from Solr have some differences. If the year is more than 4
digits, there is a leading '+'.
When there is a non-zero number of milliseconds, it is padded with zeros to 3
digits. Negative year (BC) dates are
now possible. Parsing: It is now an error to supply a portion of the date out of
its, range, like 67 seconds.
* SolrJ no longer includes DateUtil. If for some reason you need to format or parse
dates, simply use Instant.format()
and Instant.parse().
* If you are using an RPT or other spatial field referencing Spatial4j in its
configuration, then replace the string
"com.spatial4j.core" with "org.locationtech.spatial4j". Consider updating direct
to Solr 6.2 which accepts the
old value, albeit with a warning.
New Features
----------------------
* SOLR-3085: New edismax param mm.autoRelax which helps in certain cases of the
stopwords/zero-hits issue (janhoy)
* SOLR-7903: Add the FacetStream to the Streaming API and wire it into the
SQLHandler (Joel Bernstein)
* SOLR-7986: JDBC Driver for SQL Interface (Uwe Schindler, Joel Bernstein)
* SOLR-8038: Add the StatsStream to the Streaming API and wire it into the
SQLHandler (Joel Bernstein)
* SOLR-8086: Add support for SELECT DISTINCT queries to the SQL interface (Joel
Bernstein)
* SOLR-7938: MergeStream now supports merging more than 2 streams together (Dennis
Gove)
* SOLR-7584: Adds Inner and LeftOuter Joins to the Streaming API and Streaming
Expressions (Dennis Gove, Corey Wu)
* SOLR-8188: Adds Hash and OuterHash Joins to the Streaming API and Streaming
Expressions (Dennis Gove)
* SOLR-7669: Add SelectStream and Tuple Operations to the Streaming API and
Streaming Expressions (Dennis Gove)
* SOLR-8002: Add column alias support to the Parallel SQL Interface (Joel
Bernstein)
* SOLR-8285: Ensure the /export handler works with NULL field values (Joel
Bernstein)
* SOLR-8502: Improve Solr JDBC Driver to support SQL Clients like DBVisualizer
(Kevin Risden, Joel Bernstein)
Bug Fixes
----------------------
* SOLR-8386: Add field option in the new admin UI schema page loads up even when no
schemaFactory has been
explicitly specified since the default is ManagedIndexSchemaFactory. (Erick
Erickson, Upayavira, Varun Thacker)
* SOLR-8409: Ensures that quotes in solr params (eg. q param) are properly handled
(Dennis Gove)
* SOLR-8640: CloudSolrClient does not send credentials for update request (noble,
hoss)
* SOLR-8461: CloudSolrStream and ParallelStream can choose replicas that are not
active
(Cao Manh Dat, Varun Thacker, Joel Bernstein)
* SOLR-8683: Always consume the full request on the server, not just in the case of
an error.
(Mark Miller)
* SOLR-8416: The collections create API should return after all replicas are
active.
(Michael Sun, Mark Miller, Alexey Serba)
* SOLR-8694: DistributedMap/Queue can create too many Watchers and some code
simplification.
(Scott Blum via Mark Miller)
* SOLR-8695: Ensure ZK watchers are not triggering our watch logic on connection
events and
make this handling more consistent. (Scott Blum via Mark Miller)
* SOLR-8656: PeerSync should use same nUpdates everywhere. (Ramsey Haddad via Mark
Miller)
* SOLR-8497: Merge index does not mark the Directory objects it creates as 'done'
and they are retained in the
Directory cache. (Sivlio Sanchez, Mark Miller)
* SOLR-8696: Start the Overseer before actions that need the overseer on init and
when reconnecting after
zk expiration and improve init logic. (Scott Blum, Mark Miller)
* SOLR-8420: Fix long overflow in sumOfSquares for Date statistics. (Tom Hill,
Christine Poerschke,
Tomás Fernández Löbbe)
* SOLR-8771: Multi-threaded core shutdown creates executor per core. (Mike Drob via
Mark Miller)
* SOLR-8145: Fix position of OOM killer script when starting Solr in the background
(Jurian Broertjes via
Timothy Potter)
* SOLR-8769: Fix document exclusion in mlt query parser in Cloud mode for schemas
that have non-"id"
unique field (Erik Hatcher, Anshum Gupta)
* SOLR-8728: ReplicaAssigner throws NPE when a partial list of nodes are only
participating in replica
placement. splitshard should preassign nodes using rules, if rules are present
(noble, Shai Erera)
* SOLR-8449: Fix the core restore functionality to allow restoring multiple times
on the same core
(Johannes Brucher, Varun Thacker)
* SOLR-8155: JSON Facet API - field faceting on a multi-valued string field without
docValues (i.e. UnInvertedField implementation), but with a prefix or with a sort
other than count, resulted in incorrect results. This has been fixed, and
facet.prefix
support for facet.method=uif has been enabled. (Mikhail Khludnev, yonik)
* SOLR-8804: Fix a race condition in the ClusterStatus API call whereby the call
would fail when a concurrent delete
collection api command was executed (Alexey Serba, Varun Thacker)
* SOLR-8835: JSON Facet API: fix faceting exception on multi-valued numeric fields
that
have docValues. (yonik)
* SOLR-8867: {!frange} queries will now avoid matching documents without a value in
the
numeric field. For more complex functions, FunctionValues.exists() must also
return true
for the document to match. (yonik)
Optimizations
----------------------
* SOLR-7876: Speed up queries and operations that use many terms when timeAllowed
has not been
specified. Speedups of up to 8% were observed. (yonik)
* SOLR-8037: Speed up creation of filters from term range queries (i.e. non-numeric
range queries)
and use the filter cache for term range queries that are part of larger queries.
Some observed
speedups were up to 2.5x for production of filters, and up to 10x for query
evaluation with
embedded term range queres that resulted in filter cache hits. (yonik)
* SOLR-8669: Non binary responses use chunked encoding because we flush the
outputstream early.
(Mark Miller)
Other Changes
----------------------
* SOLR-6127: Improve example docs, using films data (Varun Thacker via ehatcher)
* SOLR-7554: Add checks in Streams for incoming stream order (Dennis Gove, Joel
Bernstein)
* SOLR-8153: Support upper case and mixed case column identifiers in the SQL
interface
(Joel Bernstein)
* SOLR-8258: Change default hdfs tlog replication factor from 1 to 3. (Mark Miller)
* SOLR-8179: SQL JDBC - DriverImpl loadParams doesn't support keys with no values
in the connection string
(Kevin Risden, Joel Bernstein)
* SOLR-8266: Remove Java Serialization from the Streaming API. The /stream handler
now only accepts
Streaming Expressions. (Jason Gerlowski, Joel Bernstein)
* SOLR-8426: Enable /export, /stream and /sql handlers by default and remove them
from example configs. (shalin)
* SOLR-8443: Change /stream handler http param from "stream" to "expr" (Joel
Bernstein, Dennis Gove)
* SOLR-8671: Date statistics: make "sum" a double instead of a long/date (Tom Hill,
Christine Poerschke,
Tomás Fernández Löbbe)
* SOLR-8713: new UI and example solrconfig files point to Reference Guide for Solr
Query Syntax instead
of the wiki. (Marius Grama via Tomás Fernández Löbbe)
* SOLR-8799: Improve error message when tuple can't be read by SolrJ JDBC (Kevin
Risden, Joel Bernstein)
* SOLR-8904: All dates are formatted via Instant.toString() (ISO-8601); see Solr
upgrade notes for differences. Will
now parse (and format) dates with a leading '+' or '-' (BC dates or dates > 4
digit year.
[value] and ms() and contrib/analytics now parse with date math. (David Smiley)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Upgrade Notes
----------------------
Bug Fixes
----------------------
* SOLR-10420: Leaking one SolrZkClient instance per second (Scott Blum, Cao Manh
Dat, Markus Jelsma, Steve Rowe)
Other
----------------------
* SOLR-11486: Update jmatio to 1.2 and prevent deserialization inside Matlab files.
(Uwe Schindler, Steve Rowe)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Other Changes
----------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
(No Changes)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
Bug Fixes
---------------------
* SOLR-8695: Ensure ZK watchers are not triggering our watch logic on connection
events and
make this handling more consistent. (Scott Blum via Mark Miller)
* SOLR-9198: config APIs unable to add multiple values with same name (noble)
* SOLR-9034: Atomic updates failed to work when there were copyField targets that
had docValues
enabled. (Karthik Ramachandran, Ishan Chattopadhyaya, yonik)
* SOLR-8857: HdfsUpdateLog does not use configured or new default number of version
buckets and is
hard coded to 256. (Mark Miller, yonik, Gregory Chanan)
* SOLR-8946: bin/post failed to detect stdin usage on Ubuntu; maybe other unixes.
(David Smiley)
* SOLR-8990: Fix top term links from schema browser page to use {!term} parser
(hossman)
* SOLR-9036: Solr slave is doing full replication (entire index) of index after
master restart.
(Lior Sapir, Mark Miller, shalin)
* SOLR-9151: Fix SolrCLI so that bin/solr -e cloud example can be run from any CWD
(janhoy)
Other Changes
----------------------
* SOLR-8967: In SolrCloud mode, under the 'Core Selector' dropdown in the UI the
Replication tab won't be displayed
anymore. The Replication tab is only beneficial to users running Solr in master-
slave mode. (Varun Thacker)
* SOLR-8933: Solr should not close container streams. (Mike Drob, Uwe Schindler,
Mark Miller)
* SOLR-9105: Fix a bunch of typos across 103 files (Bartosz Krasiński via janhoy)
* SOLR-8445: fix line separator in log4j.properties files (Ahmet Arslan via Mikhail
Khludnev)
Bug Fixes
----------------------
* SOLR-8737: Managed synonym lists do not include the original term in the expand
(janhoy)
* SOLR-8793: Fix Core admin status API to not fail when computing the size of the
segments_N
file if the file no longer exists (for example, if a commit happened and the
IndexReader
hasn't refreshed yet). In this case the reported size of the file is -1.
(Shai Erera, Alexey Serba, Richard Coggins)
* SOLR-8728: ReplicaAssigner throws NPE when a partial list of nodes are only
participating in replica
placement. splitshard should preassign nodes using rules, if rules are present
(noble, Shai Erera)
* SOLR-8870: AngularJS Query tab no longer URL-encodes the /select part of the
request, fixing possible 404 issue
when Solr is behind a proxy. Also, now supports old-style &qt param when handler
not prefixed with "/" (janhoy)
* SOLR-8725: Allow hyphen in collection, core, shard, and alias name as the non-
first character
(Anshum Gupta) (from 6.0)
* SOLR-8155: JSON Facet API - field faceting on a multi-valued string field without
docValues (i.e. UnInvertedField implementation), but with a prefix or with a sort
other than count, resulted in incorrect results. This has been fixed, and
facet.prefix
support for facet.method=uif has been enabled. (Mikhail Khludnev, yonik)
* SOLR-8835: JSON Facet API: fix faceting exception on multi-valued numeric fields
that
have docValues. (yonik)
* SOLR-8578: Successful or not, requests are not always fully consumed by Solrj
clients and we
count on HttpClient or the JVM. (Mark Miller)
* SOLR-8683: Always consume the full request on the server, not just in the case of
an error.
(Mark Miller)
* SOLR-8416: The collections create API should return after all replicas are
active.
(Michael Sun, Mark Miller, Alexey Serba)
* SOLR-8973: Zookeeper frenzy when a core is first created. (Janmejay Singh, Scott
Blum, shalin)
* SOLR-8694: DistributedMap/Queue can create too many Watchers and some code
simplification.
(Scott Blum via Mark Miller)
* SOLR-8656: PeerSync should use same nUpdates everywhere. (Ramsey Haddad via Mark
Miller)
* SOLR-8420: Fix long overflow in sumOfSquares for Date statistics. (Tom Hill,
Christine Poerschke,
Tomás Fernández Löbbe)
* SOLR-8771: Multi-threaded core shutdown creates executor per core. (Mike Drob via
Mark Miller)
* SOLR-8145: Fix position of OOM killer script when starting Solr in the background
(Jurian Broertjes via
Timothy Potter)
* SOLR-8769: Fix document exclusion in mlt query parser in Cloud mode for schemas
that have non-"id"
unique field (Erik Hatcher, Anshum Gupta)
* SOLR-8728: ReplicaAssigner throws NPE when a partial list of nodes are only
participating in replica
placement. splitshard should preassign nodes using rules, if rules are present
(noble, Shai Erera)
* SOLR-8449: Fix the core restore functionality to allow restoring multiple times
on the same core
(Johannes Brucher, Varun Thacker)
* SOLR-8804: Fix a race condition in the ClusterStatus API call whereby the call
would fail when a concurrent delete
collection api command was executed (Alexey Serba, Varun Thacker)
* SOLR-9046: Fix solr.cmd that wrongly assumes Jetty will always listen on 0.0.0.0.
(Bram Van Dam, Uwe Schindler)
Other Changes
----------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release
* The Solr schema version has been increased to 1.6. Since schema version 1.6, all
non-stored docValues fields
will be returned along with other stored fields when all fields (or pattern
matching globs) are specified
to be returned (e.g. fl=*) for search queries. This behavior can be turned on and
off by setting
'useDocValuesAsStored' parameter for a field or a field type to true (default
since schema version 1.6)
or false (default till schema version 1.5).
Note that enabling this property has performance implications because DocValues
are column-oriented and may
therefore incur additional cost to retrieve for each returned document. All
example schema are upgraded to
version 1.6 but any older schemas will default to useDocValuesAsStored=false and
continue to work as in
older versions of Solr. If this new behavior is desirable, then you should set
version attribute in your
schema file to '1.6'. Re-indexing is not necessary to upgrade the schema version.
Also note that while returning non-stored fields from docValues (default in
schema versions 1.6+, unless
useDocValuesAsStored is false), the values of a multi-valued field are returned
in sorted order.
If you require the multi-valued fields to be returned in the original insertion
order, then make your
multi-valued field as stored. This requires re-indexing.
See SOLR-8220 for more details.
* The PERSIST CoreAdmin action which was a NOOP and returned a deprecated message
has been removed. See SOLR-8476
for more details. The corresponding SolrJ action has also been removed.
* Clearing up stored async collection api responses via REQUESTSTATUS call is now
deprecated and would be
removed in 6.0. See SOLR-8648 for more details.
* SOLR-6594: Deprecated the old schema API which will be removed in a later major
release
New Features
----------------------
* SOLR-8230: JSON Facet API: add "facet-info" into debug section of response when
debugQuery=true
(Michael Sun, yonik)
* SOLR-8312: Add domain size and numBuckets to facet telemetry info (facet debug
info
for the new Facet Module). (Michael Sun, yonik)
* SOLR-8534: Add generic support for collection APIs to be async. Thus more actions
benefit from having async
support. The commands that additionally get async support are: delete/reload
collection, create/delete alias,
create/delete shard, delete replica, add/delete replica property, add/remove
role,
overseer status, balance shard unique, rebalance leaders, modify collection,
migrate state format (Varun Thacker)
* SOLR-8560: Added RequestStatusState enum which can be used when comparing states
of
asynchronous requests. (Shai Erera)
* SOLR-8586: added index fingerprint, a hash over all versions currently in the
index.
PeerSync now uses this to check if replicas are in sync. (yonik)
* SOLR-8648: DELETESTATUS API for selective deletion and flushing of stored async
collection API responses.
(Anshum Gupta)
* SOLR-8175: Word Break Spellchecker would throw AIOOBE with certain queries
containing
"should" clauses. (Ryan Josal via James Dyer)
* SOLR-2556: The default spellcheck query converter was ignoring terms consisting
entirely
of digits. (James Dyer)
* SOLR-7304: Fix Spellcheck Collate to not invalidate range queries. (James Dyer)
* SOLR-8401: Windows start script fails when executed from a different drive.
(Nicolas Gavalda via Erick Erickson)
* SOLR-8276: Atomic updates and realtime-get do not work with non-stored docvalues.
(Ishan Chattopadhyaya, yonik via shalin)
* SOLR-8494: SimplePostTool and therefore the bin/post script cannot upload files
larger than 2.1GB. (shalin)
* SOLR-8450: Our HttpClient retry policy is too permissive. (Mark Miller, shalin)
* SOLR-8541: Highlighting a geo RPT field would throw an NPE instead of doing
nothing.
(Pawel Rog via David Smiley)
* SOLR-8548: Core discovery was not following symlinks (Aaron LaBella via Alan
Woodward)
* SOLR-8371: Try and prevent too many recovery requests from stacking up and clean
up some faulty
cancel recovery logic. (Mark Miller)
* SOLR-8605: Regular expression queries starting with escaped forward slash caused
an exception. (Scott Blum, yonik)
* SOLR-8607: The Schema API refuses to add new fields that match existing dynamic
fields.
(Jan Høydahl, Steve Rowe)
* SOLR-8575: Fix HDFSLogReader replay status numbers, a performance bug where we
can reopen
FSDataInputStream much too often, and an hdfs tlog data integrity bug.
(Mark Miller, Patrick Dvorack, yonik)
Optimizations
----------------------
* SOLR-8501: Specify the entity request size when known in HttpSolrClient. (Mark
Miller)
* SOLR-8615: Just like creating cores, we should use multiple threads when closing
cores.
(Mark Miller)
* SOLR-8669: Non binary responses use chunked encoding because we flush the
outputstream early.
(Mark Miller)
Other Changes
----------------------
* SOLR-8336: CoreDescriptor now takes a Path for its instance directory, rather
than a String (Alan Woodward)
* SOLR-8333: Several API tweaks so that public APIs were no longer refering to
private classes
(ehatcher, Shawn Heisey, hossman)
* SOLR-8279: Add a new test fault injection approach and a new SolrCloud test that
stops and starts the cluster
while indexing data and with random faults. (Mark Miller)
* SOLR-8549: Solr start script checks for cores which have failed to load as well
before attempting to
create a core with the same name (Varun Thacker)
* SOLR-7968: Make QueryComponent more extensible. (Markus Jelsma via David Smiley)
* SOLR-8308: Core gets inaccessible after RENAME operation with special characters
(Erik Hatcher, Erick Erickson)
* SOLR-3141: Warn in logs when expensive optimize calls are made (yonik, janhoy)
Bug Fixes
----------------------
* SOLR-8418: Adapt to changes in LUCENE-6590 for use of boosts with MLTHandler and
Simple/CloudMLTQParser (Jens Wille, Ramkumar Aiyengar)
New Features
----------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release
* SOLR-8307: EmptyEntityResolver was moved from core to solrj, and moved from the
org.apache.solr.util
package to org.apache.solr.common. If you are using this class, you will need to
adjust the import package.
New Features
----------------------
* SOLR-7858, SOLR-8199: Add links between original and new Admin UIs (Upayavira)
* SOLR-8217: JSON Facet API: add "method" param to terms/field facets to give an
execution
hint for what method should be used to facet. (yonik)
* SOLR-7569: A collection API to force elect a leader, called FORCELEADER, when all
replicas in a shard are down
(Ishan Chattopadhyaya, Mark Miller, shalin, noble)
* SOLR-6168: Add a 'sort' local param to the collapse QParser to support using
complex sort options
to select the representitive doc for each collapsed group. (Umesh Prasad,
hossman)
* SOLR-7912: Add boost support, and also exclude the queried document in
MoreLikeThis QParser
(Jens Wille via Anshum Gupta)
Bug Fixes
----------------------
* SOLR-7920: Resolve XSS issue in Admin UI Schema Browser (David Chiu via
Upayavira)
* SOLR-7935: Fix very rare race condition that can cause an update to fail
via NullPointerException during a core reload. (yonik)
* SOLR-7941: multivalued params are concatenated when using config API (noble)
* SOLR-7954: Fixed an integer overflow bug in the HyperLogLog code used by the
'cardinality' option
of stats.field to prevent ArrayIndexOutOfBoundsException in a distributed search
when a large precision
is selected and a large number of values exist in each shard (hossman)
* SOLR-7844: Zookeeper session expiry during shard leader election can cause
multiple leaders.
(Mike Roberts, Mark Miller, Jessica Cheng)
* SOLR-7984: wrong and misleading error message 'no default request handler is
registered' (noble, hossman)
* SOLR-8001: Fixed bugs in field(foo,min) and field(foo,max) when some docs have no
values
(David Smiley, hossman)
* SOLR-8058: Fix the exclusion filter so that collections that start with js, css,
img, tpl
can be accessed. (Upayavira, Steve Rowe, Anshum Gupta)
* SOLR-8069: Ensure that only the valid ZooKeeper registered leader can put a
replica into Leader
Initiated Recovery. (Mark Miller, Jessica Cheng, Anshum Gupta)
* SOLR-8095: Allow disabling HDFS Locality Metrics and disable by default as it may
have performance
implications on rapidly changing indexes. (Mike Drob via Mark Miller)
* SOLR-8085: Fix a variety of issues that can result in replicas getting out of
sync. (yonik, Mark Miller)
* SOLR-8075: Leader Initiated Recovery should not stop a leader that participated
in an election with all
of it's replicas from becoming a valid leader. (Mark Miller)
* SOLR-8130: Solr's hdfs safe mode detection does not catch all cases of being in
safe mode.
(Mark Miller, Mike Drob)
* SOLR-8107: bin/solr -f should use exec to start the JVM (Martijn Koster via
Timothy Potter)
* SOLR-8050: Partial update on document with multivalued date field fails to parse
date and can
also fail to remove dates in some cases. (Burkhard Buelte, Luc Vanlerberghe,
shalin)
* SOLR-8167: Authorization framework does not work with POST params (noble)
* SOLR-7843: DataImportHandler's delta imports leak memory because the delta keys
are kept in memory
and not cleared after the process is finished. (Pablo Lozano via shalin)
* SOLR-7993: Raw json output for fields stopped working in 5.3.0 when requested
fields do not include
the unique key field name. (Bill Bell, Ryan McKinley via shalin)
* SOLR-8192: JSON Facet API allBuckets:true did not work correctly when faceting
on a multi-valued field with sub-facets / facet functions. (yonik)
* SOLR-8206: JSON Facet API limit:0 did not always work correctly. (yonik)
* SOLR-8203: Stop processing updates more quickly on node shutdown. When a node
is shut down, streaming updates would continue, but new update requests would
be aborted. This can cause big update reorders that can cause replicas to
get out of sync. (Mark Miller, yonik)
* SOLR-8262: Comment out /stream handler from sample solrconfig.xml's for security
reasons
(Joel Bernstein)
* SOLR-7989: After a new leader is elected it should change it's state to ACTIVE
even
if the last published state is something else if it has already registered with
ZK.
(Ishan Chattopadhyaya, Mark Miller via noble)
* SOLR-8284: JSON Facet API - fix NPEs when short form "sort:index" or "sort:count"
are used. (Michael Sun via yonik)
* SOLR-8295: Fix NPE in collapse QParser when collapse field is missing from all
docs in a segment (hossman)
* SOLR-8073: Solr fails to start on Windows with obscure errors when using relative
path.
(Alexandre Rafalovitch, Ishan Chattopadhyaya via shalin)
* SOLR-7169: bin/solr status should return exit code 3, not 0 if Solr is not
running
(Dominik Siebel via Timothy Potter)
* SOLR-8326: If BasicAuth enabled, inter node requests fail after node restart
(noble, Anshum Gupta)
* SOLR-8355: update permissions were failing node recovery (noble , Anshum Gupta)
Optimizations
----------------------
* SOLR-7918: Filter (DocSet) production from term queries has been optimized and
is anywhere from 20% to over 100% faster and produces less garbage on average.
(yonik)
* SOLR-6629: Watch /collections zk node on all nodes so that cluster state updates
are more efficient especially when cluster has a mix of collections in
stateFormat=1
and stateFormat=2. (Scott Blum, shalin)
* SOLR-7983: Utils.toUTF8 uses larger buffer than necessary for holding UTF8 data.
(shalin)
Other Changes
----------------------
* SOLR-7969: Unavailable clustering engines should not fail the core. (Dawid Weiss)
* SOLR-7831: Start Scripts: Allow a configurable stack size [-Xss] (Steve Davids
via Mark Miller)
* SOLR-7960: Start scripts now gives generic help for bin/solr -h and bin/solr --
help (janhoy)
* SOLR-7966: Solr Admin UI Solr now sets the HTTP header X-Frame-Options to DENY
to avoid clickjacking. (yonik)
* SOLR-8150: Fix build failure due to too much output from QueryResponseTest
(janhoy)
* SOLR-4854: Add a test to assert that [elevated] DocTransfer works correctly with
javabin
response format. (Ray, shalin)
* SOLR-8246: Fix SolrCLI to clean the config directory in case creating a core
failed.
(Jason Gerlowski via Shai Erera)
* SOLR-8315: Removed default core checks in the dispatch filter since we don't have
a default
core anymore (Varun Thacker)
* SOLR-8101: Improve Linux service installation script (Sergey Urushkin via Timothy
Potter)
* SOLR-8330: Standardize and fix logger creation and usage so that they aren't
shared
across source files.(Jason Gerlowski, Uwe Schindler, Anshum Gupta)
* SOLR-8167: Authorization framework does not work with POST params (noble)
* SOLR-8355: update permissions were failing node recovery (noble , Anshum Gupta)
* SOLR-8326: If BasicAuth enabled, inter node requests fail after node restart
(noble, Anshum Gupta)
Bug Fixes
----------------------
* SOLR-7949: Resolve XSS issue in Admin UI stats page (David Chiu via janhoy)
* SOLR-7988: SolrJ could not make requests to handlers with '/admin/' prefix (noble
, ludovic Boutros)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release
* The "name" parameter in ADDREPLICA Collections API call has be deprecated. One
cannot specify
the core name for a replica. See SOLR-7499 for more info.
New Features
----------------------
* SOLR-7724: SolrJ now supports parsing the output of the clustering component.
(Alessandro Benedetti via Dawid Weiss)
* SOLR-7389: Expose znodeVersion property for each of the collections returned for
the clusterstatus
operation in the collections API (Marius Grama via shalin)
* SOLR-7458: Expose HDFS Block Locality Metrics via JMX (Mike Drob via Mark Miller)
* SOLR-7676: Faceting on nested objects / Block-join faceting with the new JSON
Facet API.
Example: Assuming books with nested pages and an input domain of pages, the
following
will switch the domain to books before faceting on the author field:
authors:{ type:terms, field:author, domain:{toParent:"type:book"} }
(yonik)
* SOLR-7668: Add 'port' tag support in replica placement rules (Adam McElwee, Noble
Paul)
* SOLR-7639: MoreLikeThis QParser now supports all options provided by the MLT
Handler i.e. mintf, mindf,
minwl, maxwl, maxqt, and maxntp.
* SOLR-7182: Make the Schema-API a first class citizen of SolrJ. The new
SchemaRequest and its inner
classes can be used to make requests to the Schema API. (Sven Windisch, Marius
Grama via shalin)
* SOLR-7651: New response format added wt=smile (noble)
* SOLR-4212: SOLR-6353: Let facet queries and facet ranges hang off of pivots.
Example:
facet.range={!tag=r1}price&facet.query={!tag=q1}somequery&facet.pivot={!range=r1
query=q1}category,manufacturer
(Steve Molloy, hossman, shalin)
* SOLR-2522: new two argument option for the existing field() function; picks the
min/max value of a
docValues field to use as a ValueSource: "field(field_name,min)" and
"field(field_name,max)" (hossman)
* SOLR-5882: score local parameter for block join query parser {!parent} (Andrey
Kudryavtsev, Mikhail Khludnev)
Bug Fixes
----------------------
* SOLR-7361: Slow loading SolrCores should not hold up all other SolrCores that
have finished loading from serving
requests. (Mark Miller, Timothy Potter, Ramkumar Aiyengar)
* SOLR-7566: Search requests should return the shard name that is down. (Marius
Grama, shalin)
* SOLR-7091: Nested documents with unknown fields don't work in schemaless mode.
(Steve Rowe)
* SOLR-7693: Fix the bin/solr -e cloud example to work if lsof is not installed
on the local machine by waiting for 10 seconds before starting the second node.
(hossman, Timothy Potter)
* SOLR-7689: ReRankQuery rewrite method can change the QueryResultKey causing cache
misses.
(Emad Nashed, Yonik Seeley, Joel Bernstein)
* SOLR-7679: Schema API doesn't take similarity attribute into account when adding
field types. (Marius Grama, Steve Rowe)
* SOLR-7172: addreplica API fails with incorrect error msg "cannot create
collection"
(Erick Erickson)
* SOLR-7705: CoreAdminHandler Unload no longer handles null core name and throws
NPE
instead of a bad request error. (John Call, Edward Ribeiro via shalin)
* SOLR-7529: CoreAdminHandler Reload throws NPE on null core name instead of a bad
request error. (Jellyfrog, Edward Ribeiro via shalin)
* SOLR-7781: JSON Facet API: Terms facet on string/text fields with sub-facets
caused
a bug that resulted in filter cache lookup misses as well as the filter cache
exceeding it's configured size. (yonik)
* SOLR-7765: Hardened the behavior of TokenizerChain when null arguments are used
in constructor.
This prevents NPEs in some code paths. (Konstantin Gribov, hossman)
* SOLR-7842: ZK connection loss or session expiry events should not fire config
directory listeners.
(noble, shalin)
* SOLR-6357: Allow delete documents by doing a score join query. (Mikhail Khludnev,
Timothy Potter)
* SOLR-7818: Fixed distributed stats to be calculated for all the query terms.
Earlier the stats were calculated with
the terms that are present in the last shard of a distributed request. (Varun
Thacker, Anshum Gupta)
* SOLR-7866: VersionInfo caused an unhandled NPE when trying to determine the max
value for the
version field. (Timothy Potter)
Optimizations
----------------------
* SOLR-7660: Avoid redundant 'exists' calls made to ZK while fetching cluster state
updates. (shalin)
* SOLR-7455: Terms facets with the JSON Facet API now defer calculating non-sorting
stats
until a second phase, after the top N facets are found. This improves performance
proportional to the number of non-sorting statistics being calculated in addition
to
the number of buckets and domain documents.
For Example: The facet request {type:terms, field:field1, facet:
{x:"unique(field2)"}}
saw a 7x improvement when field1 and 1M unique terms and field2 had 1000 unique
terms.
(yonik)
Other Changes
----------------------
* SOLR-7645: Remove explicitly defined request handlers from example and test
solrconfig's that are
already defined implicitly, such as /admin/ping, /admin/system, and several
others. (ehatcher)
* SOLR-7678: Switch RTimer to use nanoTime (improves accuracy of QTime, and other
times
returned by Solr handlers) (Ramkumar Aiyengar)
* SOLR-7680: Use POST instead of GET when finding versions for mismatches with
CloudInspectUtil for tests (Ramkumar Aiyengar)
* SOLR-7629: Have RulesTest consider disk space limitations of where the test is
being run (Christine Poerschke via Ramkumar Aiyengar)
* SOLR-7711: Correct initial capacity for the list that holds the default
components for the SearchHandler
(Christine Poerschke via Varun Thacker)
* SOLR-7740: Fix typo bug with TestConfigOverlay (Christine Poerschke via Ramkumar
Aiyengar)
* SOLR-7800: JSON Facet API: the avg() facet function now skips missing values
rather than treating them as a 0 value. The def() function can be used to
treat missing values as 0 if that is desired.
Example: facet:{ mean:"avg(def(myfield,0))" }
* SOLR-7227: Ship Solr with the Web application directory exploded into
server/solr-webapp, solr.war is no longer included in the distribution
bundles. (Timothy Potter, Uwe Schindler)
* SOLR-6625: Enable registering interceptors for the calls made using HttpClient
and make the
request object available at the interceptor context ( Ishan Chattopadhyay,
Gregory Chanan, noble, Anshum Gupta)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release
Bug Fixes
----------------------
* SOLR-7518: New Facet Module should respect shards.tolerant and process all non-
failing shards
instead of throwing an exception. (yonik)
* SOLR-7574: A request with a json content type but no body caused a null pointer
exception (yonik)
* SOLR-7512: SolrOutputFormat creates an invalid solr.xml in the solr home zip for
MapReduceIndexerTool.
(Mark Miller, Adam McElwee)
* SOLR-7638: Fix new (Angular-based) admin UI Cloud pane (Upayavira via ehatcher)
Other Changes
----------------------
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release
* A bug was introduced in Solr 4.10 that caused index time document boosts to
trigger excessive field
boosts in multivalued fields -- the result being that some field norms might be
excessively large.
This bug has now been fixed, but users of document boosts are strongly encouraged
to re-index.
See SOLR-7335 for more details.
* The Slice and Replica classes have been changed to use State enums instead of
string constants
to track the respective stats. Advanced users with client code manipulating
these objects will
need to update their code accordingly. See SOLR-7325 and SOLR-7336 for more
info.
* Solr has internally been upgraded to use Jetty 9. See SOLR-4839 for full details,
but there are
a few key details all Solr users should know when upgrading:
- It is no longer possible to run "java -jar start.jar" from inside the server
directory.
The bin/solr script is the only supported way to run Solr. This is necessary to
support
HTTP and HTTPS modules in Jetty which can be selectively enabled by the
bin/solr scripts.
In case you have a pressing need to run solr the old way, you can run
"java -jar start.jar --module=http" to get the same behavior as before.
- The way SSL support is configured has been changed. Before this release,
the SOLR_SSL_OPTS property configured in solr.in.sh (linux/mac) or solr.in.cmd
(windows)
was used to enable/disable SSL but starting in 5.2.0, new properties named as
SOLR_SSL_KEY_STORE, SOLR_SSL_KEY_STORE_PASSWORD, SOLR_SSL_TRUST_STORE,
SOLR_SSL_TRUST_STORE_PASSWORD, SOLR_SSL_NEED_CLIENT_AUTH and
SOLR_SSL_WANT_CLIENT_AUTH
have been introduced. The bin/solr scripts configure the SOLR_SSL_OPTS property
automatically based on the above new properties.
You should *not* configure the SOLR_SSL_OPTS property directly inside solr.in.
{sh,cmd}.
- Support for SOLR_SSL_PORT property has been removed. Instead use the regular
SOLR_PORT
property or specify the port while invoking the bin/solr script using the "-p"
switch.
- Please refer to the "Enabling SSL" section in the Solr Reference Guide for
complete details.
* Support for pathPrefix has been completely removed from Solr. Since 5.0, Solr no
longer officially
supports being run as a webapp but allowed users to play around with the web.xml
to have a path prefix.
That would no longer be true. See SOLR-7500 for more info.
* SOLR-7376: Return raw XML or JSON (in the appropriate writer) using
DocumentTransformers.
?fl=id,name,json_s:[json],xml_s:[xml] (ryan)
* SOLR-7422: Optional flatter form for the JSON Facet API via a "type" parameter:
top_authors : { type:terms, field:author, limit:5 } is equivalent to
top_authors : { terms : { field:author, limit:5 } }
(yonik)
* SOLR-7176: zkcli script can perfrom the CLUSTERPROP command without a running
Solr cluster
(Hrishikesh Gadre, Per Steffensen, Noble Paul)
* SOLR-7417: JSON Facet API - unique() is now implemented for numeric and date
fields.
(yonik)
* SOLR-7473: Facet Module (Json Facet API) range faceting now supports the
"mincount"
parameter in range facets to supress buckets less than that count. The default
for "mincount" remains 0 for range faceting.
Example: prices:{ type:range, field:price, mincount:1, start:0, end:100, gap:10 }
(yonik)
* SOLR-7477: Multi-select faceting support for the Facet Module via the
"excludeTags"
parameter which disregards any matching tagged filters for that facet. Example:
& q=shoes
& fq={!tag=COLOR}color:blue
& json.facet={ colors:{type:terms, field:color, excludeTags=COLOR} }
(yonik)
* SOLR-7231: DIH-TikaEntityprocessor, create lat-lon field from Metadata
(Tim Allison via Noble Paul)
* SOLR-7377: Solr Streaming Expressions (Dennis Gove, Joel Bernstein, Steven Bower)
* SOLR-7553: Facet Analytics Module: new "hll" function that uses HyperLogLog to
calculate
distributed cardinality. The original "unique" function is still available.
Example: json.facet={ numProducts : "hll(product_id)" }
(yonik)
* SOLR-7546: bin/post (and SimplePostTool in -Dauto=yes mode) now sends rather than
skips files
without a known content type, as "application/octet-stream", provided it still is
in the
allowed filetypes setting. (ehatcher)
* SOLR-7468: Kerberos authenticaion plugin for Solr. This would allow running a
Kerberized Solr.
(Noble Paul, Ishan Chattopadhyaya, Gregory Chanan, Anshum Gupta)
Bug Fixes
----------------------
* SOLR-6709: Fix QueryResponse to deal with the "expanded" section when using the
XMLResponseParser
(Varun Thacker, Joel Bernstein)
* SOLR-7385: The clusterstatus API now returns the config set used to create a
collection
inside a 'configName' key. (Shai Erera, shalin)
* SOLR-7420: Overseer stats are not reset on loss of ZK connection. (Jessica Cheng,
shalin)
* SOLR-7418: Check and raise a SolrException instead of an NPE when an invalid doc
id is sent
to the MLTQParser. (Anshum Gupta)
* SOLR-7443: Implemented range faceting over date fields in the new facet module
(JSON Facet API). (yonik)
* SOLR-7440: DebugComponent does not return the right requestPurpose for pivot
facet refinements.
(shalin)
* SOLR-7408: Listeners set by SolrCores on config directories in ZK could be
removed if collections
are created/deleted in paralle against the same config set. (Shai Erera, Anshum
Gupta)
* SOLR-7450: Fix edge case which could cause `bin/solr stop` to hang forever
(Ramkumar Aiyengar)
* SOLR-7157: initParams must support tags other than appends, defaults and,
invariants (Noble Paul)
* SOLR-7387: Facet Module - distributed search didn't work when sorting terms
facet by min, max, avg, or unique functions. (yonik)
* SOLR-7470: Fix sample data to eliminate file order dependency for successful
indexing, also
fixed SolrCloudExampleTest to help catch this in the future. (hossman)
* SOLR-7494: Facet Module - unique() facet function was wildly inaccurate for high
cardinality
fields. (Andy Crossen, yonik)
* SOLR-7502: start script should not try to create configset for .system collection
(Noble Paul)
* SOLR-7531: config API shows a few keys merged together (Noble Paul)
* SOLR-7542: Schema API: Can't remove single dynamic copy field directive
(Steve Rowe)
* SOLR-7503: Recovery after ZK session expiration should happen in parallel for all
cores
using the thread-pool managed by ZkContainer instead of a single thread.
(Jessica Cheng Mallet, Timothy Potter, shalin, Mark Miller)
* SOLR-7587: Seeding bucket versions from index when the firstSearcher event fires
has a race condition
that leads to an infinite wait on VersionInfo's ReentrantReadWriteLock because
the read-lock acquired
during a commit cannot be upgraded to a write-lock needed to block updates;
solution is to move the
call out of the firstSearcher event path and into the SolrCore constructor.
(Timothy Potter)
* SOLR-7625: Ensure that the max value for seeding version buckets is updated after
recovery even if
the UpdateLog is not replayed. (Timothy Potter)
Optimizations
----------------------
* SOLR-7547: Short circuit SolrDisptachFilter for static content request. Right now
it creates
a new HttpSolrCall object and tries to process it. (Anshum Gupta)
* SOLR-7333: Make the poll queue time a leader uses when distributing updates to
replicas
configurable and use knowledge that a batch is being processed to poll
efficiently.
(Timothy Potter)
* SOLR-7332: Initialize the highest value for all version buckets with the max
value from
the index or recent updates to avoid unnecessary lookups to the index to check
for reordered
updates when processing new documents. (Timothy Potter, yonik)
Other Changes
----------------------
* SOLR-7381: Improve logging by adding node name in MDC in SolrCloud mode and
adding MDC to
all thread pools. A new MDCAwareThreadPoolExecutor is introduced and usages of
Executors#newFixedThreadPool, #newSingleThreadExecutor, #newCachedThreadPool as
well as
ThreadPoolExecutor directly is now forbidden in Solr. MDC keys are now exposed in
thread
names automatically so that a thread dump can give hints on what the thread was
doing.
Uncaught exceptions thrown by tasks in the pool are logged along with submitter's
stack trace.
(shalin)
* SOLR-7471: Stop requiring docValues for interval faceting (Tomás Fernández Löbbe)
* SOLR-7391: Use a time based expiration cache for one off HDFS FileSystem
instances.
(Mark Miller)
* SOLR-7409: When there are multiple dataimport handlers defined, the admin UI
was listing them in a random order. Now they are sorted in a natural order
that handles numbers properly. (Jellyfrog via Shawn Heisey)
* SOLR-7102: bin/solr should activate cloud mode if ZK_HOST is set (Timothy Potter)
* SOLR-6820: Make the number of version buckets used by the UpdateLog configurable
as
increasing beyond the default 256 has been shown to help with high volume
indexing
performance in SolrCloud; helps overcome a limitation where Lucene uses the
request
thread to perform expensive index housekeeping work. (Mark Miller, yonik, Timothy
Potter)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release
* Tika's runtime dependency of 'jhighlight' was removed as the latter was found to
contain some LGPL-only code. Until that's resolved by Tika, you can download the
.jar yourself and place it under contrib/extraction/lib.
New Features
----------------------
* SOLR-6449: Add first class support for Real Time Get in Solrj.
(Anurag Sharma, Steve Davids via shalin)
* SOLR-7005: Spatial 2D heatmap faceting on RPT fields via new facet.heatmap with
PNG and
2D int array formats. (David Smiley)
* SOLR-1945: Add support for child docs in DocumentObjectBinder (Noble Paul, Mark
Miller)
* SOLR-7189: Allow DIH to extract content from embedded documents via Tika.
(Tim Allison via shalin)
* SOLR-7218: lucene/solr query syntax to give any query clause a constant score.
General Form: <clause>^=<constant_score>
Example: (color:blue color:green)^=2.0 text:shoes
(yonik)
* SOLR-7214: New Facet module with a JSON API, facet functions, aggregations, and
analytics.
Any facet type can have sub facets, and facets can be sorted by arbitrary
aggregation functions.
Examples:
json.facet={x:'avg(price)', y:'unique(color)'}
json.facet={count1:{query:"price:[10 TO 20]"}, count2:{query:"color:blue AND
popularity:[0 TO 50]"} }
json.facet={categories:{terms:{field:cat, sort:"x desc", facet:{x:"avg(price)",
y:"sum(price)"}}}}
(yonik)
* SOLR-6141: Schema API: Remove fields, dynamic fields, field types and copy
fields; and replace fields, dynamic fields and field types. (Steve Rowe)
* SOLR-7217: HTTP POST body is auto-detected when the client is curl and the
content
type is form data (curl's default), allowing users to use curl to send
JSON or XML without having to specify the content type. (yonik)
* SOLR-6892: Update processors can now be top-level components and they can be
specified in request to create a new custom update chain (Noble Paul)
* SOLR-5911: Added payload support for term vectors. New "termPayloads" option for
fields
/ types in the schema, and "tv.payloads" param for the term vector component.
(Mike McCandless, David Smiley)
Bug Fixes
----------------------
* SOLR-5890: Delete silently fails if not sent to shard where document was
added (Ishan Chattopadhyaya, Noble Paul)
* SOLR-4464: DIH Processed documents counter resets to zero after first entity is
processed.
(Dave Cook, Shawn Heisey, Aaron Greenspan, Thomas Champagne via shalin)
* SOLR-7209: /update/json/docs carry forward fields from previous records (Noble
Paul)
* SOLR-7195: Fixed a bug where the bin/solr shell script would incorrectly
detect another Solr process listening on the same port number. If the
requested listen port was 8983, it would match on another Solr using port
18983 for any purpose. Also escapes the dot character in all grep commands
looking for start.jar.
(Xu Zhang via Shawn Heisey)
* SOLR-7109: Indexing threads stuck during network partition can put leader into
down state.
(Mark Miller, Anshum Gupta, Ramkumar Aiyengar, yonik, shalin)
* SOLR-7141: RecoveryStrategy: Raise time that we wait for any updates from the
leader before
they saw the recovery state to have finished. (Mark Miller)
* SOLR-7254: Make an invalid negative start/rows throw a HTTP 400 error (Bad
Request) instead
of causing a 500 error. (Ramkumar Aiyengar, Hrishikesh Gadre, yonik)
* SOLR-7293: Fix bug that Solr server does not listen on IPv6 interfaces by
default.
(Uwe Schindler, Sebastian Pesman)
* SOLR-7298: Fix Collections API calls (SolrJ) to not add name parameter when not
needed.
(Shai Erera, Anshum Gupta)
* SOLR-7134: Replication can still cause index corruption. (Mark Miller, shalin,
Mike Drob)
* SOLR-7309: Make bin/solr, bin/post work when Solr installation directory contains
spaces
(Ramkumar Aiyengar, Martijn Koster)
* SOLR-6924: The config API forcefully refreshes all replicas in the collection to
ensure all are
updated (Noble Paul)
* SOLR-7334: Admin UI does not show "Num Docs" and "Deleted Docs". (Erick Erickson,
Timothy Potter)
* SOLR-7338, SOLR-6583: A reloaded core will never register itself as active after
a ZK session expiration
(Mark Miller, Timothy Potter)
* SOLR-7366: Can't index example XML docs into the cloud example using bin/post due
to regression in
ManagedIndexSchema's handling of ResourceLoaderAware objects used by field types
(Steve Rowe, Timothy Potter)
Optimizations
----------------------
* SOLR-7049: Move work done by the LIST Collections API call to the Collections
Handler (Varun Thacker via Anshum Gupta).
* SOLR-7050: realtime get should internally load only fields specified in fl.
(yonik, Noble Paul)
Other Changes
----------------------
* SOLR-7094: Better error reporting of JSON parse issues when indexing docs
(Ishan Chattopadhyaya via Timothy Potter)
* SOLR-7130: Make stale state notification work without failing the requests
(Noble Paul, shalin)
* SOLR-7346: Stored XSS in Admin UI Schema-Browser page and Analysis page (Mei Wang
via Timothy Potter)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release.
NOTE: Solr 5.0 only supports creating and removing SolrCloud collections through
the collections API, unlike previous versions. While not using the
collections API may still work in 5.0, it is unsupported, not recommended,
and the behavior will change in a 5.x release.
* Apache Solr has no support for Lucene/Solr 3.x and earlier indexes anymore.
Be sure to run Lucene's IndexUpgrader on the previous 4.10 version if you might
still have old segments in your index. Alternatively fully optimize your index
with Solr 4.10 to make sure it consists only of one up-to-date index segment.
* The following legacy numeric and date field types, deprecated in Solr 4.8, are no
longer supported: BCDIntField, BCDLongField, BCDStrField, IntField, LongField,
FloatField, DoubleField, SortableIntField, SortableLongField, SortableFloatField,
SortableDoubleField, and DateField. Convert these types in your schema to the
corresponding Trie-based field type and then re-index. See SOLR-5936 for more
information.
* getAnalyzer() in IndexSchema and FieldType that was deprecated in Solr 4.9 has
been removed. Use getIndexAnalyzer() instead. See SOLR-6022 for more
information.
* The spellcheck response format has changed, affecting xml and json clients. In
particular, the "correctlySpelled" and "collations" subsections have been moved
outside
the "suggestions" subsection, and now are directly under "spellcheck".
See SOLR-3029 for more information.
* The OVERSEERSTATUS API returns new key names for operations such as "create"
for "createcollection", "delete" for "removecollection" and "deleteshard" for
"removeshard".
* There was an old spatial syntax to specify a circle using Circle(x,y d=...) which
should be
replaced with simply using {!geofilt} (if you can) or BUFFER(POINT(x y),d).
Likewise a rect syntax
comprised of minX minY maxX maxY that should now be replaced with
ENVELOPE(minX, maxX, maxY, minY).
* ClientUtil deprecated date methods have been removed, use DateUtil instead
New Features
----------------------
* SOLR-5097: Schema API: Add REST support for adding dynamic fields to the schema.
(Steve Rowe)
* SOLR-5098: Schema API: Add REST support for adding field types to the schema.
(Timothy Potter)
* SOLR-5810 : Support for SOLR-5473 in solr admin UI (Timothy Potter, Noble Paul)
* SOLR-6354: stats.field can now be used to generate stats over the numeric results
of arbitrary functions, ie: stats.field={!func}product(price,popularity)
(hossman)
* SOLR-6543: Give HttpSolrClient the ability to send PUT requests (Gregory Chanan)
* SOLR-5986: Don't allow runaway queries from harming Solr cluster health or search
performance (Anshum Gupta, Steve Rowe, Robert Muir)
* SOLR-6476: Create a bulk mode for schema API (Noble Paul, Steve Rowe)
* SOLR-6585: RequestHandlers can optionally handle sub paths as well (Noble Paul)
* SOLR-6617: /update/json/docs path will use fully qualified node names by default
(Noble Paul)
* SOLR-6633: /update/json/docs path can now save the underlying json doc asa string
field
and better support added to the default example (Noble Paul)
* SOLR-6351: Stats can now be nested under pivot values by adding a 'stats' local
param to
facet.pivot which refers to a 'tag' local param in one or more stats.field
params.
(hossman, Vitaliy Zhovtyuk, Steve Molloy)
* SOLR-4799: faster join using join="zipper" aka merge join for nested DIH
EntityProcessors
(Mikhail Khludnev via Noble Paul)
* SOLR-1632: Support Distributed IDF (Andrzej Bialecki, Mark Miller, Yonik Seeley,
Robert Muir, Markus Jelsma, Vitaliy Zhovtyuk, Anshum Gupta)
* SOLR-6770: Add/edit param sets and use them in Requests (Noble Paul)
* SOLR-6435: Add bin/post script to simplify posting content to Solr (Erik Hatcher)
* SOLR-6761: Ability to ignore commit and/or optimize requests from clients when
running in
SolrCloud mode using the IgnoreCommitOptimizeUpdateProcessorFactory. (Timothy
Potter)
* SOLR-6916: Toggle payload support for the default highlighter via hl.payloads.
It's auto
enabled when the index has payloads. (David Smiley)
Bug Fixes
----------------------
* SOLR-6426: SolrZkClient clean can fail due to a race with children nodes. (Mark
Miller)
* SOLR-6507: Fixed several bugs involving stats.field used with local params
(hossman)
* SOLR-6481: CLUSTERSTATUS should check if the node hosting a replica is live when
reporting replica status (Timothy Potter)
* SOLR-6540 Fix NPE from strdist() func when doc value source does not exist in a
doc (hossman)
* SOLR-6307: Atomic update remove does not work for int array or date array
(Anurag Sharma , noble)
* SOLR-6224: Post soft-commit callbacks are called before soft commit actually
happens.
(shalin)
* SOLR-6591: Overseer can use stale cluster state and lose updates for collections
with stateFormat > 1. (shalin)
* SOLR-6763: Shard leader elections should not persist across session expiry
(Alan Woodward, Mark Miller)
* SOLR-6718: Core discovery was walking paths relative to the Jetty working
directory, rather than SOLR_HOME. (Andreas Hubold, Alan Woodward)
* SOLR-6850: AutoAddReplicas makes a call to wait to see live replicas that times
out after 30 milliseconds instead of 30 seconds. (Varun Thacker via Mark Miller)
* SOLR-6874: There is a race around SocketProxy binding to it's port the way we
setup
JettySolrRunner and SocketProxy. (Mark Miller, Timothy Potter)
* SOLR-6643: Fix error reporting & logging of low level JVM Errors that occur when
loading/reloading a SolrCore (hossman)
* SOLR-6839: Direct routing with CloudSolrServer will ignore the Overwrite document
option.
(Mark Miller)
* SOLR-6928: solr.cmd stop works only in english (john.work, Jan Høydahl, Timothy
Potter)
* SOLR-7024: Improved error messages when java is not found by the bin/solr
shell script, particularly when JAVA_HOME has an invalid location.
(Shawn Heisey)
* SOLR-7068: Collapse on numeric field breaks when min/max values are negative.
(Joel Bernstein)
* SOLR-6920: A replicated index can end up corrupted when small files end up with
the same
file name and size. (Varun Thacker, Mark Miller)
Optimizations
----------------------
* SOLR-6666: Dynamic copy fields are considering all dynamic fields, causing
a significant performance impact on indexing documents. (Liram Vardi via Erick
Erickson, Steve Rowe)
Other Changes
----------------------
* SOLR-3029: Changes to spellcheck response format (Nalini Kartha via James Dyer)
* SOLR-6400: SolrCloud tests are not properly testing session expiration. (Mark
Miller)
* LUCENE-5650: Tests can no longer write to CWD. Update log dir is now made
relative
to the instance dir if it is not an absolute path. (Ryan Ernst, Dawid Weiss)
* SOLR-6445: Upgrade Noggit to version 0.6 to support more flexible JSON input
(Noble Paul, Yonik Seeley)
* SOLR-6488, SOLR-6991: Update to Apache Tika 1.7. This adds support for parsing
Outlook PST and
Matlab MAT files. Parsing for NetCDF files was removed because of license issues;
if you need
support for this format, download the parser JAR yourself and add it to
contrib/extraction/lib
folder: http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/
(Uwe Schindler)
* SOLR-6453: Stop throwing an error message from Overseer when node exits (Ramkumar
Aiyengar, Noble Paul)
* SOLR-6550: Provide simple mechanism for passing additional metadata / context
about a server-side
SolrException back to the client-side (Timothy Potter)
* SOLR-6249: Schema API changes return success before all cores are updated; client
application
can provide the optional updateTimeoutSecs parameter to cause the server handling
the
managed schema update to block until all replicas of the same collection have
processed the
update or until the specified timeout is reached (Timothy Potter)
* SOLR-6592: Avoid waiting for the leader to see the down state if that leader is
not live.
(Timothy Potter)
* SOLR-6641: SystemInfoHandler should include the zkHost the node is using (when
running in solrcloud mode)
(Timothy Potter)
* SOLR-6295: Fix child filter query creation to never match parent docs in
SolrExampleTests.
(Varun Thacker, Mikhail Khludnev via shalin)
* SOLR-4792: Stop shipping a .war. (Robert Muir, Ramkumar Aiyengar, Mark Miller)
* SOLR-6773: Remove the multicore example as the DIH and cloud examples
illustrate multicore behavior (hossman, Timothy Potter)
* SOLR-5922: Add support for adding core properties to SolrJ Collection Admin
Request calls.
(Varun Thacker via Anshum Gupta).
* SOLR-6881: Add split.key support for SPLITSHARD via SolrJ (Anshum Gupta)
* SOLR-6883: CLUSTERPROP API switch case does not call break. (Varun Thacker via
shalin)
* SOLR-6885: Add core name to RecoveryThread name. (Christine Poerschke via shalin)
* SOLR-6855: bin/solr -e dih launches, but has some path cruft issues preventing
some of the
imports don't work (Hossman, Timothy Potter)
* SOLR-6448: Add SolrJ support for all current Collection API calls. (Anshum Gupta)
* SOLR-6897: Nuke non-NRT mode from code and configuration. (Hossman, shalin)
* SOLR-6830: Update Woodstox to 4.4.1 and StAX to 3.1.4. (ab)
* SOLR-6918: No need to log exceptions (as warn) generated when creating MBean
stats if
the core is shutting down (Timothy Potter)
* SOLR-6324: Set finite default timeouts for select and update. (Ramkumar Aiyengar
via Mark Miller)
* SOLR-6933: bin/solr should provide a single "create" action that creates a core
or collection depending on whether Solr is running in standalone or cloud mode
(Timothy Potter)
* SOLR-6904: Removed deprecated Circle & rect syntax. See upgrading notes. (David
Smiley)
* SOLR-6943: HdfsDirectoryFactory should fall back to system props for most of it's
config
if it is not found in solrconfig.xml. (Mark Miller, Mike Drob)
* SOLR-6982: bin/solr and SolrCLI should support SSL-related Java System Properties
(Timothy Potter)
* SOLR-6840: Remove support for old-style solr.xml (Erick Erickson, Alan Woodward)
* SOLR-6976: Remove classes and methods deprecated in 4.x (Alan Woodward, Noble
Paul, Chris Hostetter)
* SOLR-7018: bin/solr stop should stop if there is only one node running or
generate
an error message prompting the user to be explicit about which of multiple nodes
to stop using the -p or -all options (Timothy Potter)
* SOLR-5918: ant clean does not remove ZooKeeper data (Varun Thacker, Steve Rowe)
* SOLR-7020: 'bin/solr start' should automatically use an SSL-enabled alternate
jetty
configuration file when in SSL mode, eliminating the need for manual jetty.xml
edits.
(Steve Rowe)
Bug Fixes
----------------------
* SOLR-6426: SolrZkClient clean can fail due to a race with children nodes. (Mark
Miller)
* SOLR-6481: CLUSTERSTATUS should check if the node hosting a replica is live when
reporting replica status (Timothy Potter)
* SOLR-6763: Shard leader elections should not persist across session expiry
(Alan Woodward, Mark Miller)
* SOLR-6850: AutoAddReplicas makes a call to wait to see live replicas that times
out after 30 milliseconds instead of 30 seconds. (Varun Thacker via Mark Miller)
* SOLR-6839: Direct routing with CloudSolrServer will ignore the Overwrite document
option.
(Mark Miller)
* SOLR-6928: solr.cmd stop works only in english (john.work, Jan Høydahl, Timothy
Potter)
Other Changes
----------------------
Bug Fixes
----------------------
* SOLR-6696: bin/solr start script should not enable autoSoftCommit by default
(janhoy)
* SOLR-6323: ReRankingQParserPlugin cleaner paging and fix bug with fuzzy, range
and other queries
that need to be re-written. (Adair Kovac, Joel Bernstein)
* SOLR-6784: BBoxField's 'score' mode should have been optional. (David Smiley)
* SOLR-6510: The collapse QParser would throw a NPE when used on a DocValues field
on
an empty segment/index. (Christine Poerschke, David Smiley)
* SOLR-2927: Solr does not unregister all mbeans upon exception in constructor
causing memory leaks. (tom liu, Sharath Babu, Cyrille Roy, shalin)
* SOLR-6705: Better strategy for dealing with JVM specific options in the start
scripts; remove -XX:+AggressiveOpts and only set -XX:-UseSuperWord for Java
1.7u40
to u51. (Uwe Schindler, janhoy, hossman, Timothy Potter)
* SOLR-6726: better strategy for selecting the JMX RMI port based on SOLR_PORT in
bin/solr
script (Timothy Potter)
* SOLR-6796: distrib.singlePass does not return correct set of fields for multi-fl-
parameter
requests. (Per Steffensen via shalin)
* SOLR-6776: Transaction log was not flushed at the end of update requests with
softCommit
specified, which could lead to data loss if the server were killed immediately
after the
update finished. (Jeffery Yuan via yonik)
Other Changes
----------------------
* SOLR-6653: bin/solr script should return error code >0 when something fails
(janhoy, Timothy Potter)
Bug Fixes
----------------------
* SOLR-6509: Solr start scripts interactive mode doesn't honor -z argument (Timothy
Potter)
* SOLR-6530: Commits under network partitions can put any node in down state.
(Ramkumar Aiyengar, Alan Woodward, Mark Miller, shalin)
* SOLR-6524: Collections left in recovery state after node restart because recovery
sleep time
increases exponentially between retries. (Mark Miller, shalin)
* SOLR-6646: bin/solr start script fails to detect solr on non-default port and
then after
30s tails wrong log file (janhoy)
* SOLR-6647: Bad error message when missing resource from ZK when parsing Schema
(janhoy)
* SOLR-6545: Query field list with wild card on dynamic field fails.
(Burke Webster, Xu Zhang, shalin)
Other Changes
----------------------
* SOLR-6486: solr start script can have a debug flag option; use -a to set
arbitrary options
(Noble Paul, Timothy Potter)
* SOLR-6529: Stop command in the start scripts should only stop the instance that
it had started.
(Varun Thacker, Timothy Potter)
Bug Fixes
----------------------
* SOLR-6425: If using the new global hdfs block cache option, you can end up
reading corrupt files on file name reuse. (Mark Miller, Gregory Chanan)
Other Changes
---------------------
* SOLR-6503: Removed support for parsing netcdf files in Solr Cell because
of license issues. If you need support for this format, download the parser
JAR yourself (version 4.2) and add it to contrib/extraction/lib folder:
http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/
(Uwe Schindler)
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this
release
Versions of Major Components
---------------------
Apache Tika 1.5 (with upgraded Apache POI 3.10.1)
Carrot2 3.9.0
Velocity 1.7 and Velocity Tools 2.0
Apache UIMA 2.3.1
Apache ZooKeeper 3.4.6
* In Solr 3.6, all primitive field types were changed to omit norms by default when
the
schema version is 1.5 or greater (SOLR-3140), but TrieDateField's default was
mistakenly
not changed. As of Solr 4.10, TrieDateField omits norms by default (see SOLR-
6211).
* solr.xml parsing has been improved to better account for the expected data types
of
various options. As part of this fix, additional error checking has also been
added to
provide errors in the event of duplicated options, or unknown option names that
may
indicate a typo. Users who have modified their solr.xml in the past and now
upgrade may
get errors on startup if they have typos or unexpected options specified in their
solr.xml
file. (See SOLR-5746 for more information.)
New Features
----------------------
* SOLR-6183: New spatial BBoxField for indexing rectangles with search support for
most predicates.
It includes extra score relevancy modes in addition to distance:
score=overlapRatio|area|area2D.
(David Smiley, Ryan McKinley)
* SOLR-6232: You can now unload/delete cores that have failed to initialize (Alan
Woodward)
* SOLR-6258: Added onRollback event handler hook to Data Import Handler (DIH).
(ehatcher)
* SOLR-6267: Let user override Interval Faceting key with LocalParams (Tomas
Fernandez_Lobbe
via Erick Erickson)
* SOLR-6283: Add support for Interval Faceting in SolrJ. (Tomás Fernández Löbbe)
* SOLR-2894: Distributed query support for facet.pivot (Dan Cooper, Erik Hatcher,
Chris Russell,
Andrew Muldowney, Brett Lucey, Mark Miller, hossman)
* SOLR-5656: Add autoAddReplicas feature for shared file systems. (Mark Miller,
Gregory Chanan)
* SOLR-5244: Exporting Full Sorted Result Sets (Erik Hatcher, Joel Bernstein)
* SOLR-3617: bin/solr and bin/solr.cmd scripts for starting, stopping, and running
Solr examples
(Timothy Potter)
* SOLR-6233: Provide basic command line tools for checking Solr status and health.
(Timothy Potter)
Bug Fixes
----------------------
* SOLR-6095 : SolrCloud cluster can end up without an overseer with overseer roles
(Noble Paul, Shalin Mangar)
* SOLR-6189: Avoid publishing the state as down if the node is not live when
determining
if a replica should be in leader-initiated recovery. (Timothy Potter)
* SOLR-6197: The MIGRATE collection API doesn't work when legacyCloud=false is set
in cluster properties. (shalin)
* SOLR-6206: The migrate collection API fails on retry if temp collection already
exists.
(shalin)
* SOLR-6072: The 'deletereplica' API should remove the data and instance directory
by default.
(shalin)
* SOLR-6159: A ZooKeeper session expiry during setup can keep LeaderElector from
joining elections.
(Steven Bower, shalin)
* SOLR-6223: SearchComponents may throw NPE when using shards.tolerant and there is
a failure
in the 'GET_FIELDS/GET_HIGHLIGHTS/GET_DEBUG' phase. (Tomás Fernández Löbbe via
shalin)
* SOLR-6229: Make SuggestComponent return 400 instead of 500 for bad dictionary
selected in request.
(Tomás Fernández Löbbe via shalin)
* SOLR-5746: Bugs in solr.xml parsing have been fixed to more correctly deal with
the various
datatypes of options people can specify, additional error handling of
duplicated/unidentified
options has also been added. (Maciej Zasada, hossman)
* SOLR-6264: Distributed commit and optimize are executed serially across all
replicas. (Mark Miller, Timothy Potter)
* SOLR-6347: DELETEREPLICA throws a NPE while removing the last Replica in a Custom
sharded collection. (Anshum Gupta)
* SOLR-6387: Add better error messages throughout Solr and supply a work around for
Java bug #8047340 to SystemInfoHandler: On Turkish default locale, some JVMs fail
to fork on MacOSX, BSD, AIX, and Solaris platforms. (hossman, Uwe Schindler)
* SOLR-6314: Facet counts duplicated in the response if specified more than once on
the request.
(Vamsee Yarlagadda, Erick Erickson)
* SOLR-6268: HdfsUpdateLog has a race condition that can expose a closed HDFS
FileSystem instance and should
close its FileSystem instance if either inherited close method is called. (Mark
Miller)
* SOLR-6089: When using the HDFS block cache, when a file is deleted, its
underlying data entries in the
block cache are not removed, which is a problem with the global block cache
option.
(Mark Miller, Patrick Hunt)
Optimizations
---------------------
Other Changes
---------------------
* SOLR-6120: On Windows, when the war is not extracted, the zkcli.bat script
will print a helpful message indicating that the war must be unzipped instead
of a java error about a missing class. (shalin, Shawn Heisey)
* SOLR-6179: Better strategy for handling empty managed data to avoid spurious
warning messages in the logs. (Timothy Potter)
* SOLR-2168: Added support for facet.missing in /browse field and pivot faceting.
(ehatcher)
Other Changes
---------------------
* SOLR-6503: Removed support for parsing netcdf files in Solr Cell because
of license issues. If you need support for this format, download the parser
JAR yourself (version 4.2) and add it to contrib/extraction/lib folder:
http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/
(Uwe Schindler)
New Features
----------------------
Bug Fixes
----------------------
* SOLR-6104: The 'addreplica' Collection API does not support 'async' parameter.
(shalin)
* SOLR-6149: Specifying the query value without any index value does not work in
Analysis browser. (Aman Tandon, shalin)
* SOLR-6164: Copy Fields Schema additions are not distributed to other nodes.
(Gregory Chanan via Steve Rowe)
* SOLR-6182: Data stored by the RestManager could not be reloaded after core
restart, causing
the core to fail to load; cast the data loaded from storage to the correct data
type.
(Timothy Potter)
Other Changes
---------------------
* SOLR-3671: Fix DIHWriter interface usage so users may implement writers that
output
documents to a location external to Solr (ex. a NoSql db). (Roman Chyla via James
Dyer)
* SOLR-5340: Add support for named snapshots (Varun Thacker via Noble Paul)
* SOLR-5495: Recovery strategy for leader partitioned from replica case. Hardening
recovery scenarios after the leader receives an error trying to forward an
update request to a replica. (Timothy Potter)
* SOLR-6026: REQUESTSTATUS Collection API now also checks for submitted tasks which
are
yet to begin execution.
* SOLR-6128: Removed deprecated analysis factories and fieldTypes from the example
schema.xml (hossman)
Optimizations
----------------------
Build
---------------------
* SOLR-6006: Separate test and compile scope dependencies in the Solrj and
Solr contrib ivy.xml files, so that the derived Maven dependencies get
filled out properly in the corresponding POMs. (Steven Scott, Steve Rowe)
Bug Fixes
----------------------
* SOLR-5993: ZkController can warn about shard leader conflict even after the
conflict
is resolved. (Gregory Chanan via shalin)
* <fields> and <types> tags have been deprecated. There is no longer any reason to
keep them in the schema file, they may be safely removed. This allows intermixing
of
<fieldType>, <field> and <copyField> definitions if desired. Currently, these
tags
are supported so either style may be implemented. TBD is whether they'll be
deprecated formally for 5.0
System Requirements
----------------------
New Features
----------------------
* SOLR-5714: You can now use one pool of memory for for the HDFS block cache
that all collections share. (Mark Miller, Gregory Chanan)
* SOLR-1604: Wildcards, ORs etc inside Phrase Queries. (Ahmet Arslan via Erick
Erickson)
* SOLR-5749: A new Overseer status collection API exposes overseer queue sizes,
timing
statistics, success and error counts and last N failures per operation. (shalin)
* SOLR-5466: A new List collections and cluster status API which clients can use
to read collection and shard information instead of reading data directly from
ZooKeeper.
(Dave Seltzer, Varun Thacker, Vitaliy Zhovtyuk, Erick Erickson, shalin)
Bug Fixes
----------------------
* SOLR-5858, SOLR-4812: edismax and dismax query parsers can be used for parsing
highlight queries. (Alan Woodward, Tien Nguyen Manh)
* SOLR-5897: Upgraded to jQuery 1.7.2, Solr was previously using 1.4.3, the file
was
mistakenly named 1.7.2 (steffkes)
Optimizations
----------------------
* SOLR-1880: Distributed Search skips GET_FIELDS stage if EXECUTE_QUERY
stage gets all fields. Requests with fl=id or fl=id,score are now single-pass.
(Shawn Smith, Vitaliy Zhovtyuk, shalin)
* SOLR-5783: Requests to open a new searcher will now reuse the current registered
searcher (w/o additional warming) if possible in situations where the underlying
index has not changed. This reduces overhead in situations such as deletes that
do not modify the index, and/or redundant commits. (hossman)
* SOLR-5884: When recovery is cancelled, any call to the leader to wait to see
the replica in the right state for recovery should be aborted. (Mark Miller)
Other Changes
---------------------
* SOLR-5764: Fix recently added tests to not use absolute paths to load test-files,
use SolrTestCaseJ4.getFile() and getResource() instead; fix morphlines/map-reduce
to not duplicate test resources and fix dependencies among them.
(Uwe Schindler)
* SOLR-5936: Deprecate non-Trie-based numeric & date field types. (Steve Rowe)
Bug Fixes
----------------------
Bug Fixes
----------------------
* SOLR-5782: The full MapReduceIndexer help text does not display when using --
help.
(Mark Miller, Wolfgang Hoschek)
* SOLR-5818: distrib search with custom comparator does not quite work correctly
(Ryan Ernst)
* SOLR-5761: HttpSolrServer has a few fields that can be set via setters but
are not volatile. (Mark Miller, Gregory Chanan)
* SOLR-5907: The hdfs write cache can cause a reader to see a corrupted state.
It now defaults to off, and if you were using solr.hdfs.blockcache.write.enabled
explicitly, you should set it to false.
(Mark Miller)
* SOLR-5811: The Overseer will retry work items until success, which is a serious
problem if you hit a bad work item. (Mark Miller)
* SOLR-5796: Increase how long we are willing to wait for a core to see the ZK
advertised leader in its local state. (Timothy Potter, Mark Miller)
* SOLR-5834: Overseer threads are only being interrupted and not closed.
(hossman, Mark Miller)
Other Changes
---------------------
* SOLR-5796: Make how long we are willing to wait for a core to see the ZK
advertised leader in its local state configurable.
(Timothy Potter via Mark Miller)
New Features
----------------------
* SOLR-5441: Expose number of transaction log files and their size via JMX.
(Rafał Kuć via shalin)
* SOLR-5492: Return the replica that actually served the query in shards.info
response. (shalin)
* SOLR-5023: Add support for deleteInstanceDir to be passed from SolrJ for Core
Unload action. (Lyubov Romanchuk, shalin)
* SOLR-5581: Give ZkCLI the ability to get files. (Gregory Chanan via Mark Miller)
* SOLR-5463: new 'cursorMark' request param for deep paging of sorted result sets
(sarowe, hossman)
* SOLR-1301: Add a Solr contrib that allows for building Solr indexes via
Hadoop's MapReduce. (Matt Revelle, Alexander Kanarsky, Steve Rowe,
Mark Miller, Greg Bowyer, Jason Rutherglen, Kris Jirapinyo, Jason Venner ,
Andrzej Bialecki, Patrick Hunt, Wolfgang Hoschek, Roman Shaposhnik,
Eric Wong)
* LUCENE-5395: Upgrade to Spatial4j 0.4. Various new options are now exposed
automatically for an RPT field type. See Spatial4j CHANGES & javadocs.
https://github.com/spatial4j/spatial4j/blob/master/CHANGES.md (David Smiley)
* SOLR-5530: Added a NoOpResponseParser for SolrJ which puts the entire raw
response into an entry in the NamedList.
(Upayavira, Vitaliy Zhovtyuk via shalin)
* SOLR-3854: SSL support for SolrCloud. (Sami Siren, hossman, Steve Davids,
Alexey Serba, Mark Miller)
Bug Fixes
----------------------
* SOLR-5481: SolrCmdDistributor should not let the http client do its own
retries. (Mark Miller)
* SOLR-5515: NPE when getting stats on date field with empty result on
SolrCloud. (Alexander Sagen, shalin)
* SOLR-5650: When a replica becomes a leader, only peer sync with other replicas
that last published an ACTIVE state. (Mark Miller)
* SOLR-5666: Using the hdfs write cache can result in appearance of corrupted
index. (Mark Miller)
* SOLR-5667: Performance problem when not using hdfs block cache. (Mark Miller)
* SOLR-5526: Fixed NPE that could arise when explicitly configuring some built
in QParserPlugins (Nikolay Khitrin, Vitaliy Zhovtyuk, hossman)
* SOLR-5593: Replicas should accept the last updates from a leader that has just
lost its connection to ZooKeeper. (Christine Poerschke via Mark Miller)
* SOLR-5691: Sharing non thread safe WeakHashMap across thread can cause
problems. (Bojan Smid, Mark Miller)
* SOLR-5693: Running on HDFS does work correctly with NRT search. (Mark Miller)
* SOLR-5644: SplitShard does not handle not finding a shard leader well.
(Mark Miller, Anshum Gupta via shalin)
* SOLR-5704: coreRootDirectory was not respected when creating new cores
via CoreAdminHandler (Jesse Sipprell, Alan Woodward)
* SOLR-5739: Sub-shards created by shard splitting have their update log set
to buffering mode on restarts. (Günther Ruck, shalin)
Optimizations
----------------------
* SOLR-5189: Solr 4.x Web UI Log Viewer does not display 'date' column from
logs (steffkes)
* SOLR-5214: Reduce memory usage for shard splitting by merging segments one
at a time. (Christine Poerschke via shalin)
Other Changes
---------------------
* SOLR-5533: Improve out of the box support for running Solr on hdfs with
SolrCloud. (Mark Miller)
* SOLR-5257: Improved error/warn messages when Update XML contains unexpected XML
nodes
(Vitaliy Zhovtyuk, hossman)
Bug Fixes
----------------------
* SOLR-5442: Python client cannot parse proxied response when served by Tomcat.
(Patrick Hunt, Gregory Chanan, Vamsee Yarlagadda, Romain Rigaux, Mark Miller)
* SOLR-5445: Proxied responses should propagate all headers rather than the
first one for each key. (Patrick Hunt, Mark Miller)
* SOLR-5479: SolrCmdDistributor retry logic stops if a leader for the request
cannot be found in 1 second. (Mark Miller)
* SOLR-5577: Likely ZooKeeper expiration should not slow down updates a given
amount, but instead cut off updates after a given time.
(Mark Miller, Christine Poerschke, Ramkumar Aiyengar)
* SOLR-5580: NPE when creating a core with both explicit shard and coreNodeName.
(YouPeng Yang, Mark Miller)
* SOLR-5552: Leader recovery process can select the wrong leader if all replicas
for a shard are down and trying to recover as well as lose updates that should
have been recovered. (Timothy Potter, Mark Miller)
* SOLR-5569 A replica should not try and recover from a leader until it has
published that it is ACTIVE. (Mark Miller)
* SOLR-5568 A SolrCore cannot decide to be the leader just because the cluster
state says no other SolrCore's are active. (Mark Miller)
* SOLR-4709: The core reload after replication if config files have changed
can fail due to a race condition. (Mark Miller, Hossman)
* SOLR-5618: Fix false cache hits in queryResultCache when hashCodes are equal
and duplicate filter queries exist in one of the requests (hossman)
* SOLR-5645: A SolrCore reload via the CoreContainer will try and register in
zk again with the new SolrCore. (Mark Miller)
Optimizations
----------------------
New Features
----------------------
* SOLR-5226: Add Lucene index heap usage to the Solr admin UI.
(Areek Zillur via Robert Muir)
* SOLR-5324: Make sub shard replica recovery and shard state switch asynchronous.
(Yago Riveiro, shalin)
* SOLR-5353: Enhance CoreAdmin api to split a route key's documents from an index
and leave behind all other documents. (shalin)
* SOLR-5084: new field type EnumField. (Elran Dvir via Erick Erickson)
Bug Fixes
----------------------
* SOLR-5363: Solr doesn't start up properly with Log4J2 (Petar Tahchiev via Alan
Woodward)
* SOLR-5418: Background merge after field removed from solr.xml causes error.
(Reported on user's list, Robert M's patch via Erick Erickson)
* SOLR-5318: Creating a core via the admin API doesn't respect transient property
(Olivier Soyez via Erick Erickson)
* SOLR-5388: Creating a new core via the HTTP API that results in a transient being
unloaded results in a " Too many close [count:-1]" error.
(Olivier Soyez via Erick Erickson)
Optimizations
----------------------
* SOLR-5223: SolrCloud should use the JavaBin binary format for communication by
default.
(Mark Miller)
Security
----------------------
Other Changes
----------------------
* SOLR-5319: Remove unused and incorrect router name from Collection ZK nodes.
(Jessica Cheng via shalin)
Bug Fixes
----------------------
* SOLR-4590: Collections API should return a nice error when not in SolrCloud mode.
(Anshum Gupta, Mark Miller)
* SOLR-5255: Remove unnecessary call to fetch and watch live nodes in ZkStateReader
cluster watcher. (Jessica Cheng via shalin)
* SOLR-5314: Shard split action should use soft commits instead of hard commits
to make sub shard data visible. (Kalle Aaltonen, shalin)
* SOLR-5327: SOLR-4915, "The root cause should be returned to the user when a
SolrCore create
call fails", was reverted. (Mark Miller)
* SOLR-5325: ZooKeeper connection loss can cause the Overseer to stop processing
commands. (Christine Poerschke, Mark Miller, Jessica Cheng)
Other Changes
----------------------
* CloudSolrServer can now use multiple threads to add documents by default. This is
a
small change in runtime semantics when using the bulk add method - you will still
end up with the same exception on a failure, but some documents beyond the one
that
failed may have made it in. To get the old, single threaded behavior, set
parallel updates
to false on the CloudSolrServer instance.
New Features
----------------------
* SOLR-2345: Enhanced geodist() to work with an RPT field, provided that the
field is referenced via 'sfield' and the query point is constant.
(David Smiley)
* SOLR-4222: create custom sharded collection via collections API (Noble Paul)
* SOLR-4816: CloudSolrServer can now route updates locally and no longer relies on
inter-node
update forwarding. (Joel Bernstein, Shikhar Bhushan, Stephen Riesenberg, Mark
Miller)
Bug Fixes
----------------------
* SOLR-5121: zkcli usage help for makepath doesn't match actual command.
(Daniel Collins via Mark Miller)
* SOLR-5119: Managed schema problems after adding fields via Schema Rest API.
(Nils Kübler, Steve Rowe)
* SOLR-4764: When using NRT, just init the first reader from IndexWriter.
(Robert Muir, Mark Miller)
* SOLR-5171: SOLR Admin gui works in IE9, breaks in IE10. (Joseph L Howard via
steffkes)
* SOLR-4817 Solr should not fall back to the back compat built in solr.xml in
SolrCloud
mode (Erick Erickson)
* SOLR-5112: Show full message in Admin UI Logging View (Matthew Keeney via
steffkes)
* SOLR-5231: Fixed a bug with the behavior of BoolField that caused documents w/o
a value for the field to act as if the value were true in functions if no other
documents in the same index segment had a value of true.
(Robert Muir, hossman, yonik)
* SOLR-5233: The "deleteshard" collections API doesn't wait for cluster state to
update,
can fail if some nodes of the deleted shard were down and had incorrect logging.
(Christine Poerschke, shalin)
* SOLR-5150: HdfsIndexInput may not fully read requested bytes. (Mark Miller,
Patrick Hunt)
* SOLR-5240: All solr cores will now be loaded in parallel (as opposed to a fixed
number)
in zookeeper mode to avoid deadlocks due to replicas waiting for other replicas
to come up. (yonik)
* SOLR-5291: Solrj does not propagate the root cause to the user for many errors.
(Mark Miller)
Optimizations
----------------------
* SOLR-5057: QueryResultCache should not related with the order of fq's list
(Feihong Huang via Erick Erickson)
Other Changes
----------------------
* SOLR-4914, SOLR-5162: Factor out core list persistence and discovery into a
new CoresLocator interface. (Alan Woodward, Shawn Heisey)
* LUCENE-5063: ByteField and ShortField have been deprecated and will be removed
in 5.0. If you are still using these field types, you should migrate your
fields to TrieIntField.
Detailed Change List
----------------------
New Features
----------------------
* SOLR-3251: Dynamically add fields to schema. (Steve Rowe, Robert Muir, yonik)
* SOLR-4234: Add support for binary files in ZooKeeper. (Eric Pugh via Mark Miller)
* SOLR-4228: SolrJ's SolrPing object has new methods for ping, enable, and
disable. (Shawn Heisey, hossman, Steve Rowe)
* SOLR-4916: Add support to write and read Solr index files and transaction log
files to and from HDFS. (phunt, Mark Miller, Gregory Chanan)
* SOLR-4972: Add PUT command to ZkCli tool. (Roman Shaposhnik via Mark Miller)
* SOLR-4655: Add option to have Overseer assign generic node names so that
new addresses can host shards without naming confusion. (Mark Miller, Anshum
Gupta)
* SOLR-5003: CSV Update Handler supports optionally adding the line number/row id
to
a document (gsingers)
* SOLR-5010: Add support for creating copy fields to the Schema REST API (gsingers)
* SOLR-4943: Add a new system wide info admin handler that exposes the system info
that could previously only be retrieved using a SolrCore. (Mark Miller)
Bug Fixes
----------------------
* SOLR-4803: Fixed core discovery mode (ie: new style solr.xml) to treat
'collection1' as the default core name. (hossman)
* SOLR-4790: Throw an error if a core has the same name as another core, both old
and
new style solr.xml
* SOLR-4891: JsonLoader should preserve field value types from the JSON content
stream.
(Steve Rowe)
* SOLR-4805: SolrCore#reload should not call preRegister and publish a DOWN state
to
ZooKeeper. (Mark Miller, Jared Rodriguez)
* SOLR-4915: The root cause should be returned to the user when a SolrCore create
call fails.
(Mark Miller)
* SOLR-4925 : Collection create throws NPE when 'numShards' param is missing (Noble
Paul)
* SOLR-4923: Commits to non leaders as part of a request that also contain updates
can execute out of order. (hossman, Ricardo Merizalde, Mark Miller)
* SOLR-4932: persisting solr.xml saves some parameters it shouldn't when they
weren't
defined in the original. Benign since the default values are saved, but still
incorrect.
(Erick Erickson, thanks Shawn Heisey for helping test!)
* SOLR-4926: Fixed rare replication bug that normally only manifested when
using compound file format. (yonik, Mark Miller)
* SOLR-4974: Outgrowth of SOLR-4960 that includes transient cores and pending cores
(Erick Erickson)
* SOLR-4978: Time is stripped from datetime column when imported into Solr date
field
if convertType=true. (Bill Au, shalin)
* SOLR-5018: The Overseer should avoid publishing the state for collections that do
not
exist under the /collections zk node. (Mark Miller)
* SOLR-4997: The splitshard api doesn't call commit on new sub shards before
switching shard states. Multiple bugs related to sub shard recovery and
replication are also fixed. (shalin)
* SOLR-5037: The CSV loader now accepts field names that are not in the schema.
(gsingers, ehatcher, Steve Rowe)
* SOLR-4791: solr.xml sharedLib does not work in 4.3.0 (Ryan Ernst, Jan Høydahl via
Erick Erickson)
Optimizations
----------------------
* SOLR-4955: Admin UI - Show address bar on top for Schema + Config (steffkes)
* SOLR-5012: optimize search with filter when filterCache is null (Robert Muir)
Other Changes
----------------------
* SOLR-4749: Clean up and refactor CoreContainer code around solr.xml and SolrCore
management. (Mark Miller)
* SOLR-4547: Move logging of filenames on commit from INFO to DEBUG.
(Shawn Heisey, hossman)
* SOLR-4757: Change the example to use the new solr.xml format and core
discovery by directory structure. (Mark Miller)
* SOLR-4448: Allow the solr internal load balancer to be more easily pluggable.
(Philip Hoy via Robert Muir)
Bug Fixes
----------------------
* SOLR-4795: Sub shard leader should not accept any updates from parent after
it goes active (shalin)
* SOLR-4798: shard splitting does not respect the router for the collection
when executing the index split. One effect of this is that documents
may be placed in the wrong shard when the default compositeId router
is used in conjunction with IDs containing "!". (yonik)
* SOLR-4797: Shard splitting creates sub shards which have the wrong hash
range in cluster state. This happens when numShards is not a power of two
and router is compositeId. (shalin)
* SOLR-4806: Shard splitting does not abort if WaitForState times out (shalin)
* SOLR-4807: The zkcli script now works with log4j. The zkcli.bat script
was broken on Windows in 4.3.0, now it works. (Shawn Heisey)
* SOLR-4829: Fix transaction log leaks (a failure to clean up some old logs)
on a shard leader, or when unexpected exceptions are thrown during log
recovery. (Steven Bower, Mark Miller, yonik)
* SOLR-4752: There are some minor bugs in the Collections API parameter
validation. (Mark Miller)
* SOLR-4796: zkcli.sh should honor JAVA_HOME (Roman Shaposhnik via Mark Miller)
* SOLR-4868: Setting the log level for the log4j root category results in
adding a new category, the empty string. (Shawn Heisey)
Other Changes
----------------------
* In the schema REST API, the output path for copyFields and dynamicFields
has been changed from all lowercase "copyfields" and "dynamicfields" to
camelCase "copyFields" and "dynamicFields", respectively, to align with all
other schema REST API outputs, which use camelCase. The URL format remains
the same: all resource names are lowercase. See SOLR-4623 for details.
* Slf4j/logging jars are no longer included in the Solr webapp. All logging
jars are now in example/lib/ext. Changing logging impls is now as easy as
updating the jars in this folder with those necessary for the logging impl
you would like. If you are using another webapp container, these jars will
need to go in the corresponding location for that container.
In conjunction, the dist-excl-slf4j and dist-war-excl-slf4 build targets
have been removed since they are redundant. See the Slf4j documentation,
SOLR-3706, and SOLR-4651 for more details.
New Features
----------------------
* SOLR-4623: Provide REST API read access to all elements of the live schema.
Add a REST API request to return the entire live schema, in JSON, XML, and
schema.xml formats. Move REST API methods from package org.apache.solr.rest
to org.apache.solr.rest.schema, and rename base functionality REST API
classes to remove the current schema focus, to prepare for other non-schema
REST APIs. Change output path for copyFields and dynamicFields from
"copyfields" and "dynamicfields" (all lowercase) to "copyFields" and
"dynamicFields", respectively, to align with all other REST API outputs, which
use camelCase.
(Steve Rowe)
* SOLR-4658: In preparation for REST API requests that can modify the schema,
a "managed schema" is introduced.
Add '<schemaFactory class="ManagedSchemaFactory" mutable="true"/>' to
solrconfig.xml
in order to use it, and to enable schema modifications via REST API requests.
(Steve Rowe, Robert Muir)
Bug Fixes
----------------------
* SOLR-4634: Fix scripting engine tests to work with Java 8's "Nashorn" Javascript
implementation. (Uwe Schindler)
* SOLR-4405: Admin UI - admin-extra files are not rendered into the core-menu
(steffkes)
* SOLR-4650: copyField doesn't work with source globs that don't match any
explicit or dynamic fields. This regression was introduced in Solr 4.2.
(Daniel Collins, Steve Rowe)
* SOLR-4652: Fix broken behavior with shared libraries in resource loader for
solr.xml plugins. (Ryan Ernst, Robert Muir, Uwe Schindler)
* SOLR-4699: The System admin handler should not assume a file system based data
directory
location. (Mark Miller)
* SOLR-4695: Fix core admin SPLIT action to be useful with non-cloud setups
(shalin)
* SOLR-4702: Fix example /browse "Did you mean?" suggestion feature. (ehatcher,
Mark Bennett)
* SOLR-4710: You cannot delete a collection fully from ZooKeeper unless all nodes
are up and
functioning correctly. (Mark Miller)
* SOLR-4705: Fixed bug causing NPE when querying a single replica in SolrCloud
using the shards param (Raintung Li, hossman)
Optimizations
----------------------
Other Changes
----------------------
* SOLR-4607: Use noggit 0.5 release jar rather than a forked copy. (Yonik Seeley,
Robert Muir)
* SOLR-4730: Make the wiki link more prominent in the release documentation.
(Uri Laserson via Robert Muir)
Bug Fixes
----------------------
* SOLR-4475: Fix various places that still assume File based paths even when
not using a file based DirectoryFactory. (Mark Miller)
* SOLR-4585: The Collections API validates numShards with < 0 but should use
<= 0. (Mark Miller)
* SOLR-4598: The Core Admin unload command's option 'deleteDataDir', should use
the DirectoryFactory API to remove the data dir. (Mark Miller)
* SOLR-4601: A Collection that is only partially created and then deleted will
leave pre allocated shard information in ZooKeeper. (Mark Miller)
* SOLR-4609: The Collections API should only send the reload command to ACTIVE
cores. (Mark Miller)
* SOLR-4318: NPE encountered with querying with wildcards on a field that uses
the DefaultAnalyzer (i.e. no analysis chain defined). (Erick Erickson)
* SOLR-4589: Fixed CPU spikes and poor performance in lazy field loading
of multivalued fields. (hossman)
* SOLR-4608: Update Log replay and PeerSync replay should use the default
processor chain to update the index. (Ludovic Boutros, yonik)
* SOLR-4625: The solr (lucene syntax) query parser lost top-level boost
values and top-level phrase slops on queries produced by nested
sub-parsers. (yonik)
* SOLR-4637: Replication can sometimes wait until shutdown or core unload until
removing some tmp directories. (Mark Miller)
Optimizations
----------------------
Other Changes
----------------------
New Features
----------------------
* SOLR-4488: Return slave replication details for a master if the master has
also acted like a slave. (Mark Miller)
* SOLR-4498: Add list command to ZkCLI that prints out the contents of
ZooKeeper. (Roman Shaposhnik via Mark Miller)
* SOLR-4210: Requests to a Collection that does not exist on the receiving node
should be proxied to a suitable node. (Mark Miller, Po Rui, yonik)
* SOLR-4503: Add REST API methods, via Restlet integration, for reading schema
elements, at /schema/fields/, /schema/dynamicfields/, /schema/fieldtypes/,
and /schema/copyfields/. (Steve Rowe)
Bug Fixes
----------------------
* SOLR-4321: Collections API will sometimes use a node more than once, even
when more unused nodes are available.
(Eric Falcao, Brett Hoerner, Mark Miller)
* SOLR-4225: Term info page under schema browser shows incorrect count of terms
(steffkes)
* SOLR-3926: Solr should support better way of finding active sorts (Eirik Lygre
via
Erick Erickson)
* SOLR-4380: Replicate after startup option would not replicate until the
IndexWriter was lazily opened. (Mark Miller, Gregg Donovan)
* SOLR-3655: A restarted node can briefly appear live and active before it really
is in some cases. (Mark Miller)
* SOLR-4459: The Replication 'index move' rather than copy optimization doesn't
kick in when using NRTCachingDirectory or the rate limiting feature.
(Mark Miller)
* SOLR-4469: A new IndexWriter must be opened on SolrCore reload when the index
directory has changed and the previous SolrCore's state should not be
propagated. (Mark Miller, Gregg Donovan)
* SOLR-4507: The Cloud tab does not show up in the Admin UI if you
set zkHost in solr.xml. (Alfonso Presa, Mark Miller)
Optimizations
----------------------
* SOLR-4284: Admin UI - make core list scrollable separate from the rest of
the UI (steffkes)
* SOLR-4521: Stop using the 'force' option for recovery replication. This
will keep some less common unnecessary replications from happening.
(Mark Miller, Simon Scofield)
Other Changes
----------------------
* SOLR-4259: Carrot2 dependency should be declared on the mini version, not the
core.
(Dawid Weiss).
* SOLR-4394: Tests and example configs demonstrating SSL with both server
and client certs (hossman)
* SOLR-3060: SurroundQParserPlugin highlighting tests
(Ahmet Arslan via hossman)
* SOLR-3843: Include lucene codecs jar and enable per-field postings and docvalues
support in the schema.xml (Robert Muir, Steve Rowe)
* SOLR-4511: Add new test for 'repeater' replication node. (Mark Miller)
Custom java parsing plugins need to migrate from throwing the internal
ParseException to throwing SyntaxError.
New Features
----------------------
* SOLR-2255: Enhanced pivot faceting to use local-params in the same way that
regular field value faceting can. This means support for excluding a filter
query, using a different output key, and specifying 'threads' to do
facet.method=fcs concurrently. PivotFacetHelper now extends SimpleFacet and
the getFacetImplementation() extension hook was removed. (dsmiley)
* SOLR-3897: A highlighter parameter "hl.preserveMulti" to return all of the
values of a multiValued field in their original order when highlighting.
(Joel Bernstein via yonik)
* SOLR-3911: Make Directory and DirectoryFactory first class so that the majority
of Solr's features work with any custom implementations. (Mark Miller)
Additional Work:
- SOLR-4032: Files larger than an internal buffer size fail to replicate.
(Mark Miller, Markus Jelsma)
- SOLR-4033: Consistently use the solrconfig.xml lockType everywhere.
(Mark Miller, Markus Jelsma)
- SOLR-4144: Replication using too much RAM. (yonik, Markus Jelsma)
- SOLR-4187: NPE on Directory release (Mark Miller, Markus Jelsma)
* SOLR-4088: New and improved auto host detection strategy for SolrCloud.
(Raintung Li via Mark Miller)
* SOLR-4101: Add support for storing term offsets in the index via a
'storeOffsetsWithPositions' flag on field definitions in the schema.
(Tom Winch, Alan Woodward)
* SOLR-4114: Allow creating more than one shard per instance with the
Collection API. (Per Steffensen, Mark Miller)
* SOLR-4124: You should be able to set the update log directory with the
CoreAdmin API the same way as the data directory. (Mark Miller)
* SOLR-4028: When using ZK chroot, it would be nice if Solr would create the
initial path when it doesn't exist. (Tomás Fernández Löbbe via Mark Miller)
* SOLR-4230: The new Solr 4 spatial fields now work with the {!geofilt} and
{!bbox} query parsers. The score local-param works too. (David Smiley)
* SOLR-4255: The new Solr 4 spatial fields now have a 'filter' boolean local-param
that can be set to false to not filter. It's useful when there is already a
spatial
filter query but you also need to sort or boost by distance. (David Smiley)
* SOLR-4265, SOLR-4283: Solr now parses request parameters (in URL or sent with
POST
using content-type application/x-www-form-urlencoded) in its dispatcher code. It
no
longer relies on special configuration settings in Tomcat or other web containers
to enable UTF-8 encoding, which is mandatory for correct Solr behaviour. Query
strings passed in via the URL need to be properly-%-escaped, UTF-8 encoded
bytes, otherwise Solr refuses to handle the request. The maximum length of
x-www-form-urlencoded POST parameters can now be configured through the
requestDispatcher/requestParsers/@formdataUploadLimitInKB setting in
solrconfig.xml (defaults to 2 MiB). Solr now works out of the box with
e.g. Tomcat, JBoss,... (Uwe Schindler, Dawid Weiss, Alex Rocher)
Example:
The following two documents will be indexed to the same shard
since they share the same domain "customerB!".
<code>
{"id" : "customerB!doc1" [...] }
{"id" : "customerB!doc2" [...] }
</code>
At query time, one can specify a "shard.keys" parameter that lists what
shards the query should cover.
http://.../query?q=my_query&shard.keys=customerB!
Optimizations
----------------------
* SOLR-4199: When doing zk retries due to connection loss, rather than just
retrying for 2 minutes, retry in proportion to the session timeout.
(Mark Miller)
Bug Fixes
----------------------
* SOLR-3939: Consider a sync attempt from leader to replica that fails due
to 404 a success. (Mark Miller, Joel Bernstein)
* SOLR-3940: Rejoining the leader election incorrectly triggers the code path
for a fresh cluster start rather than fail over. (Mark Miller)
* SOLR-3920: Fix server list caching in CloudSolrServer when using more than one
collection list with the same instance. (Grzegorz Sobczyk, Mark Miller)
* SOLR-3995: Recovery may never finish on SolrCore shutdown if the last reference
to
a SolrCore is closed by the recovery process. (Mark Miller)
* SOLR-3589: Edismax parser does not honor mm parameter if analyzer splits a token.
(Tom Burton-West, Robert Muir)
* SOLR-4031: Upgrade to Jetty 8.1.7 to fix a bug where in very rare occasions
the content of two concurrent requests get mixed up. (Per Steffensen, yonik)
* SOLR-4055: Fix a thread safety issue with the Collections API that could
cause actions to be targeted at the wrong SolrCores.
(Raintung Li, Per Steffensen via Mark Miller)
* SOLR-4064: When there is an unexpected exception while trying to run the new
leader process, the SolrCore will not correctly rejoin the election.
(Po Rui via Mark Miller)
* SOLR-4003: The SolrZKClient clean method should not try and clear zk paths
that start with /zookeeper, as this can fail and stop the removal of
further nodes. (Mark Miller)
* SOLR-4075: A logical shard that has had all of its SolrCores unloaded should
be removed from the cluster state. (Mark Miller, Gilles Comeau)
* SOLR-4097: Race can cause NPE in logging line on first cluster state update.
(Mark Miller)
* SOLR-4099: Allow the collection api work queue to make forward progress even
when its watcher is not fired for some reason. (Raintung Li via Mark Miller)
* SOLR-3842: DIH would not populate multivalued fields if the column name
derives from a resolved variable (James Dyer)
* SOLR-4117: Retrieving the size of the index may use the wrong index dir if
you are replicating.
(Mark Miller, Markus Jelsma)
* SOLR-4159: When we are starting a shard from rest, a potential leader should
not consider its last published state when deciding if it can be the new
leader. (Mark Miller)
* SOLR-4162: ZkCli usage examples are not correct because the zkhost parameter
is not present and it is mandatory for all commands.
(Tomás Fernández Löbbe via Mark Miller)
* SOLR-4071: Validate that name is pass to Collections API create, and behave the
same way as on startup when collection.configName is not explicitly passed.
(Po Rui, Mark Miller)
* SOLR-4168: Ensure we are using the absolute latest index dir when getting
list of files for replication. (Mark Miller)
* SOLR-4178: ReplicationHandler should abort any current pulls and wait for
its executor to stop during core close. (Mark Miller)
* SOLR-4134: Standard (XML) request writer cannot "set" multiple values into
multivalued field with partial updates. (Luis Cappa Banda, Will Butler, shalin)
* SOLR-4133: Cannot "set" field to null with partial updates when using the
standard RequestWriter. (Will Butler, shalin)
* SOLR-4223: "maxFormContentSize" in jetty.xml is not picked up by jetty 8
so set it via solr webapp context file. (shalin)
* SOLR-4244: When coming back from session expiration we should not wait for
the leader to see us in the down state if we are the node that must become
the leader. (Mark Miller)
* SOLR-4245: When a core is registering with ZooKeeper, the timeout to find the
leader in the cluster state is 30 seconds rather than leaderVoteWait + extra
time. (Mark Miller)
* SOLR-4257: PeerSync updates and Log Replay updates should not wait for
a ZooKeeper connection in order to proceed. (yonik)
* SOLR-4045: SOLR admin page returns HTTP 404 on core names containing
a '.' (dot) (steffkes)
* SOLR-4079: Long core names break web gui appearance and functionality
(steffkes)
* SOLR-4291: Harden the Overseer work queue thread loop. (Mark Miller)
* SOLR-3820: Solr Admin Query form is missing some edismax request parameters
(steffkes)
Other Changes
----------------------
* SOLR-3899: SolrCore should not log at warning level when the index directory
changes - it's an info event. (Tobias Bergman, Mark Miller)
If you are using SolrCloud's distributed update request capabilities and a non
string type id field, you must re-index.
Solr is now much more strict about requiring that the uniqueKeyField feature
(if used) must refer to a field which is not multiValued. If you upgrade from
an earlier version of Solr and see an error that your uniqueKeyField "can not
be configured to be multivalued" please add 'multiValued="false"' to the
<field /> declaration for your uniqueKeyField. See SOLR-3682 for more details.
In addition, please review the notes above about upgrading from 4.0.0-BETA
* The Lucene index format has changed and as a result, once you upgrade,
previous versions of Solr will no longer be able to read your indices.
In a master/slave configuration, all searchers/slaves should be upgraded
before the master. If the master were to be updated first, the older
searchers would not be able to read the new index format.
* The default logic for the 'mm' param of the 'dismax' QParser has
been changed. If no 'mm' param is specified (either in the query,
or as a default in solrconfig.xml) then the effective value of the
'q.op' param (either in the query or as a default in solrconfig.xml
or from the 'defaultOperator' option in schema.xml) is used to
influence the behavior. If q.op is effectively "AND" then mm=100%.
If q.op is effectively "OR" then mm=0%. Users who wish to force the
legacy behavior should set a default value for the 'mm' param in
their solrconfig.xml file.
* The VelocityResponseWriter is no longer built into the core. Its JAR and
dependencies now need to be added (via <lib> or solr/home lib inclusion),
and it needs to be registered in solrconfig.xml like this:
<queryResponseWriter name="velocity" class="solr.VelocityResponseWriter"/>
* Due to low level changes to support SolrCloud, the uniqueKey field can no
longer be populated via <copyField/> or <field default=...> in the
schema.xml. Users wishing to have Solr automatically generate a uniqueKey
value when adding documents should instead use an instance of
solr.UUIDUpdateProcessorFactory in their update processor chain. See
SOLR-2796 for more details.
In addition, please review the notes above about upgrading from 4.0.0-BETA, and
4.0.0-ALPHA
New Features
----------------------
* SOLR-2768: new "mod(x,y)" function for computing the modulus of two value
sources. (hossman)
* SOLR-3597: seems like a lot of wasted whitespace at the top of the admin screens
(steffkes)
* SOLR-3304: Added Solr adapters for Lucene 4's new spatial module. With
SpatialRecursivePrefixTreeFieldType ("location_rpt" in example schema), it is
possible to index a variable number of points per document (and sort on them),
index not just points but any Spatial4j supported shape such as polygons, and
to query on these shapes too. Polygons requires adding JTS to the classpath.
(David Smiley)
* SOLR-3822: Added hover titles to the edismax params on the UI Query form
(steffkes)
Optimizations
----------------------
* SOLR-3837: When a leader is elected and asks replicas to sync back to him and
that fails, we should ask those nodes to recovery asynchronously rather than
synchronously. (Mark Miller)
* SOLR-3709: Cache the url list created from the ClusterState in CloudSolrServer
on each request. (Mark Miller)
Bug Fixes
----------------------
* SOLR-3685: Solr Cloud sometimes skipped peersync attempt and replicated instead
due
to tlog flags not being cleared when no updates were buffered during a previous
replication. (Markus Jelsma, Mark Miller, yonik)
* SOLR-3730: Rollback is not implemented quite right and can cause corner case
fails in
SolrCloud tests. (rmuir, Mark Miller)
* SOLR-3721: Fix bug that could theoretically allow multiple recoveries to run
briefly at the same time if the recovery thread join call was interrupted.
(Per Steffensen, Mark Miller)
* SOLR-3782: A leader going down while updates are coming in can cause shard
inconsistency. (Mark Miller)
* SOLR-3611: We do not show ZooKeeper data in the UI for a node that has children.
(Mark Miller)
* SOLR-3699: Fixed some Directory leaks when there were errors during SolrCore
or SolrIndexWriter initialization. (hossman)
* SOLR-3823: Fix 'bq' parsing in edismax. Please note that this required
reverting the negative boost support added by SOLR-3278 (hossman)
* SOLR-3811: Query Form using wrong values for dismax, edismax (steffkes)
* SOLR-3833: When a election is started because a leader went down, the new
leader candidate should decline if the last state they published was not
active. (yonik, Mark Miller)
* SOLR-3836: When doing peer sync, we should only count sync attempts that
cannot reach the given host as success when the candidate leader is
syncing with the replicas - not when replicas are syncing to the leader.
(Mark Miller)
* SOLR-3834: A new leader on cluster startup should also run the leader sync
process in case there was a bad cluster shutdown. (Mark Miller)
* SOLR-3813: When a new leader syncs, we need to ask all shards to sync back,
not just those that are active. (Mark Miller)
* SOLR-3844: SolrCore reload can fail because it tries to remove the index
write lock while already holding it. (Mark Miller)
Other Changes
----------------------
* SOLR-3752: When a leader goes down, have the Overseer clear the leader state
in cluster.json (Mark Miller)
* SOLR-3751: Add defensive checks for SolrCloud updates and requests that ensure
the local state matches what we can tell the request expected. (Mark Miller)
* SOLR-3773: Hash based on the external String id rather than the indexed
representation for distributed updates. (Michael Garski, yonik, Mark Miller)
* SOLR-3780: Maven build: Make solrj tests run separately from solr-core.
(Steve Rowe)
Solr is now much more strict about requiring that the uniqueKeyField feature
(if used) must refer to a field which is not multiValued. If you upgrade from
an earlier version of Solr and see an error that your uniqueKeyField "can not
be configured to be multivalued" please add 'multiValued="false"' to the
<field /> declaration for your uniqueKeyField. See SOLR-3682 for more details.
New Features
----------------------
* LUCENE-4201: Added JapaneseIterationMarkCharFilterFactory to normalize Japanese
iteration marks. (Robert Muir, Christian Moen)
* SOLR-3562: Add options to remove instance dir or data dir on core unload.
(Mark Miller, Per Steffensen)
* SOLR-3460: Add cloud-scripts directory and a zkcli.sh|bat tool for easy scripting
and interaction with ZooKeeper. (Mark Miller)
Optimizations
----------------------
* SOLR-3709: Cache the url list created from the ClusterState in CloudSolrServer on
each
request. (Mark Miller, yonik)
Bug Fixes
----------------------
* SOLR-3582: Our ZooKeeper watchers respond to session events as if they are change
events,
creating undesirable side effects. (Trym R. Møller, Mark Miller)
* SOLR-3587: After reloading a SolrCore, the original Analyzer is still used rather
than a new
one. (Alexey Serba, yonik, rmuir, Mark Miller)
* LUCENE-4185: Fix a bug where CharFilters were wrongly being applied twice.
(Michael Froh, rmuir)
* SOLR-3610: After reloading a core, indexing would fail on any newly added fields
to the schema. (Brent Mills, rmuir)
* SOLR-3621: Fix rare concurrency issue when opening a new IndexWriter for
replication or rollback.
(Mark Miller)
* SOLR-3639: Update ZooKeeper to 3.3.6 for a variety of bug fixes. (Mark Miller)
* SOLR-3656: A core reload now always uses the same dataDir. (Mark Miller, yonik)
* SOLR-3662: Core reload bugs: a reload always obtained a non-NRT searcher, which
could go back in time with respect to the previous core's NRT searcher.
Versioning
did not work correctly across a core reload, and update handler synchronization
was changed to synchronize on core state since more than on update handler
can coexist for a single index during a reload. (yonik)
* SOLR-3663: There are a couple of bugs in the sync process when a leader goes down
and a
new leader is elected. (Mark Miller)
* SOLR-3647: DistributedQueue should use our Solr zk client rather than the std zk
client. ZooKeeper expiration can be permanent otherwise. (Mark Miller)
Other Changes
----------------------
* SOLR-1770: Move the default core instance directory into a collection1 folder.
(Mark Miller)
* SOLR-3355: Add shard and collection to SolrCore statistics. (Michael Garski, Mark
Miller)
* SOLR-3563: Unloading all cores in a SolrCloud collection will now cause the
removal of
that collection's meta data from ZooKeeper. (Mark Miller, Per Steffensen)
* SOLR-3599: Add zkClientTimeout to solr.xml so that it's obvious how to change it
and so
that you can change it with a system property. (Mark Miller)
* SOLR-3439: Make SolrCell easier to use out of the box. Also improves "/browse" to
display
rich-text documents correctly, along with facets for author and content_type.
With the new "content" field, highlighting of body is supported. See also SOLR-
3672 for
easier posting of a whole directory structure. (Jack Krupansky, janhoy)
* SOLR-3579: SolrCloud view should default to the graph view rather than tree view.
(steffkes, Mark Miller)
* The default logic for the 'mm' param of the 'dismax' QParser has
been changed. If no 'mm' param is specified (either in the query,
or as a default in solrconfig.xml) then the effective value of the
'q.op' param (either in the query or as a default in solrconfig.xml
or from the 'defaultOperator' option in schema.xml) is used to
influence the behavior. If q.op is effectively "AND" then mm=100%.
If q.op is effectively "OR" then mm=0%. Users who wish to force the
legacy behavior should set a default value for the 'mm' param in
their solrconfig.xml file.
* The VelocityResponseWriter is no longer built into the core. Its JAR and
dependencies now need to be added (via <lib> or solr/home lib inclusion),
and it needs to be registered in solrconfig.xml like this:
<queryResponseWriter name="velocity" class="solr.VelocityResponseWriter"/>
* Due to low level changes to support SolrCloud, the uniqueKey field can no
longer be populated via <copyField/> or <field default=...> in the
schema.xml. Users wishing to have Solr automatically generate a uniqueKey
value when adding documents should instead use an instance of
solr.UUIDUpdateProcessorFactory in their update processor chain. See
SOLR-2796 for more details.
* SOLR-1665: Add debug component options for timings, results and query info only
(gsingers, hossman, yonik)
* SOLR-2193, SOLR-2565: You may now specify a 'soft' commit when committing. This
will
use Lucene's NRT feature to avoid guaranteeing documents are on stable storage in
exchange
for faster reopen times. There is also a new 'soft' autocommit tracker that can
be
configured. (Mark Miller, Robert Muir)
* SOLR-2399: Updated Solr Admin interface. New look and feel with per core
administration
and many new options. (Stefan Matheis via ryan)
* SOLR-2703: Added support for Lucene's "surround" query parser. (Simon Rosenthal,
ehatcher)
* SOLR-2906: Added LFU cache options to Solr. (Shawn Heisey via Erick Erickson)
* SOLR-3120: Optional post filtering for spatial queries bbox and geofilt
for LatLonType. (yonik)
* SOLR-3278: Negative boost support to the Extended Dismax Query Parser Boost Query
(bq).
(James Dyer)
* SOLR-3358: Logging events are captured and available from the /admin/logging
request handler. (ryan)
* SOLR-2690: New support for a "TZ" request param which overrides the TimeZone
used when rounding Dates in DateMath expressions for the entire request
(all date range queries and date faceting is affected). The default TZ
is still UTC. (David Schlotfeldt, hossman)
* SOLR-3402: Analysis Factories are now configured with their Lucene Version
throw setLuceneMatchVersion, rather than through the Map passed to init.
Parsing and simple error checking for the Version is now done inside
the code that creates the Analysis Factories. (Chris Male)
* SOLR-3495: New UpdateProcessors have been added to create default values for
configured fields. These works similarly to the <field default="..."/>
option in schema.xml, but are applied in the UpdateProcessorChain, so they
may be used prior to other UpdateProcessors, or to generate a uniqueKey field
value when using the DistributedUpdateProcessor (ie: SolrCloud)
TimestampUpdateProcessorFactory
UUIDUpdateProcessorFactory
DefaultValueUpdateProcessorFactory
(hossman)
Optimizations
----------------------
* SOLR-2193, SOLR-2565: The default Solr update handler has been improved so
that it uses fewer locks, keeps the IndexWriter open rather than closing it
on each commit (ie commits no longer wait for background merges to complete),
works with SolrCore to provide faster 'soft' commits, and has an improved API
that requires less instanceof special casing. (Mark Miller, Robert Muir)
Additional Work:
- SOLR-2697: commit and autocommit operations don't reset
DirectUpdateHandler2.numDocsPending stats attribute.
(Alexey Serba, Mark Miller)
Bug Fixes
----------------------
* SOLR-3139: Make ConcurrentUpdateSolrServer send UpdateRequest.getParams()
as HTTP request params (siren)
* SOLR-2108: Fixed false positives when using wildcard queries on fields with
reversed
wildcard support. For example, a query of *zemog* would match documents that
contain
'gomez'. (Landon Kuhn via Robert Muir)
* SOLR-2654: Directorys used by a SolrCore are now closed when they are no longer
used.
(Mark Miller)
* SOLR-2854: Now load URL content stream data (via stream.url) when called for
during request handling,
rather than loading URL content streams automatically regardless of use.
(David Smiley and Ryan McKinley via ehatcher)
* SOLR-1730: Made it clearer when a core failed to load as well as better logging
when the
QueryElevationComponent fails to properly initialize (gsingers)
* SOLR-3037: When using binary format in solrj the codec screws up parameters
(Sami Siren, Jörg Maier via yonik)
* SOLR-3062: A join in the main query was not respecting any filters pushed
down to it via acceptDocs since LUCENE-1536. (Mike Hugo, yonik)
* SOLR-3214: If you use multiple fl entries rather than a comma separated list, all
but the first
entry can be ignored if you are using distributed search. (Tomás Fernández Löbbe
via Mark Miller)
* SOLR-3352: eDismax: pf2 should kick in for a query with 2 terms (janhoy)
* SOLR-3436: Group count incorrect when not all shards are queried in the second
pass. (Francois Perron, Martijn van Groningen)
* SOLR-3454: Exception when using result grouping with main=true and using
wt=javabin. (Ludovic Boutros, Martijn van Groningen)
* SOLR-3430: Added a new DIH test against a real SQL database. Fixed problems
revealed by this new test related to the expanded cache support added to
3.6/SOLR-2382 (James Dyer)
* SOLR-4289: Admin UI - JVM memory bar - dark grey "used" width is too small
(steffkes, elyograg)
Other Changes
----------------------
* SOLR-1889: The default logic for the 'mm' param of DismaxQParser and
ExtendedDismaxQParser has been changed to be determined based on the
effective value of the 'q.op' param (hossman)
* SOLR-2289: Tweak spatial coords for example docs so they are a bit
more spread out (Erick Erickson via hossman)
* SOLR-2654: The same Directory instance is now always used across a SolrCore so
that
it's easier to add other DirectoryFactory's without static caching hacks.
(Mark Miller)
* LUCENE-3286: 'luke' ant target has been disabled due to incompatibilities with
XML
queryparser location (Chris Male)
* SOLR-1897: The data dir from the core descriptor should override the data dir
from
the solrconfig.xml rather than the other way round. (Mark Miller)
* SOLR-3202, SOLR-3244: Dropping Support for JSP. New Admin UI is all client side
(ryan, Aliaksandr Zhuhrou, Uwe Schindler)
* SOLR-1893: Refactored some common code from LRUCache and FastLRUCache into
SolrCacheBase (Tomás Fernández Löbbe via hossman)
* SOLR-3403: Deprecated Analysis Factories now log their own deprecation messages.
No logging support is provided by Factory parent classes. (Chris Male)
* SOLR-3083: JMX beans now report Numbers as numeric values rather then String
(Tagged Siteops, Greg Bowyer via ryan)
* SOLR-3534: The Dismax and eDismax query parsers will fall back on the 'df'
parameter
when 'qf' is absent. And if neither is present nor the schema default search
field
then an exception will be thrown now. (dsmiley)
Documentation
----------------------
Bug Fixes
----------------------
* SOLR-3790: ConcurrentModificationException could be thrown when using hl.fl=*.
(yonik, koji)
* SOLR-3589: Edismax parser does not honor mm parameter if analyzer splits a token.
(Tom Burton-West, Robert Muir)
Bug Fixes
* LUCENE-3969: Throw IAE on bad arguments that could cause confusing errors in
PatternTokenizer. CommonGrams populates PositionLengthAttribute correctly.
(Uwe Schindler, Mike McCandless, Robert Muir)
* SOLR-3436: Group count incorrect when not all shards are queried in the second
pass. (Francois Perron, Martijn van Groningen)
* SOLR-3454: Exception when using result grouping with main=true and using
wt=javabin. (Ludovic Boutros, Martijn van Groningen)
* SOLR-3489: Config file replication less error prone (Jochen Just via janhoy)
* SOLR-3477: SOLR does not start up when no cores are defined (Tomás Fernández
Löbbe via tommaso)
* SOLR-3360: More DIH bug fixes for the deprecated "threads" parameter.
(Mikhail Khludnev, Claudio R, via James Dyer)
* SOLR-3430: Added a new DIH test against a real SQL database. Fixed problems
revealed by this new test related to the expanded cache support added to
3.6/SOLR-2382 (James Dyer)
* In Solr version 3.5 and earlier, HTMLStripCharFilter had known bugs in the
character offsets it provided, triggering e.g. exceptions in highlighting.
HTMLStripCharFilter has been re-implemented, addressing this and other
issues. See the entry for LUCENE-3690 in the Bug Fixes section below for a
detailed list of changes. For people who depend on the behavior of
HTMLStripCharFilter in Solr version 3.5 and earlier: the old implementation
(bugs and all) is preserved as LegacyHTMLStripCharFilter.
* SOLR-3040: The DIH's admin UI (dataimport.jsp) now requires DIH request handlers
to start with
a '/'. (dsmiley)
* SOLR-3161: Don't use the 'qt' parameter with a leading '/'. It probably won't
work in 4.0
and it's now limited in 3.6 to SearchHandler subclasses that aren't lazy-loaded.
New Features
----------------------
* SOLR-2020: Add Java client that uses Apache Http Components http client (4.x).
(Chantal Ackermann, Ryan McKinley, Yonik Seeley, siren)
* SOLR-2854: Now load URL content stream data (via stream.url) when called for
during request handling,
rather than loading URL content streams automatically regardless of use.
(David Smiley and Ryan McKinley via ehatcher)
* SOLR-2919: Added support for localized range queries when the analysis chain uses
CollationKeyFilter or ICUCollationKeyFilter. (Michael Sokolov, rmuir)
* SOLR-2906: Added LFU cache options to Solr. (Shawn Heisey via Erick Erickson)
* SOLR-1729: Evaluation of NOW for date math is done only once per request for
consistency, and is also propagated to shards in distributed search.
Adding a parameter NOW=<time_in_ms> to the request will override the
current time. (Peter Sturge, yonik, Simon Willnauer)
* SOLR-2202: Currency FieldType, whith support for currencies and exchange rates
(Greg Fodor & Andrew Morrison via janhoy, rmuir, Uwe Schindler)
* SOLR-3026: eDismax: Locking down which fields can be explicitly queried (user
fields aka uf)
(janhoy, hossmann, Tomás Fernández Löbbe)
* SOLR-2001: The query component will substitute an empty query that matches
no documents if the query parser returns null. This also prevents an
exception from being thrown by the default parser if "q" is missing. (yonik)
- SOLR-435: if q is "" then it's also acceptable. (dsmiley, hoss)
* SOLR-2346: Add a chance to set content encoding explicitly via content type
of stream for extracting request handler. This is convenient when Tika's
auto detector cannot detect encoding, especially the text file is too short
to detect encoding. (koji)
* SOLR-1499: Added SolrEntityProcessor that imports data from another Solr core
or instance based on a specified query.
(Lance Norskog, Erik Hatcher, Pulkit Singhal, Ahmet Arslan, Luca Cavanna,
Martijn van Groningen)
* SOLR-2382: Added pluggable cache support to DIH so that any Entity can be
made cache-able by adding the "cacheImpl" parameter. Include
"SortedMapBackedCache" to provide in-memory caching (as previously this was
the only option when using CachedSqlEntityProcessor). Users can provide
their own implementations of DIHCache for other caching strategies.
Deprecate CachedSqlEntityProcessor in favor of specifing "cacheImpl" with
SqlEntityProcessor. Make SolrWriter implement DIHWriter and allow the
possibility of pluggable Writers (DIH writing to something other than Solr).
(James Dyer, Noble Paul)
Optimizations
----------------------
* SOLR-1931: Speedup for LukeRequestHandler and admin/schema browser. New parameter
reportDocCount defaults to 'false'. Old behavior still possible by specifying
this as 'true'
(Erick Erickson)
* SOLR-1730: Made it clearer when a core failed to load as well as better logging
when the
QueryElevationComponent fails to properly initialize (gsingers)
* SOLR-2542: Fixed DIH Context variables which were broken for all scopes other
then SCOPE_ENTITY (Linbin Chen & Frank Wesemann via hossman)
* SOLR-2280: commitWithin ignored for a delete query (Juan Grande via janhoy)
* SOLR-3073: Fixed 'Invalid UUID string' error when having an UUID field as
the unique key and executing a distributed grouping request. (Devon Krisman,
Martijn van Groningen)
* SOLR-2124: Do not log stack traces for "Service Disabled" / 503 Exceptions
(PingRequestHandler, etc)
(James Dyer, others)
* SOLR-2959: edismax now respects the magic fields '_val_' and '_query_'
(Michael Watts, hossman)
* SOLR-3316: Distributed grouping failed when rows parameter was set to 0 and
sometimes returned a wrong hit count as matches. (Cody Young, Martijn van
Groningen)
Other Changes
----------------------
* SOLR-2922: Upgrade commons-io and commons-lang to 2.1 and 2.6, respectively.
(koji)
* SOLR-3032: Deprecate logOnce from SolrException logOnce and all the supporting
structure will disappear in 4.0. Errors should be caught and logged at the
top-most level or logged and NOT propagated up the chain. (Erick Erickson)
* SOLR-3059: Example XSL stylesheet for indexing query result XML (janhoy)
* SOLR-3140: Upgrade schema version to 1.5, where omitNorms defaults to "true" for
all
primitive (non-analyzed) field types such as int, float, date, bool, string..
(janhoy)
* SOLR-3077: Better error messages when attempting to use "blank" field names
(Antony Stubbs via hossman)
* SOLR-3295: netcdf jar is excluded from the binary release (and disabled in
ivy.xml) because it requires java 6. If you want to parse this content with
extracting request handler and are willing to use java 6, just add the jar.
(rmuir)
Build
----------------------
* SOLR-2487: Add build target to package war without slf4j jars (janhoy)
* SOLR-3112: Fix tests not to write to src/test-files (Luca Cavanna via Robert
Muir)
* SOLR-3204: The packaged pre-release artifact of Commons CSV used the original
package name (org.apache.commons.csv). This created a compatibility issue as
the Apache Commons team works toward an official release of Commons CSV.
The source of Commons CSV was added under a separate package name to the
Solr source code. (Uwe Schindler, Chris Male, Emmanuel Bourg)
* LUCENE-3930: Changed build system to use Apache Ivy for retrival of 3rd
party JAR files. Please review README.txt for instructions.
(Robert Muir, Chris Male, Uwe Schindler, Steven Rowe, Hossman)
New Features
----------------------
* SOLR-2749: Add boundary scanners for FastVectorHighlighter. <boundaryScanner/>
can be specified with a name in solrconfig.xml, and use hl.boundaryScanner=name
parameter to specify the named <boundaryScanner/>. (koji)
* SOLR-2769: Added factory for the new Hunspell stemmer capable of doing stemming
for 99 languages (janhoy, cmale)
* SOLR-2818: Added before/after count response parsing support for range facets in
SolrJ. (Bernhard Frauendienst via Martijn van Groningen)
Optimizations
----------------------
Bug Fixes
----------------------
* SOLR-2748: The CommitTracker used for commitWith or autoCommit by maxTime
could commit too frequently and could block adds until a new searcher was
registered. (yonik)
* SOLR-2763: Extracting update request handler throws exception and returns 400
when zero-length file posted using multipart form post (janhoy)
* SOLR-2780: Fixed issue where multi select facets didn't respect group.truncate
parameter.
(Martijn van Groningen, Ramzi Alqrainy)
* SOLR-2861: Fix extremely rare race condition on commit that can result
in a NPE (yonik)
* SOLR-2813: Fix HTTP error codes returned when requests contain strings that
can not be parsed as numbers for Trie fields. (Jeff Crump and hossman)
* SOLR-2902: List of collations are wrong parsed in SpellCheckResponse causing
a wrong number of collation results in the response.
(Bastiaan Verhoef, James Dyer via Simon Willnauer)
Other Changes
----------------------
* SOLR-2771: Solr modules' tests should not depend on solr-core test classes;
move BufferingRequestProcessor from solr-core tests to test-framework so that
the Solr Cell module can use it. (janhoy, Steve Rowe)
* SOLR-2849: Fix dependencies in Maven POMs. (David Smiley via Steve Rowe)
* The Lucene index format has changed and as a result, once you upgrade,
previous versions of Solr will no longer be able to read your indices.
In a master/slave configuration, all searchers/slaves should be upgraded
before the master. If the master were to be updated first, the older
searchers would not be able to read the new index format.
* Previous versions of Solr silently allow and ignore some contradictory
properties specified in schema.xml. For example:
- indexed="false" omitNorms="false"
- indexed="false" omitTermFreqAndPositions="false"
Field property validation has now been fixed, to ensure that
contradictions like these now generate error messages. If users
have existing schemas that generate one of these new "conflicting
'false' field options for non-indexed field" error messages the
conflicting "omit*" properties can safely be removed, or changed to
"true" for consistent behavior with previous Solr versions. This
situation has now been fixed to cause an error on startup when these
contradictory options. See SOLR-2669.
New Features
----------------------
* SOLR-2615: Log individual updates (adds and deletes) at the FINE level
before adding to the index. Fix a null pointer exception in logging
when there was no unique key. (David Smiley via yonik)
* SOLR-2665: Added post group faceting. Facet counts are based on the most
relevant document of each group matching the query. This feature has the
same impact on the StatsComponent. (Martijn van Groningen)
* SOLR-2714: JSON update format - "null" field values are now dropped
instead of causing an exception. (Trygve Laugstøl, yonik)
Optimizations
----------------------
Bug Fixes
----------------------
* SOLR-2636: Fix explain functionality for negative queries. (Tom Hill via yonik)
* SOLR-2623: Solr JMX MBeans do not survive core reloads (Alexey Serba, shalin)
* Fixed grouping bug when start is bigger than rows and format is simple that zero
documents are returned even
if there are documents to display. (Martijn van Groningen, Nikhil Chhaochharia)
* SOLR-2642: Fixed sorting by function when using grouping. (Thomas Heigl, Martijn
van Groningen)
* SOLR-2644: When using DIH with threads=2 the default logging is set too high
(Bill Bell via shalin)
* SOLR-2655: DIH multi threaded mode does not resolve attributes correctly
(Frank Wesemann, shalin)
Other Changes
----------------------
Build
----------------------
* SOLR-2452,SOLR-2653,LUCENE-3323,SOLR-2659,LUCENE-3329,SOLR-2666:
Rewrote the Solr build system:
- Integrated more fully with the Lucene build system: generalized the
Lucene build system and eliminated duplication.
- Converted all Solr contribs to the Lucene/Solr conventional src/ layout:
java/, resources/, test/, and test-files/<contrib-name>.
- Created a new Solr-internal module named "core" by moving the java/,
test/, and test-files/ directories from solr/src/ to solr/core/src/.
- Merged solr/src/webapp/src/ into solr/core/src/java/.
- Eliminated solr/src/ by moving all its directories up one level;
renamed solr/src/site/ to solr/site-src/ because solr/site/ already
exists.
- Merged solr/src/common/ into solr/solrj/src/java/.
- Moved o.a.s.client.solrj.* and o.a.s.common.* tests from
solr/src/test/ to solr/solrj/src/test/.
- Made the solrj tests not depend on the solr core tests by moving
some classes from solr/src/test/ to solr/test-framework/src/java/.
- Each internal module (core/, solrj/, test-framework/, and webapp/)
now has its own build.xml, from which it is possible to run
module-specific targets. solr/build.xml delegates all build
tasks (via <ant dir="internal-module-dir"> calls) to these
modules' build.xml files.
(Steve Rowe, Robert Muir)
Documentation
----------------------
New Features
----------------------
Optimizations
----------------------
Bug Fixes
----------------------
Other Changes
----------------------
* SOLR-2611: Fix typos in the example configuration (Eric Pugh via rmuir)
New Features
----------------------
Optimizations
----------------------
Bug Fixes
----------------------
* SOLR-2409: edismax parser - treat the text of a fielded query as a literal if the
fieldname does not exist. For example Mission: Impossible should not search on
the "Mission" field unless it's a valid field in the schema. (Ryan McKinley,
yonik)
* SOLR-2333: The "rename" core admin action does not persist the new name to
solr.xml
(Rasmus Hahn, Paul R. Brown via Mark Miller)
* SOLR-2493: SolrQueryParser was fixed to not parse the SolrConfig DOM tree on each
instantiation which is a huge slowdown. (Stephane Bailliez via uschindler)
* SOLR-2495: The JSON parser could hang on corrupted input and could fail
to detect numbers that were too large to fit in a long. (yonik)
Other Changes
----------------------
* SOLR-2061: Pull base tests out into a new Solr Test Framework module,
and publish binary, javadoc, and source test-framework jars.
(Drew Farris, Robert Muir, Steve Rowe)
Build
----------------------
Documentation
----------------------
* The Lucene index format has changed and as a result, once you upgrade,
previous versions of Solr will no longer be able to read your indices.
In a master/slave configuration, all searchers/slaves should be upgraded
before the master. If the master were to be updated first, the older
searchers would not be able to read the new index format.
* The Solr JavaBin format has changed as of Solr 3.1. If you are using the
JavaBin format, you will need to upgrade your SolrJ client. (SOLR-2034)
* LUCENE-2608: Added the ability to specify the accuracy on a per request basis.
It is recommended that implementations of SolrSpellChecker should change over to
the new SolrSpellChecker
methods using the new SpellingOptions class, but are not required to. While this
change is
backward compatible, the trunk version of Solr has already dropped support for
all but the SpellingOptions method. (gsingers)
New Features
----------------------
* SOLR-1574: Add many new functions from java Math (e.g. sin, cos) (yonik)
* SOLR-1625: Add regexp support for TermsComponent (Uri Boness via noble)
* SOLR-1139: Add TermsComponent Query and Response Support in SolrJ (Matt Weber via
shalin)
* SOLR-1177: Distributed Search support for TermsComponent (Matt Weber via shalin)
* SOLR-1131: FieldTypes can now output multiple Fields per Type and still be
searched. This can be handy for hiding the details of a particular
implementation such as in the spatial case. (Chris Mattmann, shalin, noble,
gsingers, yonik)
* SOLR-1586: Add support for Geohash and Spatial Tile FieldType (Chris Mattmann,
gsingers)
* SOLR-1697: PluginInfo should load plugins w/o class attribute also (noble)
* SOLR-1677: Add support for choosing the Lucene Version for Lucene components
within
Solr. (Uwe Schindler, Mark Miller)
* SOLR-1925: Add CSVResponseWriter (use wt=csv) that returns the list of documents
in CSV format. (Chris Mattmann, yonik)
* SOLR-2053: Add support for custom comparators in Solr spellchecker, per LUCENE-
2479 (gsingers)
* SOLR-2099: Add ability to throttle rsync based replication using rsync option --
bwlimit.
(Brandon Evans via koji)
* SOLR-2133: Function query parser can now parse multiple comma separated
value sources. It also now fails if there is extra unexpected text
after parsing the functions, instead of silently ignoring it.
This allows expressions like q=dist(2,vector(1,2),$pt)&pt=3,4 (yonik)
* SOLR-2325: Allow tagging and exclusion of main query for faceting. (yonik)
Optimizations
----------------------
Bug Fixes
----------------------
* SOLR-1769: Solr 1.4 Replication - Repeater throwing NullPointerException (Jörgen
Rydenius via noble)
* SOLR-1624: Highlighter only highlights values from the first field value
in a multivalued field when term positions (term vectors) are stored.
(Chris Harris via yonik)
* SOLR-1736:In the slave , If 'mov'ing file does not succeed , copy the file
(noble)
* SOLR-1936: The JSON response format needed to escape unicode code point
U+2028 - 'LINE SEPARATOR' (Robert Hofstra, yonik)
* SOLR-1791: Fix messed up core names on admin gui (yonik via koji)
* SOLR-2047: ReplicationHandler should accept bool type for enable flag. (koji)
* SOLR-1630: Fix spell checking collation issue related to token positions (rmuir,
gsingers)
* SOLR-2100: The replication handler backup command didn't save the commit
point and hence could fail when a newer commit caused the older commit point
to be removed before it was finished being copied. This did not affect
normal master/slave replication. (Peter Sturge via yonik)
* SOLR-2114: Fixed parsing error in hsin function. The function signature has
changed slightly. (gsingers)
* SOLR-2173: Suggester should always rebuild Lookup data if Lookup.load fails. (ab)
* SOLR-1766: DIH with threads enabled doesn't respond to the abort command
(Michael Henson via noble)
Other Changes
----------------------
* SOLR-1674: Improve analysis tests and cut over to new TokenStream API.
(Robert Muir via Mark Miller)
* SOLR-1695: Improved error messages when adding a document that does not
contain exactly one value for the uniqueKey field (hossman)
* SOLR-1851: luceneAutoCommit no longer has any effect - it has been remove (Mark
Miller)
* SOLR-2365: Move DIH jars out of solr.war (David Smiley via yonik)
* SOLR-1813: Add ICU4j to contrib/extraction libs and add tests for Arabic
extraction (Robert Muir via gsingers)
Build
----------------------
* SOLR-1891: Make lucene-jars-to-solr fail if copying any of the jars fails, and
update clean to remove the jars in that directory (Mark Miller)
* LUCENE-2657: Switch from using Maven POM templates to full POMs when
generating Maven artifacts (Steven Rowe)
Documentation
----------------------
This is a bug fix release - no changes are required when upgrading from Solr 1.4.
However, a reindex is needed for some of the analysis fixes to take effect.
Lucene Information
----------------
Since Solr is built on top of Lucene, many people add customizations to Solr
that are dependent on Lucene. Please see http://lucene.apache.org/java/2_9_3/,
especially http://lucene.apache.org/java/2_9_3/changes/Changes.html for more
information on the version of Lucene used in Solr.
Bug Fixes
----------------------
* SOLR-1936: The JSON response format needed to escape unicode code point
U+2028 - 'LINE SEPARATOR' (Robert Hofstra, yonik)
There is a new default faceting algorithm for multiVaued fields that should be
faster for most cases. One can revert to the previous algorithm (which has
also been improved somewhat) by adding facet.method=enum to the request.
New users of Solr 1.4 will have omitTermFreqAndPositions enabled for non-text
indexed fields by default, which avoids indexing term frequency, positions, and
payloads, making the index smaller and faster. If you are upgrading from an
earlier Solr release and want to enable omitTermFreqAndPositions by default,
change the schema version from 1.1 to 1.2 in schema.xml. Remove any existing
index and restart Solr to ensure that omitTermFreqAndPositions completely takes
affect.
The default QParserPlugin used by the QueryComponent for parsing the "q" param
has been changed, to remove support for the deprecated use of ";" as a separator
between the query string and the sort options when no "sort" param was used.
Users who wish to continue using the semi-colon based method of specifying the
sort options should explicitly set the defType param to "lucenePlusSort" on all
requests. (The simplest way to do this is by specifying it as a default param
for your request handlers in solrconfig.xml, see the example solrconfig.xml for
sample syntax.)
If spellcheck.extendedResults=true, the response format for suggestions
has changed, see SOLR-1071.
DIH: Evaluator API has been changed in a non back-compatible way. Users who
have developed custom Evaluators will need to change their code according to
the new API for it to work. See SOLR-996 for details.
DIH: The formatDate evaluator's syntax has been changed. The new syntax is
formatDate(<variable>, '<format_string>'). For example,
formatDate(x.date, 'yyyy-MM-dd'). In the old syntax, the date string was
written without a single-quotes. The old syntax has been deprecated and will
be removed in 1.5, until then, using the old syntax will log a warning.
DIH: The Context API has been changed in a non back-compatible way. In
particular, the Context.currentProcess() method now returns a String
describing the type of the current import process instead of an int.
Similarily, the public constants in Context viz. FULL_DUMP, DELTA_DUMP and
FIND_DELTA are changed to a String type. See SOLR-969 for details.
DIH: The EntityProcessor API has been simplified by moving logic for applying
transformers and handling multi-row outputs from Transformers into an
EntityProcessorWrapper class. The EntityProcessor#destroy is now called once
per parent-row at the end of row (end of data). A new method
EntityProcessor#close is added which is called at the end of import.
DIH: In Solr 1.3, if the last_index_time was not available (first import) and
a delta-import was requested, a full-import was run instead. This is no longer
the case. In Solr 1.4 delta import is run with last_index_time as the epoch
date (January 1, 1970, 00:00:00 GMT) if last_index_time is not available.
Lucene Information
----------------
Since Solr is built on top of Lucene, many people add customizations to Solr
that are dependent on Lucene. Please see http://lucene.apache.org/java/2_9_0/,
especially http://lucene.apache.org/java/2_9_0/changes/Changes.html for more
information on the version of Lucene used in Solr.
New Features
----------------------
1. SOLR-560: Use SLF4J logging API rather then JDK logging. The packaged .war
file is
shipped with a JDK logging implementation, so logging configuration for
the .war should
be identical to solr 1.3. However, if you are using the .jar file, you can
select
which logging implementation to use by dropping a different binding.
See: http://www.slf4j.org/ (ryan)
4. SOLR-793: Add 'commitWithin' argument to the update add command. This behaves
similar to the global autoCommit maxTime argument except that it is set for
each request. (ryan)
9. SOLR-746: Added "omitHeader" request parameter to omit the header from the
response.
(Noble Paul via shalin)
13. SOLR-667: A LRU cache implementation based upon ConcurrentHashMap and other
techniques to reduce
contention and synchronization overhead, to utilize multiple CPU cores more
effectively.
(Fuad Efendi, Noble Paul, yonik via shalin)
15. SOLR-822: Add CharFilter so that characters can be filtered (e.g. character
normalization)
before Tokenizer/TokenFilters. (koji)
16. SOLR-829: Allow slaves to request compressed files from master during
replication
(Simon Collins, Noble Paul, Akshay Ukey via shalin)
18. SOLR-538: Add maxChars attribute for copyField function so that the length
limit for destination
can be specified.
(Georgios Stamatis, Lars Kotthoff, Chris Harris via koji)
19. SOLR-284: Added support for extracting content from binary documents like MS
Word and PDF using Apache Tika. See also contrib/extraction/CHANGES.txt (Eric
Pugh, Chris Harris, yonik, gsingers)
22. SOLR-821: Add support for replication to copy conf file to slave with a
different name. This allows replication
of solrconfig.xml
(Noble Paul, Akshay Ukey via shalin)
29. SOLR-865: Adding support for document updates in binary format and
corresponding support in Solrj client.
(Noble Paul via shalin)
30. SOLR-763: Add support for Lucene's PositionFilter (Mck SembWever via shalin)
31. SOLR-966: Enhance the map() function query to take in an optional default value
(Noble Paul, shalin)
32. SOLR-820: Support replication on startup of master with new index. (Noble Paul,
Akshay Ukey via shalin)
33. SOLR-943: Make it possible to specify dataDir in solr.xml and accept the
dataDir as a request parameter for
the CoreAdmin create command. (Noble Paul via shalin)
35. SOLR-799: Add support for hash based exact/near duplicate document
handling. (Mark Miller, yonik)
37. SOLR-739: Add support for OmitTf (Mark Miller via yonik)
38. SOLR-1046: Nested query support for the function query parser
and lucene query parser (the latter existed as an undocumented
feature in 1.3) (yonik)
39. SOLR-940: Add support for Lucene's Trie Range Queries by providing new
FieldTypes in
schema for int, float, long, double and date. Single-valued Trie based
fields with a precisionStep will index multiple precisions and enable
faster range queries. (Uwe Schindler, yonik, shalin)
48. SOLR-1124: Add a top() function query that causes its argument to
have its values derived from the top level IndexReader, even when
invoked from a sub-reader. top() is implicitly used for the
ord() and rord() functions. (yonik)
49. SOLR-1110: Support sorting on trie fields with Distributed Search. (Mark
Miller, Uwe Schindler via shalin)
50. SOLR-1121: CoreAdminhandler should not need a core . This makes it possible to
start a Solr server w/o a core .(noble)
55. SOLR-1051: Support the merge of multiple indexes as a CoreAdmin and an update
command (Ning Li via shalin)
58. SOLR-1189: Support providing username and password for basic HTTP
authentication in Java replication
(Matthew Gregg, shalin)
60. SOLR-1214: differentiate between solr home and instanceDir .deprecates the
method SolrResourceLoader#locateInstanceDir()
and it is renamed to locateSolrHome (noble)
62. SOLR-1145: Add capability to specify an infoStream log file for the underlying
Lucene IndexWriter in solrconfig.xml.
This is an advanced debug log file that can be used to aid developers in fixing
IndexWriter bugs. See the commented
out example in the example solrconfig.xml under the indexDefaults section.
(Chris Harris, Mark Miller)
65. SOLR-1237: firstSearcher and newSearcher can now be identified via the
CommonParams.EVENT (evt) parameter
in a request. This allows a RequestHandler or SearchComponent to know when a
newSearcher or firstSearcher
event happened. QuerySenderListender is the only implementation in Solr that
implements this, but outside
implementations may wish to. See the AbstractSolrEventListener for a helper
method. (gsingers)
71. SOLR-1368: Add ms() function query for getting milliseconds from dates and for
high precision date subtraction, add sub() for subtracting other arguments.
(yonik)
72. SOLR-1156: Sort TermsComponent results by frequency (Matt Weber via yonik)
75. SOLR-1414 : implicit core properties are not set for single core (noble)
77. SOLR-1321: Add better support for efficient wildcard handling (Andrzej
Bialecki, Robert Muir, gsingers)
78. SOLR-1326 : New interface PluginInfoInitialized for all types of plugin (noble)
81. SOLR-1292: Add FieldCache introspection to stats.jsp and JMX Monitoring via
a new SolrFieldCacheMBean. (hossman)
82. SOLR-1167: Solr Config now supports XInclude for XML engines that can support
it. (Bryan Talbot via gsingers)
90. SOLR-833: DIH: A DataSource to read data from a field as a reader. This
can be used, for example, to read XMLs residing as CLOBs or BLOBs in
databases. (Noble Paul via shalin)
91. SOLR-887: A DIH Transformer to strip HTML tags. (Ahmed Hammad via shalin)
95. SOLR-910: Add a few utility commands to the DIH admin page such as full
import, delta import, status, reload config. (Ahmed Hammad via shalin)
96. SOLR-938: Add event listener API for DIH import start and end.
(Kay Kay, Noble Paul via shalin)
97. SOLR-801: DIH: Add support for configurable pre-import and post-import
delete query per root-entity. (Noble Paul via shalin)
98. SOLR-988: Add a new scope for session data stored in Context to store
objects across imports. (Noble Paul via shalin)
118.SOLR-1092: Added a new DIH command named 'import' which does not
automatically clean the index. This is useful and more appropriate when one
needs to import only some of the entities.
(Noble Paul via shalin)
122.SOLR-1234: Multiple DIH does not work because all of them write to
dataimport.properties. Use the handler name as the properties file name
(noble)
123.SOLR-1348: Support binary field type in convertType logic in DIH
JdbcDataSource (shalin)
Optimizations
----------------------
1. SOLR-374: Use IndexReader.reopen to save resources by re-using parts of the
index that haven't changed. (Mark Miller via yonik)
2. SOLR-808: Write string keys in Maps as extern strings in the javabin format.
(Noble Paul via shalin)
3. SOLR-475: New faceting method with better performance and smaller memory usage
for
multi-valued fields with many unique values but relatively few values per
document.
Controllable via the facet.method parameter - "fc" is the new default method
and "enum"
is the original method. (yonik)
12. SOLR-1165: Use Lucene Filters and pass them down to the Lucene
search methods to filter earlier and improve performance. (yonik)
13. SOLR-1111: Use per-segment sorting to share fieldcache elements
across unchanged segments. This saves memory and reduces
commit times for incremental updates to the index. (yonik)
15. SOLR-1150: Load Documents for Highlighting one at a time rather than
all at once to avoid OOM with many large Documents. (Siddharth Gargate via Mark
Miller)
16. SOLR-1353: Implement and use reusable token streams for analysis. (Robert Muir,
yonik)
18. SOLR-846: DIH: Reduce memory consumption during delta import by removing
keys when used (Ricky Leung, Noble Paul via shalin)
20. SOLR-1004: DIH: Check for abort more frequently during delta-imports.
(Marc Sturlese, shalin)
Bug Fixes
----------------------
1. SOLR-774: Fixed logging level display (Sean Timm via Otis Gospodnetic)
4. SOLR-805: DisMax queries are not being cached in QueryResultCache (Todd Feak
via koji)
11. SOLR-872: Better error message for incorrect copyField destination (Noble Paul
via shalin)
12. SOLR-879: Enable position increments in the query parser and fix the
example schema to enable position increments for the stop filter in
both the index and query analyzers to fix the bug with phrase queries
with stopwords. (yonik)
15. SOLR-898: Fix null pointer exception for the JSON response writer
based formats when nl.json=arrarr with null keys. (yonik)
16. SOLR-901: FastOutputStream ignores write(byte[]) call. (Noble Paul via shalin)
18. SOLR-863: SolrCore.initIndex should close the directory it gets for clearing
the lock and
use the DirectoryFactory. (Mark Miller via shalin)
19. SOLR-802: Fix a potential null pointer error in the distributed FacetComponent
(David Bowen via ryan)
20. SOLR-346: Use perl regex to improve accuracy of finding latest snapshot in
snapinstaller (billa)
21. SOLR-830: Use perl regex to improve accuracy of finding latest snapshot in
snappuller (billa)
22. SOLR-897: Fixed Argument list too long error when there are lots of
snapshots/backups (Dan Rosher via billa)
24. SOLR-902: FastInputStream#read(byte b[], int off, int len) gives incorrect
results when amount left to read is less
than buffer size (Noble Paul via shalin)
25. SOLR-978: Old files are not removed from slaves after replication (Jaco, Noble
Paul, shalin)
26. SOLR-883: Implicit properties are not set for Cores created through CoreAdmin
(Noble Paul via shalin)
27. SOLR-991: Better error message when parsing solrconfig.xml fails due to
malformed XML. Error message notes the name
of the file being parsed. (Michael Henson via shalin)
28. SOLR-1008: Fix stats.jsp XML encoding for <stat> item entries with ampersands
in their names. (ehatcher)
31. SOLR-1015: Incomplete information in replication admin page and http command
response when server
is both master and slave i.e. when server is a repeater (Akshay Ukey via
shalin)
32. SOLR-1018: Slave is unable to replicate when server acts as repeater (as both
master and slave)
(Akshay Ukey, Noble Paul via shalin)
33. SOLR-1031: Fix XSS vulnerability in schema.jsp (Paul Lovvik via ehatcher)
34. SOLR-1064: registry.jsp incorrectly displaying info for last core initialized
regardless of what the current core is. (hossman)
37. SOLR-1125: Use query analyzer rather than index analyzer for queryFieldType in
QueryElevationComponent
(koji)
38. SOLR-1126: Replicated files have incorrect timestamp (Jian Han Guo, Jeff
Newburn, Noble Paul via shalin)
41. SOLR-1135: Java replication creates Snapshot in the directory where Solr was
launched (Jianhan Guo via shalin)
42. SOLR-1138: Query Elevation Component now gracefully handles missing queries.
(gsingers)
47. SOLR-1174: Fix Logging admin form submit url for multicore. (Jacob Singh via
shalin)
48. SOLR-1182: Fix bug in OrdFieldSource#equals which could cause a bug with
OrdFieldSource caching
on OrdFieldSource#hashcode collisions. (Mark Miller)
49. SOLR-1207: equals method should compare this and other of DocList in DocSetBase
(koji)
50. SOLR-1242: Human readable JVM info from system handler does integer cutoff
rounding, even when dealing
with GB. Fixed to round to one decimal place. (Jay Hill, Mark
Miller)
51. SOLR-1243: Admin RequestHandlers should not be cached over HTTP. (Mark Miller)
61. SOLR-1091: Jetty's use of CESU-8 for code points outside the BMP
resulted in invalid output from the serialized PHP writer. (yonik)
66. SOLR-1381: Fixed improper handling of fields that have only term positions and
not term offsets during Highlighting (Thorsten Fischer, gsingers)
68. SOLR-1468: SolrJ's XML response parsing threw an exception for null
names, such as those produced when facet.missing=true (yonik)
69. SOLR-1471: Fixed issue with calculating missing values for facets in single
valued cases in Stats Component.
This is not correctly calculated for the multivalued case. (James Miller,
gsingers)
70. SOLR-1481: Fixed omitHeader parameter for PHP ResponseWriter. (Jun Ohtani via
billa)
74. SOLR-1517: Admin pages could stall waiting for localhost name resolution
if reverse DNS wasn't configured; this was changed so the DNS resolution
is attempted only once the first time an admin page is loaded.
(hossman)
80. SOLR-832: Rows parameter is not honored in DIH non-debug mode and can
abort a running import in debug mode. (Akshay Ukey, shalin)
82. SOLR-864: DataImportHandler does not catch and log Errors (shalin)
83. SOLR-873: Fix case-sensitive field names and columns (Jon Baer, shalin)
84. SOLR-893: Unable to delete documents via SQL and deletedPkQuery with
deltaimport (Dan Rosher via shalin)
88. SOLR-985: Fix thread-safety issue with DIH TemplateString for concurrent
imports with multiple cores. (Ryuuichi Kumai via shalin)
89. SOLR-999: DIH XPathRecordReader fails on XMLs with nodes mixed with
CDATA content. (Fergus McMenemie, Noble Paul via shalin)
92. SOLR-1017: Fix DIH thread-safety issue with last_index_time for concurrent
imports in multiple cores due to unsafe usage of SimpleDateFormat by
multiple threads. (Ryuuichi Kumai via shalin)
94. SOLR-1037: DIH should not add null values in a row returned by
EntityProcessor to documents. (shalin)
95. SOLR-1040: DIH XPathEntityProcessor fails with an xpath like
/feed/entry/link[@type='text/html']/@href (Noble Paul via shalin)
99. SOLR-1080: DIH RegexTransformer should not replace if regex is not matched.
(Noble Paul, Fergus McMenemie via shalin)
Other Changes
----------------------
1. Upgraded to Lucene 2.4.0 (yonik)
10. SOLR-900: Moved solrj into /src/solrj. The contents of solr-common.jar is now
included
in the solr-solrj.jar. (ryan)
11. SOLR-924: Code cleanup: make all existing finalize() methods call
super.finalize() in a finally block. All current instances extend
Object, so this doesn't fix any bugs, but helps protect against
future changes. (Kay Kay via hossman)
13. SOLR-84: Use new Solr logo in admin (Michiel via koji)
18. SOLR-1022: Better "ignored" field in example schema.xml (Peter Wolanin via
hossman)
19. SOLR-967: New type-safe constructor for NamedList (Kay Kay via hossman)
22. SOLR-1068: Use fsync on replicated index and configuration files (yonik, Noble
Paul, shalin)
26. SOLR-804: Added Lucene's misc contrib JAR (rev 764281). (gsingers)
30. SOLR-748: FacetComponent helper classes are made public as an experimental API.
(Wojtek Piaseczny via shalin)
36. SOLR-458: Add equals and hashCode methods to NamedList (Stefan Rinner, shalin)
37. SOLR-1184: Add option in solrconfig to open a new IndexReader rather than
using reopen. Done mainly as a fail-safe in the case that a user runs into
a reopen bug/issue. (Mark Miller)
39. SOLR-1151: add dynamic copy field and maxChars example to example schema.xml.
(Peter Wolanin, Mark Miller)
41. SOLR-1257: logging.jsp has been removed and now passes through to the
hierarchical log level tool added in Solr 1.3. Users still
hitting "/admin/logging.jsp" should switch to "/admin/logging".
(hossman)
42. SOLR-1241: Solr's CharFilter has been moved to Lucene. Remove CharFilter and
related classes
from Solr and use Lucene's corresponding code (koji via shalin)
50. SOLR-1357 SolrInputDocument cannot process dynamic fields (Lars Grote via
noble)
52. SOLR-1310: Upgrade to Tika 0.4. Note there are some differences in
detecting Languages now in extracting request handler.
See
http://www.lucidimagination.com/search/document/d6f1899a85b2a45c/vote_apache_tika_0
_4_release_candidate_2#d6f1899a85b2a45c
for discussion on language detection.
See http://www.apache.org/dist/lucene/tika/CHANGES-0.4.txt. (gsingers)
55. SOLR-1029: DIH: Standardize Evaluator parameter parsing and added helper
functions for parsing all evaluator parameters in a standard way.
(Noble Paul, shalin)
57. SOLR-1027: DIH: Alias the 'dataimporter' namespace to a shorter name 'dih'.
(Noble Paul via shalin)
58. SOLR-1084: Better error reporting when DIH entity name is a reserved word
and data-config.xml root node is not <dataConfig>.
(Noble Paul via shalin)
61. SOLR-1120: Simplified DIH EntityProcessor API by moving logic for applying
transformers and handling multi-row outputs from Transformers into an
EntityProcessorWrapper class. The behavior of the method
EntityProcessor#destroy has been modified to be called once per parent-row
at the end of row. A new method EntityProcessor#close is added which is
called at the end of import. A new method
Context#getResolvedEntityAttribute is added which returns the resolved
value of an entity's attribute. Introduced a DocWrapper which takes care
of maintaining document level session variables.
(Noble Paul, shalin)
62. SOLR-1265: Add DIH variable resolving for URLDataSource properties like
baseUrl. (Chris Eldredge via ehatcher)
63. SOLR-1269: Better error messages from DIH JdbcDataSource when JDBC Driver
name or SQL is incorrect. (ehatcher, shalin)
Build
----------------------
1. SOLR-776: Added in ability to sign artifacts via Ant for releases (gsingers)
Documentation
----------------------
1. SOLR-789: The javadoc of RandomSortField is not readable (Nicolas Lalevée via
koji)
Solr now recognizes HTTP Request headers related to HTTP Caching (see
RFC 2616 sec13) and will by default respond with "304 Not Modified"
when appropriate. This should only affect users who access Solr via
an HTTP Cache, or via a Web-browser that has an internal cache, but if
you wish to suppress this behavior an '<httpCaching never304="true"/>'
option can be added to your solrconfig.xml. See the wiki (or the
example solrconfig.xml) for more details...
http://wiki.apache.org/solr/SolrConfigXml#HTTPCaching
New Features
1. SOLR-69: Adding MoreLikeThisHandler to search for similar documents using
lucene contrib/queries MoreLikeThis. MoreLikeThis is also available from
the StandardRequestHandler using ?mlt=true. (bdelacretaz, ryan)
15. SOLR-291: Control maximum number of documents to cache for any entry
in the queryResultCache via queryResultMaxDocsCached solrconfig.xml
entry. (Koji Sekiguchi via yonik)
23. SOLR-308: A new UUIDField class which accepts UUID string values,
as well as the special value of "NEW" which triggers generation of
a new random UUID.
(Thomas Peuss via hossman)
24. SOLR-349: New FunctionQuery functions: sum, product, div, pow, log,
sqrt, abs, scale, map. Constants may now be used as a value source.
(yonik)
25. SOLR-359: Add field type className to Luke response, and enabled access
to the detailed field information from the solrj client API.
(Grant Ingersoll via ehatcher)
28. SOLR-395: Many new features for the spell checker implementation, including
an extended response mode with much richer output, multi-word spell checking,
and a bevy of new and renamed options (see the wiki).
(Mike Krimerman, Scott Taber via klaas).
31. SOLR-176: Add detailed timing data to query response output. The SearchHandler
interface now returns how long each section takes. (klaas)
33. SOLR-350: Support multiple SolrCores running in the same solr instance and
allows
runtime runtime management for any running SolrCore. If a solr.xml file exists
in solr.home, this file is used to instanciate multiple cores and enables
runtime
core manipulation. For more informaion see:
http://wiki.apache.org/solr/CoreAdmin
(Henri Biestro, ryan)
34. SOLR-447: Added an single request handler that will automatically register all
standard admin request handlers. This replaces the need to register (and
maintain)
the set of admin request handlers. Assuming solrconfig.xml includes:
<requestHandler name="/admin/"
class="org.apache.solr.handler.admin.AdminHandlers" />
This will register:
Luke/SystemInfo/PluginInfo/ThreadDump/PropertiesRequestHandler.
(ryan)
38. SOLR-478: Added ability to get back unique key information from the
LukeRequestHandler.
(gsingers)
39. SOLR-127: HTTP Caching awareness. Solr now recognizes HTTP Request
headers related to HTTP Caching (see RFC 2616 sec13) and will respond
with "304 Not Modified" when appropriate. New options have been added
to solrconfig.xml to influence this behavior.
(Thomas Peuss via hossman)
51. SOLR-595: Add support for Field level boosting in the MoreLikeThis Handler.
(Tom Morton, gsingers)
53. SOLR-679: Added accessor methods to Lucene based spell checkers (gsingers)
54. SOLR-423: Added Request Handler close hook notification so that RequestHandlers
can be notified
when a core is closing. (gsingers, ryan)
58. SOLR-502: Add search timeout support. (Sean Timm via yonik)
59. SOLR-605: Add the ability to register callbacks programatically (ryan, Noble
Paul)
61. SOLR-522: Make analysis.jsp show payloads. (Tricia Williams via yonik)
63. SOLR-256: Support exposing Solr statistics through JMX (Sharad Agrawal, shalin)
64. SOLR-666: Expose warmup time in statistics for SolrIndexSearcher and LRUCache
(shalin)
65. SOLR-663: Allow multiple files for stopwords, keepwords, protwords and synonyms
(Otis Gospodnetic, shalin)
68. SOLR-554: Hierarchical JDK log level selector for SOLR Admin replaces
logging.jsp
(Sean Timm via shalin)
69. SOLR-506: Emitting HTTP Cache headers can be enabled or disabled through
configuration on a
per-handler basis (shalin)
70. SOLR-716: Added support for properties in configuration files. Properties can
be specified in
solr.xml and can be used in solrconfig.xml and schema.xml (Henri Biestro,
hossman, ryan, shalin)
71. SOLR-1129 : Support binding dynamic fields to beans in SolrJ (Avlesh Singh ,
noble)
72. SOLR-920 : Cache and reuse IndexSchema . A new attribute added in solr.xml
called 'shareSchema' (noble)
Optimizations
1. SOLR-276: improve JSON writer speed. (yonik)
2. SOLR-310: bound and reduce memory usage by providing <maxBufferedDeletes>
parameter,
which flushes deleted without forcing the user to use <commit/> for this
purpose.
(klaas)
6. SOLR-342: Added support into the SolrIndexWriter for using several new
features of the new
LuceneIndexWriter, including: setRAMBufferSizeMB(), setMergePolicy(),
setMergeScheduler.
Also, added support to specify Lucene's autoCommit functionality (not to be
confused with Solr's
similarily named autoCommit functionality) via the <luceneAutoCommit> config.
item. See the test
and example solrconfig.xml <indexDefaults> section for usage. Performance
during indexing should
be significantly increased by moving up to 2.3 due to Lucene's new indexing
capabilities.
Furthermore, the setRAMBufferSizeMB makes it more logical to decide on tuning
factors related to
indexing. For best performance, leave the mergePolicy and mergeScheduler as
the defaults and set
ramBufferSizeMB instead of maxBufferedDocs. The best value for this depends on
the types of
documents in use. 32 should be a good starting point, but reports have shown
up to 48 MB provides
good results. Note, it is acceptable to set both ramBufferSizeMB and
maxBufferedDocs, and Lucene
will flush based on whichever limit is reached first. (gsingers)
8. SOLR-624: Only take snapshots if there are differences to the index (Richard
Trey Hyde via gsingers)
Bug Fixes
1. Make TextField respect sortMissingFirst and sortMissingLast fields.
(J.J. Larrea via yonik)
8. SOLR-282: Snapshooter does not work on Solaris and OS X since the cp command
there does not have the -l option. Also updated commit/optimize related
scripts to handle both old and new response format. (bill)
9. SOLR-294: Logging of elapsed time broken on Solaris because the date command
there does not support the %s output format. (bill)
10. SOLR-136: Snappuller - "date -d" and locales don't mix. (Jürgen Hermann via
bill)
11. SOLR-333: Changed distributiondump.jsp to use Solr HOME instead of CWD to set
path.
15. SOLR-449: the python and ruby response writers are now able to correctly
output NaN and Infinity in their respective languages. (klaas)
18. SOLR-324: Add proper support for Long and Doubles in sorting, etc. (gsingers)
20. SOLR-535: Fixed typo (Tokenzied -> Tokenized) in schema.jsp (Thomas Peuss via
billa)
21. SOLR-529: Better error messages from SolrQueryParser when field isn't
specified and there is no defaultSearchField in schema.xml
(Lars Kotthoff via hossman)
24. SOLR-533: Fixed tests so they don't use hardcoded port numbers.
(hossman)
25. SOLR-400: SolrExceptionTest should now handle using OpenDNS as a DNS provider
(gsingers)
27. SOLR-267: Changed logging to report number of hits, and also provide a
mechanism to add log
messages to be output by the SolrCore via a NamedList toLog member variable.
(Will Johnson, yseeley, gsingers)
28. SOLR-509: Moved firstSearcher event notification to the end of the SolrCore
constructor
(Koji Sekiguchi via gsingers)
30. SOLR-539: Fix for non-atomic long counters and a cast fix to avoid divide
by zero. (Sean Timm via Otis Gospodnetic)
31. SOLR-514: Added explicit media-type with UTF* charset to *.xsl files that
don't already have one. (hossman)
37. SOLR-604: If the spellchecking path is relative, make it relative to the Solr
Data Directory.
(Shalin Shekhar Mangar via gsingers)
41. SOLR-501: Fix admin/analysis.jsp UTF-8 input for some other servlet
containers such as Tomcat. (Hiroaki Kawai, Lars Kotthoff via yonik)
44. SOLR-598: DebugComponent now always occurs last in the SearchHandler list
unless the
components are explicitly declared. (gsingers)
47. SOLR-669: snappuler fix for FreeBSD/Darwin (Richard "Trey" Hyde via Otis
Gospodnetic)
48. SOLR-606: Fixed spell check collation offset issue. (Stefan Oestreicher ,
Geoffrey Young, gsingers)
49. SOLR-589: Improved handling of badly formated query strings (Sean Timm via Otis
Gospodnetic)
50. SOLR-749: Allow QParser and ValueSourceParsers to be extended with same name
(hossman, gsingers)
53. SOLR-726: DIH: Jdbc Drivers and DataSources fail to load if placed in
multicore sharedLib or core's lib directory.
(Walter Ferrara, Noble Paul, shalin)
Other Changes
1. SOLR-135: Moved common classes to org.apache.solr.common and altered the
build scripts to make two jars: apache-solr-1.3.jar and
apache-solr-1.3-common.jar. This common.jar can be used in client code;
It does not have lucene or junit dependencies. The original classes
have been replaced with a @Deprecated extended class and are scheduled
to be removed in a later release. While this change does not affect API
compatibility, it is recommended to update references to these
deprecated classes. (ryan)
9. SOLR-451: Changed analysis.jsp to use POST instead of GET, also made the input
area a
bit bigger (gsingers)
11. SOLR-531: Different exit code for rsyncd-start and snappuller if disabled
(Thomas Peuss via billa)
14. SOLR-518: Changed luke.xsl to use divs w/css for generating histograms
instead of SVG (Thomas Peuss via hossman)
15. SOLR-592: Added ShardParams interface and changed several string literals
to references to constants in CommonParams.
(Lars Kotthoff via Otis Gospodnetic)
18. SOLR-591: Changed Solrj default value for facet.sort to true (Lars Kotthoff via
Shalin)
21. SOLR-682: Scripts now support FreeBSD (Richard Trey Hyde via gsingers)
22. SOLR-489: Added in deprecation comments. (Sean Timm, Lars Kothoff via
gsingers)
23. SOLR-692: Migrated to stable released builds of StAX API 1.0.1 and StAX 1.2.0
(shalin)
24. Upgraded to Lucene 2.4-dev (r686801) (yonik)
25. Upgraded to Lucene 2.4-dev (r688745) 27-Aug-2008 (yonik)
26. Upgraded to Lucene 2.4-dev (r691741) 03-Sep-2008 (yonik)
27. Replaced the StAX reference implementation with the geronimo
StAX API jar, and the Woodstox StAX implementation. (yonik)
Build
1. SOLR-411. Changed the names of the Solr JARs to use the defacto standard JAR
names based on
project-name-version.jar. This yields, for example:
apache-solr-common-1.3-dev.jar
apache-solr-solrj-1.3-dev.jar
apache-solr-1.3-dev.jar
2. SOLR-479: Added clover code coverage targets for committers and the nightly
build. Requires
the Clover library, as licensed to Apache and only available privately. To
run:
ant -Drun.clover=true clean clover test generate-clover-reports
5. SOLR-673: Modify build file to create javadocs for core, solrj, contrib and
"all inclusive" (shalin)
7. SOLR-586: Added ant target and POM files for building maven artifacts of the
Solr core, common,
client and contrib. The target can publish artifacts with source and
javadocs.
(Spencer Crissman, Craig McClanahan, shalin)
The JSON response format for facets has changed to make it easier for
clients to retain sorted order. Use json.nl=map explicitly in clients
to get the old behavior, or add it as a default to the request handler
in solrconfig.xml
The Solr "Request Handler" framework has been updated in two key ways:
First, if a Request Handler is registered in solrconfig.xml with a name
starting with "/" then it can be accessed using path-based URL, instead of
using the legacy "/select?qt=name" URL structure. Second, the Request
Handler framework has been extended making it possible to write Request
Handlers that process streams of data for doing updates, and there is a
new-style Request Handler for XML updates given the name of "/update" in
the example solrconfig.xml. Existing installations without this "/update"
handler will continue to use the old update servlet and should see no
changes in behavior. For new-style update handlers, errors are now
reflected in the HTTP status code, Content-type checking is more strict,
and the response format has changed and is controllable via the wt
parameter.
New Features
1. SOLR-82: Default field values can be specified in the schema.xml.
(Ryan McKinley via hossman)
20. SOLR-66: CSV data format for document additions and updates. (yonik)
23. SOLR-162: Added a "Luke" request handler and other admin helpers.
This exposes the system status through the standard requestHandler
framework. (ryan)
27. SOLR-181: The index schema now supports "required" fields. Attempts
to add a document without a required field will fail, returning a
descriptive error message. By default, the uniqueKey field is
a required field. This can be disabled by setting required=false
in schema.xml. (Greg Ludington via ryan)
33. SOLR-234: TrimFilter can update the Token's startOffset and endOffset
if updateOffsets="true". By default the Token offsets are unchanged.
(ryan)
11. SOLR-230: More options for post.jar to support stdin, xml on the
commandline, and defering commits. Tutorial modified to take
advantage of these options so there is no need for curl.
(hossman)
12. SOLR-128: Upgraded Jetty to the latest stable release 6.1.3 (ryan)
Optimizations
1. SOLR-114: HashDocSet specific implementations of union() and andNot()
for a 20x performance improvement for those set operations, and a new
hash algorithm speeds up exists() by 10% and intersectionSize() by 8%.
(yonik)
Bug Fixes
1. SOLR-87: Parsing of synonym files did not correctly handle escaped
whitespace such as \r\n\t\b\f. (yonik)
9. SOLR-188: bin scripts do not support non-default webapp names. Added "-U"
option to specify a full path to the update url, overriding the
"-h" (hostname), "-p" (port) and "-w" (webapp name) parameters.
(Jeff Rodenburg via billa)
14. SOLR-214: Some servlet containers (including Tomcat and Resin) do not
obey the specified charset. Rather then letting the the container handle
it solr now uses the charset from the header contentType to decode posted
content. Using the contentType: "text/xml; charset=utf-8" will force
utf-8 encoding. If you do not specify a contentType, it will use the
platform default. (Koji Sekiguchi via ryan)
Other Changes
1. Updated to Lucene 2.1
Status
------
This is the first release since Solr joined the Incubator, and brings many
new features and performance optimizations including highlighting,
faceted browsing, and JSON/Python/Ruby response formats.
The default version of the Solr XML response syntax has been changed to 2.2.
Behavior can be preserved for those clients not explicitly specifying a
version by adding a default to the request handler in solrconfig.xml
By default, Solr will no longer use a searcher that has not fully warmed,
and requests will block in the meantime. To change back to the previous
behavior of using a cold searcher in the event there is no other
warm searcher, see the useColdSearcher config item in solrconfig.xml
The XML response format when adding multiple documents to the collection
in a single <add> command has changed to return a single <result>.
New Features
1. added support for setting Lucene's positionIncrementGap
2. Admin: new statistics for SolrIndexSearcher
3. Admin: caches now show config params on stats page
3. max() function added to FunctionQuery suite
4. postOptimize hook, mirroring the functionallity of the postCommit hook,
but only called on an index optimize.
5. Ability to HTTP POST query requests to /select in addition to HTTP-GET
6. The default search field may now be overridden by requests to the
standard request handler using the df query parameter. (Erik Hatcher)
7. Added DisMaxRequestHandler and SolrPluginUtils. (Chris Hostetter)
8. Support for customizing the QueryResponseWriter per request
(Mike Baranczak / SOLR-16 / hossman)
9. Added KeywordTokenizerFactory (hossman)
10. copyField accepts dynamicfield-like names as the source.
(Darren Erik Vengroff via yonik, SOLR-21)
11. new DocSet.andNot(), DocSet.andNotSize() (yonik)
12. Ability to store term vectors for fields. (Mike Klaas via yonik, SOLR-23)
13. New abstract BufferedTokenStream for people who want to write
Tokenizers or TokenFilters that require arbitrary buffering of the
stream. (SOLR-11 / yonik, hossman)
14. New RemoveDuplicatesToken - useful in situations where
synonyms, stemming, or word-deliminater-ing produce identical tokens at
the same position. (SOLR-11 / yonik, hossman)
15. Added highlighting to SolrPluginUtils and implemented in StandardRequestHandler
and DisMaxRequestHandler (SOLR-24 / Mike Klaas via hossman,yonik)
16. SnowballPorterFilterFactory language is configurable via the "language"
attribute, with the default being "English". (Bertrand Delacretaz via yonik,
SOLR-27)
17. ISOLatin1AccentFilterFactory, instantiates ISOLatin1AccentFilter to remove
accents.
(Bertrand Delacretaz via yonik, SOLR-28)
18. JSON, Python, Ruby QueryResponseWriters: use wt="json", "python" or "ruby"
(yonik, SOLR-31)
19. Make web admin pages return UTF-8, change Content-type declaration to include a
space between the mime-type and charset (Philip Jacob, SOLR-35)
20. Made query parser default operator configurable via schema.xml:
<solrQueryParser defaultOperator="AND|OR"/>
The default operator remains "OR".
21. JAVA API: new version of SolrIndexSearcher.getDocListAndSet() which takes
flags (Greg Ludington via yonik, SOLR-39)
22. A HyphenatedWordsFilter, a text analysis filter used during indexing to rejoin
words that were hyphenated and split by a newline. (Boris Vitez via yonik,
SOLR-41)
23. Added a CompressableField base class which allows fields of derived types to
be compressed using the compress=true setting. The field type also gains the
ability to specify a size threshold at which field data is compressed.
(klaas, SOLR-45)
24. Simple faceted search support for fields (enumerating terms)
and arbitrary queries added to both StandardRequestHandler and
DisMaxRequestHandler. (hossman, SOLR-44)
25. In addition to specifying default RequestHandler params in the
solrconfig.xml, support has been added for configuring values to be
appended to the multi-val request params, as well as for configuring
invariant params that can not overridden in the query. (hossman, SOLR-46)
26. Default operator for query parsing can now be specified with q.op=AND|OR
from the client request, overriding the schema value. (ehatcher)
27. New XSLTResponseWriter does server side XSLT processing of XML Response.
In the process, an init(NamedList) method was added to QueryResponseWriter
which works the same way as SolrRequestHandler.
(Bertrand Delacretaz / SOLR-49 / hossman)
28. json.wrf parameter adds a wrapper-function around the JSON response,
useful in AJAX with dynamic script tags for specifying a JavaScript
callback function. (Bertrand Delacretaz via yonik, SOLR-56)
29. autoCommit can be specified every so many documents added (klaas, SOLR-65)
30. ${solr.home}/lib directory can now be used for specifying "plugin" jars
(hossman, SOLR-68)
31. Support for "Date Math" relative "NOW" when specifying values of a
DateField in a query -- or when adding a document.
(hossman, SOLR-71)
32. useColdSearcher control in solrconfig.xml prevents the first searcher
from being used before it's done warming. This can help prevent
thrashing on startup when multiple requests hit a cold searcher.
The default is "false", preventing use before warm. (yonik, SOLR-77)
Optimizations
1. getDocListAndSet can now generate both a DocList and a DocSet from a
single lucene query.
2. BitDocSet.intersectionSize(HashDocSet) no longer generates an intermediate
set
3. OpenBitSet completed, replaces BitSet as the implementation for BitDocSet.
Iteration is faster, and BitDocSet.intersectionSize(BitDocSet) and unionSize
is between 3 and 4 times faster. (yonik, SOLR-15)
4. much faster unionSize when one of the sets is a HashDocSet: O(smaller_set_size)
5. Optimized getDocSet() for term queries resulting in a 36% speedup of
facet.field
queries where DocSets aren't cached (for example, if the number of terms in the
field
is larger than the filter cache.) (yonik)
6. Optimized facet.field faceting by as much as 500 times when the field has
a single token per document (not multiValued & not tokenized) by using the
Lucene FieldCache entry for that field to tally term counts. The first request
utilizing the FieldCache will take longer than subsequent ones.
Bug Fixes
1. Fixed delete-by-id for field types who's indexed form is different
from the printable form (mainly sortable numeric types).
2. Added escaping of attribute values in the XML response (Erik Hatcher)
3. Added empty extractTerms() to FunctionQuery to enable use in
a MultiSearcher (Yonik)
4. WordDelimiterFilter sometimes lost token positionIncrement information
5. Fix reverse sorting for fields were sortMissingFirst=true
(Rob Staveley, yonik)
6. Worked around a Jetty bug that caused invalid XML responses for fields
containing non ASCII chars. (Bertrand Delacretaz via yonik, SOLR-32)
7. WordDelimiterFilter can throw exceptions if configured with both
generate and catenate off. (Mike Klaas via yonik, SOLR-34)
8. Escape '>' in XML output (because ]]> is illegal in CharData)
9. field boosts weren't being applied and doc boosts were being applied to fields
(klaas)
10. Multiple-doc update generates well-formed xml (klaas, SOLR-65)
11. Better parsing of pingQuery from solrconfig.xml (hossman, SOLR-70)
12. Fixed bug with "Distribution" page introduced when Versions were
added to "Info" page (hossman)
13. Fixed HTML escaping issues with user input to analysis.jsp and action.jsp
(hossman, SOLR-74)
Other Changes
1. Upgrade to Lucene 2.0 nightly build 2006-06-22, lucene SVN revision 416224,
http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?
view=markup&pathrev=416224
2. Modified admin styles to improve display in Internet Explorer (Greg Ludington
via billa, SOLR-6)
3. Upgrade to Lucene 2.0 nightly build 2006-07-15, lucene SVN revision 422302,
4. Included unique key field name/value (if available) in log message of add
(billa, SOLR-18)
5. Updated to Lucene 2.0 nightly build 2006-09-07, SVN revision 462111
6. Added javascript to catch empty query in admin query forms (Tomislav Nakic-
Alfirevic via billa, SOLR-48
7. blackslash escape * in ssh command used in snappuller for zsh compatibility,
SOLR-63
8. check solr return code in admin scripts, SOLR-62
9. Updated to Lucene 2.0 nightly build 2006-11-15, SVN revision 475069
10. Removed src/apps containing the legacy "SolrTest" app (hossman, SOLR-3)
11. Simplified index.jsp and form.jsp, primarily by removing/hiding XML
specific params, and adding an option to pick the output type. (hossman)
12. Added new numeric build property "specversion" to allow clean
MANIFEST.MF files (hossman)
13. Added Solr/Lucene versions to "Info" page (hossman)
14. Explicitly set mime-type of .xsl files in web.xml to
application/xslt+xml (hossman)
15. Config parsing should now work useing DOM Level 2 parsers -- Solr
previously relied on getTextContent which is a DOM Level 3 addition
(Alexander Saar via hossman, SOLR-78)