Upgrading from Solr 5.x (17)
The deprecated SolrServer and subclasses have been removed, use SolrClient instead.
The deprecated <nrtMode> configuration in solrconfig.xml has been removed. Please remove it from solrconfig.xml.
SolrClient.shutdown() has been removed, use SolrClient.close() instead.
The deprecated zkCredientialsProvider element in solrcloud section of solr.xml is now removed. Use the correct spelling (zkCredentialsProvider) instead.
SOLR-7957: internal/expert - ResultContext was significantly changed and expanded to allow for multiple full query results (DocLists) per Solr request. TransformContext was rendered redundant and was removed.
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.
If your solrconfig.xml file doesn't explicitly mention the schemaFactory to use then Solr will choose the ManagedIndexSchemaFactory by default. Previously it would have chosen ClassicIndexSchemaFactory. This means that the Schema APIs ( /<collection>/schema ) are enabled and the schema is mutable. When Solr starts your schema.xml file will be renamed to managed-schema. If you want to retain the old behaviour then please ensure that the solrconfig.xml explicitly uses the ClassicIndexSchemaFactory : <schemaFactory class="ClassicIndexSchemaFactory"/> or your luceneMatchVersion in the solrconfig.xml is less than 6.0
SolrIndexSearcher.QueryCommand and QueryResult were moved to their own classes. If you reference them in your code, you should import them under o.a.s.search (or use your IDE's "Organize Imports").
SOLR-8698: 'useParams' attribute specified in request handler cannot be overridden from request params
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().
Upgrading from Solr 5.3 :
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.
All protected methods from CoreAdminHandler other than handleCustomAction() is removed by SOLR-8476 and can no more be overridden. If you still wish to override those methods, override the handleRequestBody()
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.
bin/post now defaults application/json files to the /update/json/docs end-point. Use `-format solr` to force files to the /update end-point. See SOLR-7042 for more details.
In solrconfig.xml the <mergePolicy> element is deprecated in favor of a similar <mergePolicyFactory> element, the <mergeFactor> and <maxMergeDocs> elements are also deprecated, please see SOLR-8621 for full details.
To migrate your existing solrconfig.xml, you can replace elements as follows:
<!-- TieredMergePolicy example --> <!-- deprecated --> <mergeFactor>??</mergeFactor> <mergePolicy class="org.apache.lucene.index.TieredMergePolicy"> <bool name="useCompoundFile">???</bool> <!-- deprecated since Lucene/Solr 4.4.0 --> ... </mergePolicy> <!-- replacement --> <useCompoundFile>???</useCompoundFile> <!-- since Lucene/Solr 4.4.0 --> <mergePolicyFactory class="org.apache.solr.index.TieredMergePolicyFactory"> <int name="maxMergeAtOnce">??</int> <!-- formerly the <mergeFactor> element implicitly set this --> <int name="segmentsPerTier">??</int> <!-- formerly the <mergeFactor> element implicitly set this --> ... </mergePolicyFactory>
<!-- Log(ByteSize|Doc)MergePolicy example --> <!-- deprecated --> <maxMergeDocs>????</maxMergeDocs> <mergeFactor>??</mergeFactor> <mergePolicy class="org.apache.lucene.index.Log?MergePolicy"> <bool name="useCompoundFile">???</bool> <!-- deprecated since Lucene/Solr 4.4.0 --> ... </mergePolicy> <!-- replacement --> <useCompoundFile>???</useCompoundFile> <!-- since Lucene/Solr 4.4.0 --> <mergePolicyFactory class="org.apache.solr.index.Log?MergePolicyFactory"> <int name="maxMergeDocs">????</int> <!-- formerly the <maxMergeDocs> element set this --> <int name="mergeFactor">??</int> <!-- formerly the <mergeFactor> element set this --> ... </mergePolicyFactory>
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
Upgrading from Solr 5.3 :
DefaultSimilarityFactory has been renamed to ClassicSimilarityFactory to match the underlying rename of DefaultSimilarity to ClassicSimilarity and the (eventual) move away from using it as a default. If you currently have DefaultSimilarityFactory explicitly referenced in your schema.xml, you will now get a warning urging you to edit your config to use the functionally identical ClassicSimilarityFactory. DefaultSimilarityFactory will be removed completely in Solr 6. See SOLR-8239 for more details.
SOLR-7859: The following APIs are now deprecated:
SolrCore.getStartTime: Use SolrCore.getStartTimeStamp instead.
SolrIndexSearcher.getOpenTime: Use SolrIndexSearcher.getOpenTimeStamp instead.
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.
Logger declarations in most source files have changed to code that no longer needs to explicitly state the class name. This fixes situations where a logger for a different class was incorrectly used. See SOLR-8324 and its sub-issues for details.