Major Changes in Solr 6
There are some major changes in Solr 6 to consider before starting to migrate your configurations and indexes.
Some of the major improvements in Solr 6 include:
Introduced in Solr 5, Streaming Expressions allow querying Solr and getting results as a stream of data, sorted and aggregated as requested.
Several new expression types have been added in Solr 6:
Parallel expressions using a MapReduce-like shuffling for faster throughput of high-cardinality fields.
Daemon expressions to support continuous push or pull streaming.
Advanced parallel relational algebra like distributed joins, intersections, unions and complements.
JDBC connections to pull data from other systems and join with documents in the Solr index.
Built on streaming expressions, new in Solr 6 is a SQL support to be able to send SQL queries to Solr. SQL statements are compiled to streaming expressions on the fly, providing the full range of aggregations available to streaming expression requests. A JDBC driver is included, which allows using SQL clients and database visualization tools to query your Solr index and import data to other systems.
Replication across data centers is now possible with Cross Data Center Replication. Using an active-passive model, a SolrCloud cluster can be replicated to another data center, and monitored with a new API.
graph query parser makes it possible to to graph traversal queries of Directed (Cyclic) Graphs modelled using Solr documents.
Most non-text field types in the Solr sample configsets now default to using DocValues.
The minimum supported version of Java for Solr 6 (and the SolrJ client libraries) is now Java 8.
Solr 6 has no support for reading Lucene/Solr 4.x and earlier indexes.
Be sure to run the Lucene
IndexUpgrader included with Solr 5.5 if you might still have old 4x formatted segments in your index.
Alternatively: fully optimize your index with Solr 5.5 to make sure it consists only of one up-to-date index segment.
Solr’s default behavior when a
solrconfig.xml does not explicitly define a
<schemaFactory/> is now dependent on the
luceneMatchVersion specified in that
luceneMatchVersion < 6.0,
ClassicIndexSchemaFactory will continue to be used for back compatibility, otherwise an instance of
ManagedIndexSchemaFactory will be used.
The most notable impacts of this change are:
solrconfig.xmlfiles that are modified to use
luceneMatchVersion >= 6.0, but do not have an explicitly configured
ClassicIndexSchemaFactory, will have their
schema.xmlfile automatically upgraded to a
Schema modifications via the Schema API will now be enabled by default.
Please review the Schema Factory Configuration section for more details.
Solr’s default behavior when a Schema does not explicitly define a global
<similarity/> is now dependent on the
luceneMatchVersion specified in the
luceneMatchVersion < 6.0, an instance of
ClassicSimilarityFactory will be used, otherwise an instance of
SchemaSimilarityFactory will be used.
Most notably this change means that users can take advantage of per Field Type similarity declarations, without needing to also explicitly declare a global usage of
Regardless of whether it is explicitly declared, or used as an implicit global default,
SchemaSimilarityFactory 's implicit behavior when a Field Types do not declare an explicit
<similarity /> has also been changed to depend on the
luceneMatchVersion < 6.0, an instance of
ClassicSimilarity will be used, otherwise an instance of
BM25Similarity will be used.
defaultSimFromFieldType init option may be specified on the
SchemaSimilarityFactory declaration to change this behavior.
Please review the
SchemaSimilarityFactory javadocs for more details.
DELETESHARD and DELETEREPLICA now default to deleting the instance directory, data directory, and index directory for any replica they delete. Please review the Collections API documentation for details on new request parameters to prevent this behavior if you wish to keep all data on disk when using these commands.
facet.date parameter (and associated
facet.date.* parameters) that were deprecated in Solr 3.x have been removed completely.
If you have not yet switched to using the equivalent
facet.range functionality you must do so now before upgrading.