Apache Solr Release Notes

Introduction

Apache Solr is an open source enterprise search server based on the Apache Lucene Java search library, with XML/HTTP and JSON APIs, hit highlighting, faceted search, caching, replication, and a web administration interface. It runs in a Java servlet container such as Jetty.

See http://lucene.apache.org/solr for more information.

Getting Started

You need a Java 1.7 VM or later installed. In this release, there is an example Solr server including a bundled servlet container in the directory named "example". See the tutorial at http://lucene.apache.org/solr/tutorial.html

Versions of Major Components (5) Apache Tika 1.5 Carrot2 3.9.0 Velocity 1.7 and Velocity Tools 2.0 Apache UIMA 2.3.1 Apache ZooKeeper 3.4.6

Upgrading from Solr 4.7 (4) In previous versions of Solr, Terms that exceeded Lucene's MAX_TERM_LENGTH were silently ignored when indexing documents. Begining with Solr 4.8, a document an error will be generated when attempting to index a document with a term that is too large. If you wish to continue to have large terms ignored, use "solr.LengthFilterFactory" in all of your Analyzers. See LUCENE-5472 for more details. Solr 4.8 requires Java 7 or greater, Java 8 is verified to be compatible and may bring some performance improvements. When using Oracle Java 7 or OpenJDK 7, be sure to not use the GA build 147 or update versions u40, u45 and u51! We recommend using u55 or later. An overview of known JVM bugs can be found on http://wiki.apache.org/lucene-java/JavaBugs ZooKeeper is upgraded from 3.4.5 to 3.4.6. <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

Detailed Change List System Requirements (1) LUCENE-4747, LUCENE-5514: Move to Java 7 as minimum Java version.

(Robert Muir, Uwe Schindler)

New Features (20) SOLR-5130: Implement addReplica Collections API

(Noble Paul) SOLR-5183: JSON updates now support nested child documents using a "_childDocument_" object key.

(Varun Thacker, hossman) 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-5720: Add ExpandComponent to expand results collapsed by the CollapsingQParserPlugin.

(Joel Bernstein) SOLR-3177: Enable tagging and excluding filters in StatsComponent via the localParams syntax.

(Mathias H., Nikolai Luthman, Vitaliy Zhovtyuk, shalin) SOLR-1604: Wildcards, ORs etc inside Phrase Queries.

(Ahmet Arslan via Erick Erickson) SOLR-5477: Async execution of OverseerCollectionProcessor(CollectionsAPI) tasks.

(Anshum Gupta) SOLR-5865: Provide a MiniSolrCloudCluster to enable easier testing.

(Greg Chanan via Mark Miller) SOLR-5860: Use leaderConflictResolveWait in WaitForState during recovery/startup, improve logging and force refresh cluster state every 15 seconds.

(Timothy Potter via shalin) 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-5858: Add a hl.qparser parameter to allow you to define a queryparser for hl.q highlight queries. If no queryparser is defined, Solr will use the overall query's defType.

(Alan Woodward) SOLR-4478: Allow cores to use configuration from a configsets directory outside their instance directory.

(Alan Woodward, Erick Erickson) 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) SOLR-5795: New DocExpirationUpdateProcessorFactory supports computing an expiration date for documents from the "TTL" expression, as well as automatically deleting expired documents on a periodic basis.

(hossman) SOLR-5829: Allow ExpandComponent to accept query and filter query parameters

(Joel Bernstein) SOLR-5653: Create a RestManager to provide REST API endpoints for reconfigurable plugins.

(Tim Potter, Steve Rowe) SOLR-5655: Create a stopword filter factory that is (re)configurable, and capable of reporting its configuration, via REST API.

(Tim Potter via Steve Rowe) SOLR-5654: Create a synonym filter factory that is (re)configurable, and capable of reporting its configuration, via REST API.

(Tim Potter via Steve Rowe) SOLR-5960: Add support for basic authentication in post.jar tool, e.g.: java -Durl="http://username:password@hostname:8983/solr/update" -jar post.jar sample.xml

(Sameer Maggon via Uwe Schindler) SOLR-4864: RegexReplaceProcessorFactory should support pattern capture group substitution in replacement string.

(Sunil Srinivasan, Jack Krupansky via Steve Rowe)

Bug Fixes (6) SOLR-5858, SOLR-4812: edismax and dismax query parsers can be used for parsing highlight queries.

(Alan Woodward, Tien Nguyen Manh) SOLR-5893: On restarting overseer designate , move itself to front of the queue

(Noble Paul) SOLR-5915: Attempts to specify the parserImpl for solr.PreAnalyzedField fieldtype failed.

(Mike McCandless) SOLR-5943: SolrCmdDistributor does not distribute the openSearcher parameter.

(ludovic Boutros via shalin) SOLR-5954: Slower DataImportHandler process caused by not reusing jdbc connections.

(Mark Miller, Paco Garcia, Raja Nagendra Kumar) 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 (3) 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 (23) SOLR-5909: Upgrade Carrot2 clustering dependency to 3.9.0.

(Dawid Weiss) 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-5765: Update to SLF4J 1.7.6.

(Mark Miller) SOLR-5609: If legacy mode is disabled don't let cores create slices/replicas/collections . All operations should be performed through collection API

(Noble Paul) SOLR-5613: Upgrade to commons-codec 1.9 for better BeiderMorseFilter performance.

(Thomas Champagne, Shawn Heisey via shalin) SOLR-5771: Add SolrTestCaseJ4.SuppressSSL annotation to disable SSL (instead of static boolean).

(Robert Muir) SOLR-5799: When registering as the leader, if an existing ephemeral registration exists, wait a short time to see if it goes away.

(Mark Miller) LUCENE-5472: IndexWriter.addDocument will now throw an IllegalArgumentException if a Term to be indexed exceeds IndexWriter.MAX_TERM_LENGTH. To recreate previous behavior of silently ignoring these terms, use LengthFilter in your Analyzer.

(hossman, Mike McCandless, Varun Thacker) SOLR-5825: Separate http request creating and execution in SolrJ

(Steven Bower via Erick Erickson) SOLR-5837: Add hashCode/equals to SolrDocument, SolrInputDocument and SolrInputField for testing purposes.

(Varun Thacker, Noble Paul, Mark Miller) SOLR-5853: The createCollection methods in the test framework now reports result of operation in the returned CollectionAdminResponse

(janhoy) SOLR-5838: Relative SolrHome Path Bug At AbstractFullDistribZkTestBase.

(Furkan KAMACI via shalin) SOLR-5763: Upgrade to Tika 1.5

(Vitaliy Zhovtyuk via Steve Rowe) SOLR-5881: Upgrade ZooKeeper to 3.4.6

(Shawn Heisey) SOLR-5883: Many tests do not shutdown SolrServer.

(Tomás Fernández Löbbe via Mark Miller) SOLR-5898: Update to latest Kite Morphlines release: Version 0.12.1.

(Mark Miller) SOLR-5228: Don't require <field> or <dynamicField> be inside of <fields> -- or that <fieldType> be inside of <types>.

(Erick Erickson) SOLR-5903: SolrCore implements Closeable, cut over to using try-with-resources where possible.

(Alan Woodward) SOLR-5914: Cleanup and fix Solr's test cleanup code.

(Mark Miller, Uwe Schindler) SOLR-5936: Deprecate non-Trie-based numeric & date field types.

(Steve Rowe) SOLR-5934: LBHttpSolrServer exception handling improvement and small test improvements.

(Gregory Chanan via Mark Miller) SOLR-5773: CollapsingQParserPlugin should make elevated documents the group head.

(David Boychuck, Joel Bernstein) SOLR-5937: Modernize the DIH example config sets.

(Steve Rowe)

